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.
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?
Which profile should I pick?
Is dropping TLS 1.0/1.1 safe for my users?
Why ssl_prefer_server_ciphers off?
Related tools: SSL / TLS audit, Certificate decoder and Security headers.