yum upgrades for production use, this is the repository for you.
Active subscription is required.
Technical Briefing: OpenSSL 3.5 LTS vs. 4.0 for NGINX Packaging
Problem Statement
The decision between OpenSSL 3.5 and 4.0 for an NGINX fleet is a question of support windows and migration cost, not feature parity. OpenSSL 4.0 shipped in April 2026 but is explicitly not an LTS release. Under the project’s policy, non-LTS branches receive only 13 months of support. OpenSSL 3.5 is the current LTS, supported until April 2030.
Moving an NGINX fleet from 3.5 to 4.0 today would cut the support window from roughly 3 years 7 months down to 8 months.
The “3.x LTS Is Ending” Confusion
OpenSSL 3.0 LTS support ends 7 September 2026, which makes the claim “3.x LTS is ending” sound both urgent and correct. But 3.5 is also 3.x and also LTS — and it outlives 4.0 by nearly three years. The end of 3.0 is an argument for leaving 3.0, not the 3.x series.
Post-Quantum Crypto Is Not a Reason to Move to 4.0
ML-KEM arrived in OpenSSL 3.5.0 (April 2025), and the hybrid group X25519MLKEM768 is the default first key share there. Current Chrome and Firefox negotiate it against a stock 3.5 build with no configuration. Upgrading to 4.0 for post-quantum key exchange buys a capability already running on 3.5.
The Real New Feature in 4.0: Encrypted Client Hello
ECH (RFC 9849) hides the real ClientHello inside an outer one naming only a shared cover host, closing the last big plaintext leak in a TLS 1.3 handshake — a substantial privacy gain on multi-tenant hosting and shared front ends. Notably, the competing argument for upgrading to 4.0 never mentions ECH.
ECH is backported onto the 3.5 LTS line. The DEfO backport provides:
ssl_ech_file$ssl_ech_statusand$ssl_ech_outer_server_namevariables- an
nginx-echpackage that rotates keys and keeps the HTTPS DNS record in step
A public test endpoint runs the exact stack on port 443. The principle: a feature that can be backported onto the LTS line does not justify leaving it.
OpenSSL 4.0 Removes ENGINE Support — A Hard Break for HSM/PKCS#11 Users
The no-engine build option and OPENSSL_NO_ENGINE macro are always present in 4.0. NGINX compiles its ssl_engine directive against the ENGINE API, and without it the handler rejects the directive outright:
nginx: [emerg] "ssl_engine" directive is not supported in /etc/nginx/nginx.conf:5
That is a failed nginx -t, not a deprecation warning. Providers are the replacement mechanism, but that means building, testing, and rolling out a different configuration on your key material. On the 3.5 line the old path keeps working via openssl35-pkcs11 (libp11 0.4.20, current upstream as of August 2026).
Two Operational Caveats
systemctl reload nginxdoes not swap the TLS library. It sends a HUP; the master re-reads config but does not re-execute itself. The TLS library was mapped at master start and stays mapped until the master exits, so replacinglibcryptoon disk and reloading leaves workers serving the old library. Use a restart or a USR2 binary upgrade.nginx -Vcannot verify a library-only upgrade. It prints the OpenSSL string recorded at compile time, so it will report the new version while the process runs the old one. Check the process instead:
ldd "$(command -v nginx)" | grep -i ssl
The Published 4.0 Rollback Procedure Does Not Work
Checked against package indexes on 30 August 2026, the command cannot succeed — it pins the source package name rather than the binary one, resolving to nothing, and in every suite the oldest binary in the pool is a 4.0.0 build. There is no 3.x left to return to. The rule: a library upgrade with a working rollback is an experiment; without one it is a commitment.
The Shipped Package Stack
openssl35 is an ABI-isolated OpenSSL 3.5.8 LTS build with its own SONAMEs, its own directory, and its own CVE stream tracked to April 2030, leaving the distribution’s OpenSSL untouched. Every published NGINX build links it on RPM and DEB; the Debian/Ubuntu half completed in late August 2026, putting Ubuntu 20.04 users on a supported TLS library for the first time since OpenSSL 1.1.1 went EOL in 2023.
On that library:
- post-quantum key exchange on by default
- ECH via backport
- TLS certificate compression under RFC 8879
All on amd64 and arm64 across both package families.
Install Commands
RHEL/Rocky/AlmaLinux/CentOS:
sudo dnf install https://extras.getpagespeed.com/release-latest.rpm
sudo dnf install nginx
Debian/Ubuntu: set up the APT repository, then:
sudo apt-get update
sudo apt-get install nginx
Repository metadata is public; downloading packages requires an active subscription.
Read the full article: OpenSSL 4.0 for NGINX: Why We Ship 3.5 LTS Instead
