How to install nginx-ech on Debian

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
Debian 13 (trixie) Stable 1.30.6
NGINX mainline 1.31.8
Debian 12 (bookworm) 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 Debian.

Install

Stable Debian 12, 13

nginx-ech on Debian 12 (bookworm), 13 (trixie)

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 Debian 12, 13

nginx-ech on Debian 12 (bookworm), 13 (trixie)

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 Debian.

Subscribe — from $10/mo

Other releases and channels: use the setup wizard.

Frequently asked questions

How do I install nginx-ech on Debian?

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

Which Debian versions is nginx-ech available for?

nginx-ech is available for Debian 12, 13.

Subscribe