EresusSecurity
Back to Research
Guide

TLS Configuration Security: The Practical Hardening Guide for Web Servers

Yiğit İbrahim SağlamOffensive Security Specialist
November 9, 2026
3 min read
GuideApplication Security

TLS Configuration Security: The Practical Hardening Guide for Web Servers

TLS is where application security meets the network, and the gap lives in configuration. A server that negotiates TLS 1.0, offers legacy CBC suites, or serves a stale certificate is not "mostly secure" — it is providing downgrade paths. Mozilla's SSL Configuration Generator does the cipher-suite math; the controls below are the decisions around it.

1. Enforce a Floor: TLS 1.2 Minimum, TLS 1.3 Preferred

Disable TLS 1.0 and 1.1 unconditionally — they negotiate predictable IVs and CBC padding oracles. Modern clients support TLS 1.2 everywhere; serve TLS 1.3 first, fall back to 1.2, and treat anything below 1.2 as an error condition.

2. Offer AEAD Cipher Suites — Drop Everything Else

With TLS 1.2, restrict to AEAD suites (ECDHE-ECDSA-AES128-GCM-SHA256 and siblings per the Mozilla generator). Kill RC4, 3DES, DES, export ciphers, and anonymous DH. CBC mode is the single biggest source of historical TLS breakage — remove it where clients allow.

3. HTTP Strict Transport Security (HSTS)

Serve Strict-Transport-Security: max-age=31536000; includeSubDomains (add preload only if you control every subdomain, because preload is a one-way door). HSTS protects the next connection from downgrade and SSL-stripping, which is exactly the attack path plaintext misconfigurations invite.

4. Certificate Hygiene: Lifetime, Automation, and Expiry Alarms

Certificates expire, and the expiry is silent. Run ACME automation with a 60–90 day validity window, monitor remaining days with an alert at 14 days, and rotate automations on failure. A stale certificate is a live, unauthenticated trust bypass — browsers will prompt, users will click through, attackers will celebrate.

5. Session Tickets: Randomize per Server

Session resumption tickets should be unique per machine or sealed. When a server shares one ticket key across an estate, one compromised node resurrects old sessions fleet-wide. Prefer short ticket lifetimes and rotate keys.

A Certificate Rollover That Cannot Fail

Plan the order of moves carefully. Enable TLS 1.3 and HSTS first, since those changes are backward compatible and immediately raise the floor. Then restrict cipher suites to the Mozilla modern profile in staging and watch client handshake telemetry for a week before production. Finally, schedule the OCSP stapling verification and the session-ticket key rotation for the same maintenance window, so a certificate incident never coincides with unrelated configuration churn.

Verifying with testssl.sh

Testing beats reading logs. The testssl.sh tool enumerates protocol surface, cipher-suite selection, certificate chain integrity, and HSTS behavior in a report a browser cannot produce. Run testssl before every production change, compare against the Mozilla modern profile, and keep results in the change record. Legacy suites surface in production far more often than teams expect, and the only reliable way to catch them is an automated scheduled scan — a TLS finding you discover costs a sprint; one an attacker discovers costs the board.

What Reviewers See

A TLS review does not stop at "HTTPS is on". It checks protocol surface, suite selection against Mozilla's modern profile, HSTS posture, certificate lifetime and automation, and OCSP stapling where offered. Each finding gets a severity based on the concrete downgrade or plaintext path it enables.

Sources

AI Security Starter Training

Request a practical checklist for prompt injection, RAG data leakage, MCP risks, and model-file security before launch.

Prompt injection and guardrail bypass checks.
RAG data leakage and permission-boundary review.
MCP identity, transport, and command-risk controls.

No spam. Used only to send the resource and related security notes.

Related Services

Scope Estimator

Get a rough engagement size before the scoping call.

What this depth covers
Full coverage of the OWASP-family test plan for the in-scope targets: broken access control, injection, authn and authz flaws, business-logic abuse, findings with reproduction steps.
What it does not cover
Multi-week adversary emulation, physical and phishing vectors, custom exploit development, source-code review.

Indicative effort

~5 tester-days

Estimate only, not a quote. It scales with the three factors above and assumes the targets are reachable and test accounts are provided in the test window.

Request exact scope