我有一个域,例如Amazon路由53中的domain.com,该域已附加到ELB。
在同一托管区域中,我只有几个子域,例如one.domain.com,two.domain.com和three.domain.com通过其IP连接到另一个ec2实例。
现在,我已经在AWS Certificate Manager中为domain.com和* .domain.com创建了通配符SSL,然后在* domain.com的路由53(位于同一托管区域)中添加了A记录,该记录将指向与domain.com相同的ELB。
现在,ELB中的所有子域都可以正常工作,但是通过其IP连接到另一个ec2实例的其他子域one.domain.com,two.domain.com和three.domain.com无法正常工作。
可能是什么原因?
答案 0 :(得分:0)
ACM提供的证书只能与Elastic Beanstalk,API Gateway,Cloudfront和Elastic LoadBalancer一起使用。有关详细信息,请参见this。
因此,如果您尝试将其附加到EC2实例,那将无法正常工作。
*。domain.com证书还允许您对子域(例如a.domain.com和b.domain.com)使用相同的证书。但是,Route 53条目必须是a.domain.com和b.domain.com。不是* .domain.com。
答案 1 :(得分:0)
您应该删除EC2端的SSL,ELB和ACM的SSL句柄。
通过AWS文档:
负载均衡器从客户端获取请求,并将其分配到已向负载均衡器注册的EC2实例中。
您可以创建一个可以同时侦听HTTP(80)和HTTPS(443)端口的负载平衡器。如果您指定HTTPS侦听器将请求发送到端口80上的实例,则负载均衡器将终止请求,并且从负载均衡器到实例的通信不会被加密。如果HTTPS侦听器将请求发送到端口443上的实例,则将从负载均衡器到实例的通信加密。
如果您的负载均衡器使用加密连接与实例进行通信,则可以选择启用实例身份验证。这样可以确保只有当实例的公钥与为此目的指定给负载均衡器的密钥相匹配时,负载均衡器才能与该实例进行通信。
有关更多信息,请阅读Create a Classic Load Balancer with an HTTPS Listener