无域名情况下实现AWS负载均衡器支持HTTPS的方法
核心概念澄清与解决方案
为什么不能用ELB默认DNS申请证书
TLS/SSL证书的核心作用是验证域名归属权,只有你拥有合法控制权的域名,证书机构(比如AWS ACM)才会为你签发证书。ELB默认DNS(如my-app-XXXXXX.eu-central-1.elb.amazonaws.com)属于AWS官方域名体系,你没有该域名的控制权,因此无法申请绑定它的公网可信证书——CA机构不会为不属于你的域名签发证书。
可行解决方案
使用自定义域名(生产环境推荐)
- 注册一个属于你的域名(例如
oauth.yourdomain.com) - 在域名服务商(如Route 53)中添加CNAME记录,将该自定义域名指向ELB的默认DNS地址
- 在AWS ACM中申请绑定此自定义域名的证书,通过DNS验证完成域名归属校验(ACM会自动在Route 53中添加验证记录,操作简单)
- 为ELB的443 HTTPS监听器配置该证书,后续OAuth流程的回调端点使用你的自定义域名
- 注册一个属于你的域名(例如
自签名证书(仅测试/内部环境使用)
如果你只是临时测试,可生成自签名证书并上传到ACM或IAM,再配置给ELB监听器。但注意:自签名证书不被主流OAuth授权服务器信任,正规的OAuth服务会拒绝使用这类证书的回调地址,因此仅适合非生产场景。
内容的提问来源于stack exchange,提问作者room13
相关产品推荐
相关产品推荐

