Elastic Beanstalk (EB) 默认地址/URL 上的 HTTPS(无自定义域名)

Posted

技术标签:

【中文标题】Elastic Beanstalk (EB) 默认地址/URL 上的 HTTPS(无自定义域名)【英文标题】:HTTPS on Elastic Beanstalk (EB) default address / URL (without custom domain name) 【发布时间】:2018-09-18 23:10:14 【问题描述】:

我的移动应用程序后端托管在默认地址(例如 xxxxx.us-east-2.elasticbeanstalk.com)上的 Elastic Beanstalk 上。我想为这个地址使用 HTTPS。

我已按照以下 3 个链接上的说明创建和自签名证书,并将其添加到我的 EB 应用程序的负载均衡器中。但是,我在浏览器中访问地址时收到警告(“您的连接不是私有的”)(理论上这不是问题,因为它只是托管后端),并且在向 https 地址发出 API 请求时也会出错。

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl.html https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-ssl-upload.html https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-elb.html

除了设置自定义域外,我还能做什么?我知道 Heroku 立即为托管在其服务上的应用程序提供 https,AWS 是否提供类似的东西?

谢谢!

【问题讨论】:

【参考方案1】:

使用 https 时,您需要确保您的服务器 URL 的域与证书的 URL 相同。否则,您将在浏览器上看到上述警告,并且您的 API 请求将不起作用。

在一些网站上,您可以创建免费的 SSL 证书映射到您的 Elastic Beanstalk 应用程序的域。我推荐这个one。

【讨论】:

sslforfree 看起来很棒,谢谢。证书将在 90 天后到期,我现在可以使用,但如果您知道任何更长的时间,那也很棒。 sslforfree 似乎不再允许这样做,除非我做错了。您是如何通过域所有权验证步骤的? 是的,它仍在工作。我这周刚刚更新了我的证书。要通过域验证,请选择手动验证,然后下载验证文件,并将其粘贴到应用程序内名为“public/.well-known/acme-challenge”的文件夹中。 真的有可能吗?您必须获得*.us-east-2.elasticbeanstalk.com 的证书,这不是您的域。【参考方案2】:

您必须创建一个 ssl 证书。 AWS 证书管理器不起作用,自签名证书也不起作用[除非您的目标是保护负载均衡器和 EC2 实例之间的连接,在这种情况下自签名起作用]。我个人喜欢使用 sslforfree.com。大多数类似网站都提供 90 天免费证书。

真正的问题是:如何验证 beanstalk 域的所有权?这就是你的做法:

选择一个允许您使用由您的服务器公开提供的文件进行验证的站点。 DNS 或电子邮件方法不起作用。 设置您的服务器以提供静态资产并提供下载的文件。该文件通常将在类似于以下目录的目录下提供:“/.well-known/pki-validation/THE_AUTH_FILE_HERE”。换句话说,您应该在浏览器中访问:YOUR_BEANSTALK_DOMAIN.com/.well-known/pki-validation/THE_AUTH_FILE 并能够读取文件的内容。 您应该可以下载证书。 转到 AWS 证书管理器并导入证书。您必须使用一些文本编辑器打开公共证书、私钥和证书链/捆绑包的内容 [我的 IDE 可以很好地打开它们],然后将它们复制粘贴到证书管理器中。 在弹性 beanstalk 环境的配置中添加负载平衡器。在配置的“负载均衡器”部分,将https监听器添加到端口443,将其映射到监听端口80的http实例,从下拉列表中添加ssl证书[这是我们刚刚在证书管理器中添加的]。

【讨论】:

以上是关于Elastic Beanstalk (EB) 默认地址/URL 上的 HTTPS(无自定义域名)的主要内容,如果未能解决你的问题,请参考以下文章

Elastic beanstalk - eb create 无法创建 AWSEBRDSDBSecurityGroup

Elastic Beanstalk CLI 错误:尚未使用 EB CLI 设置此目录 您必须先运行“eb init”

Elastic Beanstalk:部署 Django for mac,无法安装 EB

使用 eb-cli 创建单实例 Elastic Beanstalk 应用程序

我可以将自定义日志文件添加到 elastic beanstalk 的“eb logs”命令捕获的日志吗?

使用 AWS CodeBuild 和 EB CLI 部署到 AWS Elastic Beanstalk