Skip to main content

TLS 1.3 Handshake Internals on AWS: ALB, CloudFront, and ACM

Cloud ArchitectureUpdated Palaniappan P2 min read

Quick summary: A full TLS handshake on every API call adds RTTs your p99 cannot afford. This guide walks through TLS 1.3 1-RTT handshakes and resumption, ACM cert rotation, and security policies on ALB and CloudFront.

Key Takeaways

  • A full TLS handshake on every API call adds RTTs your p99 cannot afford
  • This guide walks through TLS 1.3 1-RTT handshakes and resumption, ACM cert rotation, and security policies on ALB and CloudFront
  • TLS 1.3 (June 2026) is the default forward path on CloudFront and modern ALB security policies ( )
  • Handshake cost moved from 2-RTT (TLS 1.2) to 1-RTT for new sessions; 0-RTT exists in the protocol but is risky for non-idempotent APIs, and ALB does not implement it
  • Handshake flow (architect view) 1
A 1-RTT TLS 1.3 handshake sketched between a client and an ALB, with an ACM certificate hanging on the chain
Table of Contents

TLS 1.3 (June 2026) is the default forward path on CloudFront and modern ALB security policies (ELBSecurityPolicy-TLS13-1-2-...). Handshake cost moved from 2-RTT (TLS 1.2) to 1-RTT for new sessions; 0-RTT exists in the protocol but is risky for non-idempotent APIs, and ALB does not implement it.

Symptoms, mechanisms, and AWS controls

Production symptomMechanismAWS control
High TLS handshake latencyTLS 1.2 requires more round tripsALB/CloudFront TLS 1.3 security policy
Certificate renewal outagesManual cert rotationACM auto-renewal with DNS validation
0-RTT replay riskEarly data accepted before full handshakeKeep 0-RTT off mutation endpoints; ALB does not accept early data

My recommendation: set ALB and CloudFront to TLS 1.3 policies and, wherever an edge does accept early data, restrict 0-RTT to idempotent reads. Never use it on POST/PUT without anti-replay guards.

Benchmark pattern (hypothetical workload): ALB with TLS 1.3 policy ELBSecurityPolicy-TLS13-1-2-2021-06, full handshake 1-RTT (vs 2-RTT on TLS 1.2), PSK session resumption saves 45ms p50 on repeat clients; CloudFront TLS 1.3 + HTTP/3 cuts handshake to ~1 RTT on QUIC.

Handshake flow (architect view)

  1. ClientHello with key shares
  2. ServerHello + encrypted extensions + cert chain (ACM)
  3. Application data

Session tickets and resumption cut repeat handshake work, so ensure clients enable reuse. Broken middleboxes that disable tickets show up as p99 spikes after deploy.

AWS services mapping

LayerCert sourceKnob
CloudFrontACM us-east-1Security policy, HTTP/3 + TLS 1.3
ALBACM regionalssl_policy, mTLS optional
API GatewayACM / importMinimum TLS 1.2

ACM rotation is automatic for DNS-validated certs, so watch CloudWatch DaysToExpiry only for imported certs.

When this advice breaks

  • Legacy IoT clients on TLS 1.0 must use an isolated endpoint with an older policy (compliance debt).
  • Mutual TLS at scale: consider Verified Access or private CA with device provisioning.

What to do this week

  1. Audit ALB/CloudFront policies and remove TLS 1.0/1.1 unless there is a documented exception.
  2. Measure ssl_handshake_time via CloudFront access logs or ALB target timing.
  3. Enable OCSP stapling (default on CloudFront) and verify chain completeness.

More in This Track

Part of the Engineering Guides library (June 2026).

What this guide doesn’t cover

mTLS service mesh: see the Kubernetes track service mesh guide.

Frequently asked questions

Should I enable TLS 1.3 0-RTT on POST APIs?
No. 0-RTT is replay-risky on non-idempotent methods. ALB does not implement 0-RTT early data at all; it offers PSK session resumption instead. Where another edge accepts early data, restrict it to idempotent GETs. Set ALB and CloudFront to TLS 1.3 policies and keep mutations on a full 1-RTT handshake.
Do DNS-validated ACM certificates need DaysToExpiry alarms?
Automatic renewal covers DNS-validated ACM certs. Watch DaysToExpiry for imported certificates only. CloudFront certs still belong in us-east-1 ACM.
When must I keep TLS 1.0 or 1.1?
Only for a documented legacy IoT or client exception on an isolated endpoint. That is compliance debt. Default ALB/CloudFront policies should drop 1.0/1.1 in 2026.
Will session tickets always cut p99 after a deploy?
Broken middleboxes that disable tickets show up as handshake spikes. Measure ssl_handshake_time in CloudFront logs or ALB timing. Tickets help repeat clients; they do not fix an origin still on TLS 1.2 2-RTT.
Palaniappan P
Palaniappan P

AWS Cloud Architect & AI Expert

AWS-certified cloud architect and AI expert with deep expertise in cloud migrations, cost optimization, and generative AI on AWS.

AWS ArchitectureCloud MigrationGenAI on AWSCost OptimizationDevOps

Recommended Reading

Explore All Articles »