How to install nginx-ech on Ubuntu

Encrypted Client Hello key management for nginx (GetPageSpeed)

Vendor: GetPageSpeed LLC https://nginx.org/

Availability

Compare package tracks by distribution and architecture. Checkmarks show the architectures available in each repository channel.

Distro Channel amd64 arm64 Version
Ubuntu 26.04 (resolute) Stable 1.30.6
NGINX mainline 1.31.8
Ubuntu 24.04 (noble) Stable 1.30.6
NGINX mainline 1.31.8
Ubuntu 22.04 (jammy) Stable 1.30.6
NGINX mainline 1.31.8
Ubuntu 20.04 (focal) Stable 1.30.6
NGINX mainline 1.31.8

Description

Key generation and rotation for Encrypted Client Hello (ECH, RFC 9849). nginx reads ECH keys while parsing its configuration, so a new key only takes effect on reload, and a client that picked up an older ECHConfigList from a cached HTTPS DNS record still needs the key it encrypted to. nginx handles that by accepting several ssl_ech_file directives: the first is advertised in retry-configs, the rest stay loaded for decryption only. This package ships nginx-ech-keygen, which maintains that rolling set under /etc/nginx/ech and regenerates the include listing them, plus a systemd timer that rotates on a schedule, plus nginx-ech-publish, which republishes the rotated ECHConfigList in the HTTPS DNS record through provider drop-in scripts (Cloudflare shipped; more under /usr/libexec/nginx-ech-publish). The timer is not enabled on install and nothing happens until you configure it. Set ECH_PUBLIC_NAME in /etc/default/nginx-ech-rotate, run "nginx-ech-keygen --init", publish the value it prints in the HTTPS record for your ECH-enabled names, then "systemctl enable --now nginx-ech-rotate.timer". Set a provider in /etc/default/nginx-ech-publish and that record is republished automatically after every rotation. ECH only helps if the HTTPS record is served from a DNS-only zone and clients resolve over DoH. See https://nginx-extras.getpagespeed.com/ech/

Built for Ubuntu.

Install

Stable Ubuntu 20.04, 22.04, 24.04, 26.04

nginx-ech on Ubuntu 20.04 (focal), 22.04 (jammy), 24.04 (noble), 26.04 (resolute)

curl -fsSL https://extras.getpagespeed.com/release-latest.deb -o /tmp/getpagespeed-release.deb
sudo apt-get install -y /tmp/getpagespeed-release.deb
rm /tmp/getpagespeed-release.deb
sudo apt-get update
sudo apt-get install -y nginx-ech
NGINX mainline Ubuntu 20.04, 22.04, 24.04, 26.04

nginx-ech on Ubuntu 20.04 (focal), 22.04 (jammy), 24.04 (noble), 26.04 (resolute)

curl -fsSL https://extras.getpagespeed.com/release-latest.deb -o /tmp/getpagespeed-release.deb
sudo apt-get install -y /tmp/getpagespeed-release.deb
rm /tmp/getpagespeed-release.deb
sudo getpagespeed-extras-channel mainline
sudo apt-get update
sudo apt-get install -y nginx-ech

Package downloads require an active GetPageSpeed subscription — one repository for nginx-ech and thousands more packages for Ubuntu.

Subscribe — from $10/mo

Other releases and channels: use the setup wizard.

Frequently asked questions

How do I install nginx-ech on Ubuntu?

Add the GetPageSpeed repository, then install the nginx-ech package with your system package manager.

Which Ubuntu versions is nginx-ech available for?

nginx-ech is available for Ubuntu 20.04, 22.04, 24.04, 26.04.

Subscribe