devopscodepro
Language
Runs entirely in your browser — nothing leaves this page.

TLS config

Generate TLS protocol and cipher configs per profile — Mozilla modern/intermediate, PCI DSS, BSI — for Nginx, Caddy, OpenSSL and Go, or validate the config you already run.

The Mozilla intermediate baseline: TLS 1.2+1.3, AEAD suites with forward secrecy only. The right default for almost every public service.
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
ssl_prefer_server_ciphers off;
ssl_ecdh_curve X25519:prime256v1:secp384r1;

# session settings
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;

TLS settings you can defend in an audit

Pick a profile — Mozilla's modern or intermediate, PCI DSS for cardholder environments, BSI TR-02102-2 for German federal requirements — and get the protocol and cipher configuration for Nginx, Caddy, OpenSSL or Go's tls.Config. The suites come from the published baselines, not from folklore.

The validate mode reads what you already run: paste the ssl_protocols and ssl_ciphers lines (or a bare OpenSSL cipher string) and every token is classified — AEAD with forward secrecy, CBC leftovers, broken algorithms, cipher classes that expand unpredictably. Old protocol versions are flagged with the reason, not just a verdict.

Why is there no cipher list for TLS 1.3?

TLS 1.3 fixed the problem structurally: only five AEAD suites exist, all safe, and most servers don't let you narrow them. Every legacy algorithm the validator flags simply cannot be negotiated under 1.3 — which is why enabling it matters more than polishing a 1.2 list.

Which profile should I pick?

Intermediate, unless something forces your hand. Modern cuts off clients older than roughly 2018; PCI applies when card data flows through the system; BSI when a German federal requirement says TR-02102. If in doubt, intermediate is the Mozilla default for a reason.

Is dropping TLS 1.0/1.1 safe for my users?

Almost certainly. Every browser released since 2014 and every maintained library does 1.2. The exceptions are embedded devices and very old corporate fleets — check your access logs for the actual protocol distribution before worrying.

Why ssl_prefer_server_ciphers off?

With a list that contains only good suites, letting the client pick means each device gets its fastest option — phones without AES hardware pick ChaCha20. Forcing server order made sense when lists contained weak suites that had to be deprioritized; a clean list doesn't need it.

Related tools: SSL / TLS audit, Certificate decoder and Security headers.