AWS Elastic Beanstalk 中的 HTTPS 配置

Posted

技术标签:

【中文标题】AWS Elastic Beanstalk 中的 HTTPS 配置【英文标题】:Https configuration in AWS Elastic Beanstalk 【发布时间】:2017-11-20 15:54:38 【问题描述】:

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

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

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

【问题讨论】:

您的证书有问题。是自签吗?你需要一个合适的证书。最简单的可能是从 AWS Certificate Manager 获得一个。但是您可以从证书颁发机构获得一个。见这里:docs.aws.amazon.com/elasticbeanstalk/latest/dg/… 如果这不是问题 - 检查浏览器说明它为什么认为它不安全(并在上面发布原因)。 证书由 AWS Certificate Manager 提供,我按照步骤 1 和 2 获得了证书。 添加了错误浏览器显示的屏幕截图 @Saurav 请提供有关您的证书的更多信息。您是否仅将通配符域用于证书? 【参考方案1】:

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

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

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

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

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

【讨论】:

以上是关于AWS Elastic Beanstalk 中的 HTTPS 配置的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk 中的 Python:私有包依赖项

AWS Elastic Beanstalk 中的 mysqlclient 安装错误

一个 AWS 账户中的 Elastic Beanstalk 能否与另一个 AWS 账户中的 RDS 通信?

如何解决 AWS Elastic Beanstalk 中的“容器命令构建失败”一般错误?

AWS Elastic Beanstalk 中的 JDBC 连接字符串

AWS Elastic Beanstalk 中的工作人员“dyno”