SG TLS HARDENING GUIDE

TLS HARDENING GUIDE

TLS Cipher Categories and Configuration Examples

Use this reference to understand strong, medium and weak cipher families, choose an appropriate policy for each TLS version, and apply safer web-server settings.

Recommended baseline

Enable TLS 1.3 and TLS 1.2. Disable TLS 1.1, TLS 1.0, SSLv3 and SSLv2.

For TLS 1.2, prefer ECDHE with AES-GCM or ChaCha20-Poly1305. TLS 1.3 cipher suites do not include certificate authentication or key-exchange names because those are negotiated separately.

Recommendation by TLS version

VersionRatingActionPreferred ciphersRecommendation
TLS 1.3StrongEnableTLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256Best default. Keep secure platform defaults unless compliance requires a narrower list.
TLS 1.2StrongEnableECDHE + AES-GCM or ECDHE + ChaCha20-Poly1305Retain for broad compatibility. Require forward secrecy and AEAD.
TLS 1.1WeakDisableLegacy CBC-oriented suitesDeprecated. Do not try to make it acceptable by choosing a better cipher.
TLS 1.0WeakDisableLegacy CBC/RC4-era suitesDeprecated and exposed to legacy protocol weaknesses.
SSLv3 / SSLv2InsecureDisableObsolete suitesCryptographically obsolete and unsuitable for public services.

Cipher categories

Strong

Recommended for production. AEAD encryption with forward secrecy where applicable.

Cipher suite / familyTLS versionAssessment
TLS_AES_128_GCM_SHA256TLS 1.3AES-128-GCM AEAD; efficient and broadly recommended.
TLS_AES_256_GCM_SHA384TLS 1.3AES-256-GCM AEAD; useful where a 256-bit policy is required.
TLS_CHACHA20_POLY1305_SHA256TLS 1.3Fast AEAD option, especially useful on devices without AES acceleration.
ECDHE-ECDSA-AES128-GCM-SHA256TLS 1.2ECDHE forward secrecy, ECDSA authentication and AES-GCM.
ECDHE-RSA-AES128-GCM-SHA256TLS 1.2ECDHE forward secrecy, RSA certificate and AES-GCM.
ECDHE-ECDSA-AES256-GCM-SHA384TLS 1.2ECDHE forward secrecy, ECDSA authentication and AES-256-GCM.
ECDHE-RSA-AES256-GCM-SHA384TLS 1.2ECDHE forward secrecy, RSA certificate and AES-256-GCM.
ECDHE-ECDSA-CHACHA20-POLY1305TLS 1.2ECDHE forward secrecy with ChaCha20-Poly1305 AEAD.
ECDHE-RSA-CHACHA20-POLY1305TLS 1.2ECDHE forward secrecy, RSA certificate and ChaCha20-Poly1305.

Medium

Use only for a documented compatibility need. Prefer replacing these with strong suites.

Cipher suite / familyTLS versionAssessment
DHE-RSA-AES128-GCM-SHA256TLS 1.2AEAD and forward secrecy, but finite-field DHE is slower and needs strong DH parameters.
DHE-RSA-AES256-GCM-SHA384TLS 1.2AEAD and forward secrecy; ECDHE is normally preferred.
ECDHE-RSA-AES128-SHA256TLS 1.2Forward secrecy but CBC mode; retain only for necessary legacy clients.
ECDHE-RSA-AES256-SHA384TLS 1.2Forward secrecy but CBC mode; not a modern first choice.
ECDHE-ECDSA-AES128-SHA256TLS 1.2CBC-mode compatibility suite with ECDHE.
ECDHE-ECDSA-AES256-SHA384TLS 1.2CBC-mode compatibility suite with ECDHE.

Weak

Disable. These lack forward secrecy, use CBC/SHA-1, or depend on deprecated protocols.

