All checks
Medium ELB · regional

Application and Network Load Balancer listeners should use secure protocols to encrypt data in transit

Confirms that each Application Load Balancer listener uses HTTPS and each Network Load Balancer listener uses an encrypted protocol, so client traffic to the load balancer is not carried in the clear. QUIC passes on a Network Load Balancer, though AWS's control names only TLS; a UDP listener passes only if the application moves to TLS over TCP or to QUIC.

service
ELB
severity
Medium
scope
evaluated in every region

How to fix it

  • Can break clients: Clients that still connect to this listener over plain HTTP or TCP fail once it requires TLS, so move them to HTTPS or TLS first.
  • Affects another check: An HTTP listener that only redirects to HTTPS passes ELB.1 and fails this, so delete it if no client needs the redirect, or mark this finding Won't fix.

In the console

EC2 → Load balancers → the load balancer → Listeners and rules → the listener → Actions → Edit listener

Protocol
HTTPS on an Application Load Balancer; TLS on a Network Load Balancer
Default SSL/TLS certificate
A certificate for the listener's domain, from ACM or IAM
Security policy
ELBSecurityPolicy-TLS13-1-2-Res-2021-06, or another policy ELB.17 accepts

With the AWS CLI

aws elbv2 modify-listener --listener-arn <listener-arn> --protocol HTTPS --port 443 --certificates CertificateArn=<acm-certificate-arn> --ssl-policy ELBSecurityPolicy-TLS13-1-2-Res-2021-06 --region <region>

With Terraform

resource "aws_lb_listener" "https" {
  load_balancer_arn = var.load_balancer_arn
  port              = 443
  protocol          = "HTTPS"
  certificate_arn   = var.acm_certificate_arn
  ssl_policy        = "ELBSecurityPolicy-TLS13-1-2-Res-2021-06"

  default_action {
    type             = "forward"
    target_group_arn = var.target_group_arn
  }
}

See which of your accounts this check is failing on.

Book a live scan