Product

Product Features How to Compare Docs Screenshots Why

Start here

Getting started Download Guides Frequently asked questions

More

Security Support Roadmap About

TLS and https

11 answers

Protocols, ciphers, stapling and post quantum key exchange.

Looking for something specific

The searchable index covers all 326 answers at once and filters as you type.

84 Turn on HTTPS for a site

Open the site, tick Listen on https, choose a certificate, tick Redirect http to https, and apply. Leave Listen on http on so renewal keeps working.

With no certificate attached, the https block is left out altogether. That is on purpose: nginx refuses to start at all if it finds a TLS listener with no certificate.

httpssslenable tlspadlock
85 Turn off old TLS versions

TLS 1.3 and 1.2 are on by default, and 1.1 and 1.0 are off. Both of the old ones are formally deprecated and turning them on is a compliance failure in most audits. There is almost never a good reason.

tls 1.0tls 1.1deprecatedcomplianceprotocols
86 Confirm post quantum key exchange is working

The dashboard shows a post quantum ready badge next to the OpenSSL version when the build supports it. From a terminal:

openssl list -kem-algorithms | grep -i mlkem
nginx -V 2>&1 | tr ' ' '\n' | grep -i openssl

Any external TLS testing service will also tell you which groups your site offers.

post quantummlkemX25519MLKEM768quantumopenssl
87 Turn on strict transport security

It is a site setting. Start with a short max age, confirm everything on that name works over https, then raise it.

HSTS is very hard to take back. A browser told two years will refuse plain http for that name for two years, whatever you do afterwards.

HSTSstrict transport securitymax age
88 Turn on OCSP stapling

It is on by default and you should leave it on. Without it, a visitor's browser may go and ask the certificate authority itself, which is slower and tells that authority which sites the visitor is looking at.

OCSPstaplingrevocation
89 Change the cipher list

The default is a modern list and most people should leave it alone. Two situations justify a change: an audit that names specific suites, or a client you cannot change that needs something the default leaves out. In the second case, add the one thing rather than replacing the whole list.

For TLS 1.3 the suite list is short and fixed by the standard, so most cipher tuning only affects TLS 1.2 traffic.

cipherscipher suiteauditcompliance
90 Speak https to my backends and verify it properly

Turn on Use TLS on the pool and leave verification on. If your backends use certificates your company issued, put your authority file on the load balancers and point the pool at it.

Turning verification off works and gives up most of the point: an unverified TLS connection protects against passive listening and not against somebody in the middle.

backend tlsverifyCA filemutual
188 Ask visitors for a client certificate

Open the site, Settings tab, tick Show advanced settings, then TLS, Require a client certificate. Three choices: not needed, require a valid one, or ask for one and allow the request either way.

The middle option is a genuinely strong door. Nobody without the certificate gets past the handshake, so your application never sees the request at all. Good for an admin interface, a partner API, or anything where you control both ends.

The third is for the case where you want the certificate as extra information and the application decides what to do about it.

You need a certificate authority of your own to issue and revoke the client certificates. That part is on you, and losing control of it is worse than not having done it.

mTLSclient certificatemutual TLSssl_verify_clientpartner api
189 Turn on HTTP/3

Open the site, Settings tab, advanced settings shown, TLS, tick HTTP/3 (QUIC). Open UDP port 443 on your firewall, which people forget because everything else about 443 is TCP.

HTTP/3 mostly helps on connections that lose packets, which means phones and bad wifi. On a wired connection you will not notice. Browsers fall back to HTTP/2 on their own, so turning it on is low risk.

HTTP/3QUICUDP 443mobilepacket loss
190 Turn session tickets off

Open the site, Settings tab, advanced settings shown, TLS, untick Session tickets.

Session tickets let a returning visitor skip most of the handshake, which is a real saving. The trade is that if the ticket key ever leaks, recorded traffic can be decrypted after the fact. Turn them off where that matters more than the handshake time.

Session cache timeout in the same section is the other half of resumption and does not carry the same trade, so leaving that on is usually the better compromise.

session ticketsforward secrecyresumptionssl_session_tickets
191 Insist on post quantum key exchange

Open the site, Settings tab, advanced settings shown, TLS. Post-quantum key exchange offers it and lets older clients fall back. Require post-quantum key exchange refuses anything that cannot do it.

Offer it everywhere. Require it only where you control the clients, because requiring it turns every older browser away with an error nobody can act on.

The reason to have it on now is that traffic recorded today can be decrypted later, once the machines exist. Anything with a long secrecy life is worth protecting before the machines arrive, not after.

post quantumX25519MLKEM768harvest now decrypt laterPQC

Two fresh servers is all it takes

Ubuntu 22.04 or newer, root access, and about twenty minutes. The installer does the rest and it is safe to run twice.