为什么Elastic Beanstalk负载均衡器拒绝建立SSL连接?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么Elastic Beanstalk负载均衡器拒绝建立SSL连接?相关的知识,希望对你有一定的参考价值。

最近,我开始搜索安全程序并遇到了SSL。实际上,我已经了解了SSL,但当时发现它太贵了。幸运的是,昨天我发现亚马逊免费提供SSL证书!但是,我花了整整一天试图设置它,但它没有用。

我在GoDaddy注册了一个域名,让我们假设它是www.mydomain.com。但是,我的网站托管在亚马逊网络服务(AWS)上。我还可以编辑GoDaddy的DNS记录和对我的AWS账户的完全访问权限。我见过LetsEncrypt,但我的网站运行在ASP.NET(IIS Windows)中,目前它们只支持Linux操作系统。

这是我试图做的事情:

  1. 从AWS Certificate Manager获取SSL证书 我选择通过DNS设置,这意味着我必须向GoDaddy域记录添加CNAME记录。 如果您仔细查看两张图片,则AWS上的CNAME记录位于页面的中心。我添加了一条包含值的CNAME记录。
  2. 将HTTPS添加到Load Balancer侦听器:
  3. 在安全组上允许HTTPS NOT:入站和出站规则都如上所述。我还设置了Load Balancer和我的运行实例来使用此安全组。
  4. 为Route 53 Hosted Zones添加了记录 A类型记录指向我的实例IP。 NS记录由亚马逊生成(我还添加了GoDaddy的名称服务器)。 SOA记录是由亚马逊生成的,我没有触及它。 CNAME是我添加的,它又是SSL协议。

我不知道还能做什么,或者我的设置是否错误。

答案

如果我没弄错的话,你有一个ELB实例(经典/应用程序/ NLB),请求已成功发布* .mydomain.com的ACM证书,创建HTTPS侦听器以使用SSL证书但获得连接在443港口超时。

问题是mydomain.com的DNS记录仍然指向EC2实例的IP,它可能没有侦听端口443(并且根本没有使用ELB)。

所以,要解决这个问题,你必须使用ELB's DNS name and use it as CNAME in your DNS record(不确定是否在Route 53或GoDaddy,因为我不知道哪个是权威的NS)。

此外,您可以考虑使用mydomain.com和* .mydomain.com请求新证书并更新侦听器,因为带有* .mydomain.com的ACM证书不保护mydomain.com。

以上是关于为什么Elastic Beanstalk负载均衡器拒绝建立SSL连接?的主要内容,如果未能解决你的问题,请参考以下文章

没有负载均衡器的 Elastic Beanstalk 别名

Elastic Beanstalk 弹性负载均衡器名称

AWS Elastic Beanstalk - NodeJS:在没有 Beanstalk 负载均衡器的情况下从 Letsencrypt 获取证书 SSL

Elastic Beanstalk 在配置菜单中没有负载均衡器设置

Elastic Beanstalk 经典负载均衡器 HTTPS 未连接

可以将 Elastic Beanstalk 从单个实例更新为负载均衡器,