我正在尝试将 SSL 证书(来自 AWS Certificate Manager)添加到我的弹性 beanstalk 实例。
当我按照以下说明操作时,我收到: 更新名为:awseb-e-7-AWSEBLoa-1B1GTXIBDDIFV 的负载均衡器失败 原因:侦听器无法同时使用安全和不安全协议与 InstancePort 80 通信(服务:AmazonElasticLoadBalancing;状态代码:409;错误代码:InvalidConfigurationRequest;请求 ID:d0fc694a-3d06-485c-a60a-0fd625ba95a9;代理:null)
我已按照此处的 AWS 说明进行操作 (https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-elb.html):
在修改负载均衡器页面上,该过程根据与您的环境关联的负载均衡器类型而有所不同。
当我禁用端口 80 侦听器时,我会同时添加新侦听器:更新名为:awseb-e-7-AWSEBLoa-1B1GTXIBDDIFV 的负载均衡器失败原因:找不到密钥的服务器证书:arn:aws:acm: us-east-1:730082756200:certificate/a875f89b-ea03-4904-bcb4-3295750cf3b8(服务:AmazonElasticLoadBalancing;状态代码:400;错误代码:CertificateNotFound;请求 ID:9717eb12-f72d-46cc-88bd-59f1cae7fad7;代理:空)
该证书在 AWS Certificate Manager 上处于“待验证”状态,并且与 Elastic Beanstalk 位于同一 us-east-1 区域。
我的网站 mysubdomain.mysite.io 托管在 Lightsail 上,并且配置了自己的 SSL。
我的 subsubdomain.mysubdomain.mysite.io 托管在 ELB 上,这是这个问题的主题。
以下是我如何解决问题的分步演练:
待验证:AWS Certificate Manager 中的 SSL 证书最初处于“待验证”状态。
DNS 验证:为了验证 SSL 证书,我按照 AWS 证书管理器的说明在 DNS 设置中添加了 CNAME 记录。 验证成功:添加所需的CNAME记录后,证书状态变为“成功”,表明可以使用。
弹性负载均衡器(ELB) 初始侦听器配置:我尝试向 ELB 添加一个侦听器,用于端口 443 上的 HTTPS 流量,通过 HTTP 转发到端口 80 上的实例。 错误:我在这个过程中遇到了错误: 第一个错误:同一 InstancePort 80 上不能同时使用安全和不安全的协议。 第二个错误:找不到密钥的证书。
成功添加侦听器:成功验证 SSL 证书后,我能够添加端口 443 的侦听器,没有任何问题。
DNS 区域:我的域 mysubdomain.mysite.io 已在 AWS LightSail 中配置了一个 DNS 区域。
添加 CNAME 记录:我在 LightSail 中添加了 CNAME 记录,以将 subsubdomain.mysubdomain.mysite.io 映射到我的 Elastic Beanstalk URL (my-elb.eba-cf63dng7.us-east-1.elasticbeanstalk.com)。
DNS 传播:使用 nslookup,我确认 DNS 已传播,并且子域现在正确指向我的 ELB 的 IP。
连接解析:最初,我的域无法解析,但在 DNS 传播和正确的 DNS 设置后开始解析。