AWS Elastic Beanstalk 中的 HTTPS 配置

Https configuration in AWS Elastic Beanstalk

我在 elastic beanstalk 中有一个 node.js 应用程序,我希望通过 HTTPS 使用它。但由于某种原因,它无法安全连接。 我遵循的步骤:

  1. 使用我自己的域在 Route53 中创建了一个托管区域。
  2. 收到域验证电子邮件,接受并创建托管区域。
  3. 在 EB 环境配置中为 https 启用端口 443。
  4. 为安全组中端口为 443 的 https 添加了新的入站规则。

然后,当我在浏览器中点击 url (https://myurl.us-west-1.elasticbeanstalk.com/) 时,它会显示页面但不安全。我附上了截图。

只是巩固调查结果,希望它对其他人也有用。

我在这里大大简化了,但是浏览器在验证证书时执行的两个关键检查是证书链和站点名称。 (至少这两个似乎是证书问题的两个最常见来源。)

使用证书链,浏览器会检查证书是否由知名(且受信任)的权威机构签署。因此,首先您需要由知名证书颁发机构颁发的适当证书。最简单的可能是从 AWS Certificate Manager 获取一个。但是您可以从证书颁发机构获取一个。看这里:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https.html

公平地说,您实际上可以使用自签名证书,甚至可以通过将您的签名证书添加到浏览器中的受信任证书列表来抑制警告。但这并不是 public 网站的真正选择,因为它需要您网站的每位访问者手动将您的证书添加为受信任的。

通过名称检查,浏览器只需验证您在 url 栏中输入的站点名称是否与证书中列出的站点名称相匹配。为了满足此检查,您必须在 Route53 中将 www.mydomain.com(或任何您的域)配置为您的 ELB 的别名。然后将浏览器指向 www.mydomain.com(而不是 elasticbeanstalk url)。