How to install nginx-ech on Ubuntu
Encrypted Client Hello key management for nginx (GetPageSpeed)
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
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-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/moOther 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.