提问人:S.B. 提问时间:8/25/2023 更新时间:8/25/2023 访问量:38
Elastic Beanstalk - 侦听器无法同时使用安全协议和不安全协议与 InstancePort 80 通信
Elastic Beanstalk - Listeners can't talk to InstancePort 80 with secure and insecure protocols at the same time
问:
我正在尝试将 SSL 证书(来自 AWS Certificate Manager)添加到我的 elastic 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):
在“修改负载均衡器”页上,该过程因与您的环境关联的负载均衡器类型而异。
- Classic Load Balancer
- 选择 Add listener (添加侦听器)。
- 在 Classic Load Balancer 侦听器对话框中,配置 以下设置:
- 对于侦听器端口,键入传入流量端口,通常为 443。
- 对于 Listener protocol (侦听器协议),选择 HTTPS。
- 对于 Instance port (实例端口),键入 80。
- 对于 Instance protocol (实例协议),选择 HTTP (HTTP)。
- 对于 SSL certificate (SSL 证书),选择您的证书。
- 选择 Add (添加)
禁用现有端口 80 侦听器:
当我禁用端口 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;代理:null)
该证书位于 AWS Certificate Manager 上的“待验证”中,与 Elastic Beanstalk 位于同一 us-east-1 区域。
其他背景
我的网站 mysubdomain.mysite.io 托管在 lightsail 上,并且配置了自己的 SSL。
我的 subsubdomain.mysubdomain.mysite.io 托管在ELB上是这个问题的主题。
答:
以下是我如何解决问题的分步演练:
SSL证书
待验证:AWS Certificate Manager 中的 SSL 证书最初处于“待验证”状态。
DNS 验证:为了验证 SSL 证书,我按照 AWS Certificate Manager 的说明在 DNS 设置中添加了 CNAME 记录。 验证成功:添加所需的 CNAME 记录后,证书状态切换为“成功”,表示已准备好使用。
弹性负载均衡器 (ELB) 初始侦听器配置:我尝试在端口 443 上为 HTTPS 流量向 ELB 添加侦听器,并通过 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 设置后开始解析。
评论