Cipher suite / familyTLS versionAssessment
AES128-GCM-SHA256TLS 1.2Static RSA key exchange; no forward secrecy.
AES256-GCM-SHA384TLS 1.2Static RSA key exchange; no forward secrecy.
AES128-SHATLS 1.0–1.2Static RSA, CBC mode and SHA-1 MAC.
AES256-SHATLS 1.0–1.2Static RSA, CBC mode and SHA-1 MAC.
ECDHE-RSA-AES128-SHATLS 1.0–1.2Forward secrecy but legacy CBC/SHA-1 construction.
ECDHE-RSA-AES256-SHATLS 1.0–1.2Forward secrecy but legacy CBC/SHA-1 construction.
CAMELLIA128-SHA / CAMELLIA256-SHATLS 1.0–1.2Legacy CBC/SHA-1 family; generally unnecessary for web compatibility.
SEED-SHATLS 1.0–1.2Legacy CBC/SHA-1 suite with limited modern need.

Insecure

Remove immediately. These provide broken, prohibited, export-grade or no encryption.

Cipher suite / familyTLS versionAssessment
RC4-SHA / RC4-MD5LegacyRC4 is cryptographically broken and prohibited for TLS.
DES-CBC-SHALegacySingle DES has inadequate key strength.
DES-CBC3-SHA / 3DESLegacyDeprecated 64-bit block cipher exposed to SWEET32-style risks.
NULL-SHA / eNULLLegacyNo encryption; traffic is readable.
EXPORT / EXP / 40-bit suitesLegacyDeliberately weakened export-grade cryptography.
aNULL / anonymous DHLegacyNo server authentication; vulnerable to man-in-the-middle attacks.
MD5-based suitesLegacyMD5 is broken and unsuitable for TLS integrity/authentication.

Enable and disable examples

Replace example.com and validate syntax against your installed software version before deployment.

Nginx
Example configuration
ssl_protocols TLSv1.2 TLSv1.3;

# TLS 1.2 and older cipher directive
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers off;

# OpenSSL 1.1.1+/supported Nginx builds only
ssl_conf_command Ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256;
Apache HTTP Server
Example configuration
SSLProtocol -all +TLSv1.2 +TLSv1.3

# TLS 1.2 suites
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off

# Apache/OpenSSL versions that support TLS 1.3-specific syntax
SSLCipherSuite TLSv1.3 TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
HAProxy
Example configuration
ssl-default-bind-options ssl-min-ver TLSv1.2 no-tls-tickets
ssl-default-bind-ciphers ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
ssl-default-bind-ciphersuites TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
OpenSSL test commands
Example configuration
# Confirm TLS 1.3
openssl s_client -connect example.com:443 -servername example.com -tls1_3

# Confirm TLS 1.2 with a strong cipher
openssl s_client -connect example.com:443 -servername example.com -tls1_2 -cipher ECDHE-RSA-AES128-GCM-SHA256

# A disabled legacy protocol should fail
openssl s_client -connect example.com:443 -servername example.com -tls1
Microsoft IIS / Windows Server

Use Windows Schannel policy or Group Policy to disable TLS 1.0/1.1 and weak cipher suites. Cipher-suite availability and ordering vary substantially by Windows Server release, so apply a policy designed for that exact version, test application compatibility, and restart affected services or the server when required.

CDN or managed hosting

Choose a “Modern” or “TLS 1.2 and 1.3 only” security profile in the provider dashboard. Confirm the origin server is also hardened; a secure CDN edge does not automatically secure direct origin access.

Important deployment notes

  • Test configuration syntax before reloading the service and keep a rollback copy.
  • Cipher names and supported directives depend on the installed web server and OpenSSL version.
  • A TLS 1.3-only policy is strongest but can break older clients. TLS 1.2 plus TLS 1.3 is the usual compatibility baseline.
  • The tables cover commonly deployed cipher families, not every historical or vendor-specific suite ever registered.

Your feedback matters

Was this post helpful?

0 reactions