为AWS Classic ELB默认DNS配置签名SSL证书的方案咨询
问题分析与解决方案
核心结论
你不可能为my-elb-1234.region.elb.amazonaws.com这类AWS官方托管的ELB默认域名拿到受信任的签名SSL证书,原因很明确:
- 不管是ACM还是Certbot依赖的Let's Encrypt,所有正规证书颁发机构(CA)都不会给不属于你的域名发证书。
amazonaws.com是AWS的自有域名,你没有所有权,根本过不了域名验证这一关。 - 你之前加CNAME的思路行不通,因为访问
our-process.domain时,SSL证书必须和这个域名匹配,ELB默认域名的证书自然不对应,校验肯定失败。
合规可行的调整方案
既然当前ELB的用法不合规,同时要解决SSL问题,给你三个务实的方向:
- 绕开ELB,直接在EC2的Nginx上用现有证书
- 继续用你已经通过Certbot生成的
our-process.domain证书,在Nginx里配置好SSL。 - 把Route53里
our-process.domain的记录改成解析到EC2的公网IP(或者绑定弹性IP更稳定),直接去掉那个没用的ELB,既合规又省资源。
- 继续用你已经通过Certbot生成的
- 把ELB用起来,做正规的SSL终止
- 如果以后可能要加EC2实例,那就把ELB用到位:
- 用ACM给
our-process.domain申请证书(你有Route53托管权限,一键就能验证通过)。 - 把这个证书绑定到ELB的HTTPS监听端口。
- 修改Route53,把
our-process.domain的CNAME指向ELB的默认DNS。 - 调整EC2的安全组,只允许ELB的流量访问Nginx端口,不让公网直接连EC2,确保流量全走ELB,符合架构要求。
- 用ACM给
- 如果以后可能要加EC2实例,那就把ELB用到位:
- 直接删除闲置ELB
- 如果确实不需要负载均衡,干脆删掉这个Classic ELB,既解决合规问题,又能省点云资源费用。
内容的提问来源于stack exchange,提问作者Dense04
相关产品推荐
相关产品推荐

