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

时间:2018-04-09 14:02:55

标签: amazon-web-services url heroku https elastic-beanstalk

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

我已按照以下3个链接上的说明创建并自行签署证书,并将其添加到我的EB应用上的Load Balancer中。但是,当我在浏览器中访问该地址时,我收到警告("您的连接不是私密的")(理论上不是问题,因为它只是托管后端),并且还得到了向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会提供类似的东西吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

使用https时,您需要确保服务器的URL域等于证书的URL。否则,您将在浏览器上看到上述警告,并且您的API请求无法正常工作。

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

答案 1 :(得分:0)

您必须创建一个 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端口,映射到http实例监听80端口,在下拉列表中添加ssl证书【这是我们刚刚在证书管理器中添加的】。< /li>