Skip to main content
tls

TLS Termination

TLS termination is the practice of decrypting TLS traffic at a load balancer or reverse proxy rather than at the application server. The proxy handles certificate management, cipher negotiation, and CPU-intensive cryptographic operations. Backend traffic between proxy and application runs over HTTP (or re-encrypted with a simpler internal cert).

Definition

TLS termination offloads encryption/decryption from application servers to a dedicated endpoint – typically a load balancer (AWS ALB, F5, HAProxy) or reverse proxy (Nginx, Caddy). The termination point holds the private key and certificate, negotiates TLS with clients, and forwards decrypted HTTP to backend servers. This simplifies certificate management (one cert per domain, managed at the proxy) and improves performance (dedicated hardware acceleration, connection reuse). The tradeoff is that traffic between the proxy and backend is unencrypted unless re-encrypted (TLS re-encryption or mTLS). In zero-trust architectures, re-encryption to backends is standard. The X-Forwarded-Proto header tells backends whether the original client connection was HTTPS, enabling correct redirect URLs.

Examples

  • Nginx: ssl_certificate /path/to/cert.pem; proxy_pass http://backend:8080;
  • AWS ALB terminates TLS and forwards to target group on port 80
  • Caddy auto-provisions Let's Encrypt certs and terminates TLS automatically

Related Protocols

Related Terms