CloudFront distributions that use custom SSL/TLS certificates are configured to serve HTTPS using Server Name Indication (ssl_support_method: sni-only). It evaluates SNI use rather than dedicated IP during the TLS handshake.
Risk
Without SNI, distributions use dedicated IP SSL, driving higher costs and inefficient IP usage. Dedicated IPs can strain quotas and hinder scaling, reducing availability. Managing IP-bound certificates adds operational risk during rotations and expansions.
prowler aws --checks cloudfront_distributions_https_sni_enabled
Recommendation
Use SNI (sni-only) for HTTPS with custom certificates; avoid dedicated IP unless a critical, non-SNI client requires it. Document and periodically review exceptions, plan client upgrades, and adopt the latest TLS security policy to standardize secure, modern configurations.
Remediation
aws cloudfront get-distribution-config --id <DISTRIBUTION_ID> --output json > current-config.json && echo 'Manually edit current-config.json to change ViewerCertificate.SslSupportMethod to sni-only', then run:' && echo 'aws cloudfront update-distribution --id <DISTRIBUTION_ID> --distribution-config file://current-config.json --if-match $(aws cloudfront get-distribution-config --id <DISTRIBUTION_ID> --query "ETag" --output text)'
- In the AWS Console, go to CloudFront and open your distribution
- Select the Settings/General tab and click Edit
- Under SSL certificate, ensure your custom certificate is selected
- Set Client support to SNI only
- Click Save changes
Source Code
Resource Type
AwsCloudFrontDistribution
References
- https://www.trendmicro.com/cloudoneconformity/knowledge-base/aws/CloudFront/cloudfront-sni.html
- https://docs.aws.amazon.com/securityhub/latest/userguide/cloudfront-controls.html#cloudfront-8
- https://support.icompaas.com/support/solutions/articles/62000223557-ensure-cloudfront-sni-enabled
- https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cnames-https-dedicated-ip-or-sni.html#cnames-https-sni