Amazon EC2中的HTTPS设置

Muh*_*raf 86 https amazon-ec2

我们如何在Amazon EC2中启用HTTPS?我们的网站正在开发HTTP.

Dan*_*ore 63

首先,您需要打开HTTPS端口(443).为此,您可以访问https://console.aws.amazon.com/ec2/并单击Security Groups左侧的链接,然后创建一个同时具有HTTPS的新安全组.然后,只需更新正在运行的实例的安全组,或使用该组创建新实例.

完成这些步骤后,您的EC2工作就完成了,这都是应用程序问题.

  • 我能够将端口443的新规则添加到实例使用的安全组中,它刚刚开始工作,甚至没有重新启动它. (14认同)
  • 您无需更改安全组,可以"编辑入站规则" (10认同)
  • `你不能改变正在运行的实例的安全组,甚至重新启动` - 我认为这个限制已被删除,因为这个答案已经发布. (9认同)
  • @ nikhil84通过在安全组中添加HTTPS,您只在步骤1的计算机上打开了端口443.其次,您需要在该计算机上设置服务器以侦听443端口(而不是默认HTTP端口80)并接受HTTPS流量.你用哪个服务器? (7认同)
  • @ nikhil84请遵循这里列出的指导方针:https://www.digitalocean.com/community/tutorials/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-14-04设置HTTPS在Apache HTTPD (3认同)

Dig*_*iro 30

这个答案主要针对那些在另一个网站上购买域名的人(如GoDaddy),并希望将Amazon免费证书与证书管理器一起使用

此答案使用Amazon Classic Load Balancer(付费)在使用之前查看定价

步骤1 - 使用证书管理器申请证书

转到证书管理器>申请证书>申请公共证书

在您要添加的域名上myprojectdomainname.com,*.myprojectdomainname.com然后继续下一步

选择电子邮件验证并确认和请求

打开您收到的电子邮件(在您购买域名的电子邮件帐户上)并批准请求

在此之后,检查的验证状态 myprojectdomainname.com*.myprojectdomainname.com是广告获得成功,如果是广告获得成功,你可以继续第2步

步骤2 - 为负载均衡器创建安全组

在EC2上,转到"安全组">"创建安全组"并添加http和https入站

它将是这样的: 在此输入图像描述

第3步 - 创建负载均衡器

EC2>负载均衡器>创建负载均衡器>经典负载均衡器(第三选项)

在里面创建LB - 项目的vpc在Load Balancer Protocol上添加Http和Https 在此输入图像描述

下一步>选择退出安全组

选择您在上一步中创建的安全组

下一步>从ACM中选择证书

选择步骤1的证书

下一步>

在健康检查我已经使用ping路径/(一个斜杠而不是/index.html)

步骤4 - 将您的实例与负载均衡器的安全组相关联

EC2>实例>单击您的项目>操作>网络>更改安全组

添加Load Balancer的安全组

第5步

EC2>负载均衡器>单击您创建的负载均衡器>复制DNS名称(A记录),它将类似于 myproject-2021611191.us-east-1.elb.amazonaws.com

转到Route 53>路由区域>单击域名>转到记录集(如果您在此处没有域,请使用Domain Name: myprojectdomainname.com和创建托管区域Type: Public Hosted Zone)

检查是否有记录类型A(可能不是),创建/编辑名称为空的记录集,类型A,别名是和目标已复制的DNS

创建一个新的记录集,类型A,名称*.myprojectdomainname.com,别名是和目标域(myprojectdomainname.com).这样就可以通过www.myprojectdomainname.com和subsite.myprojectdomainname.com访问您的网站.注意:您需要配置反向代理(Nginx/Apache)才能执行此操作.

在NS上复制要在下一步使用的4个名称服务器值,它将类似于:

ns-362.awsdns-45.com ns-1558.awsdns-02.co.uk ns-737.awsdns-28.net ns-1522.awsdns-62.org

转到EC2> Instances>并复制IPv4 Public IP

第6步

在您已购买域名的域名注册网站上(在我的案例中为GoDaddy)

将路由更改为,http : <Your IPv4 Public IP Number>然后选择使用屏蔽转发

将名称服务器(NS)更改为您已复制的4 NS,这可能需要48小时才能生效

  • 如果我想要 https,是否必须使用负载均衡器? (2认同)

Geo*_*ord 8

Amazon EC2实例只是虚拟机,因此您可以像在任何服务器上设置SSL一样设置SSL.

您没有提到您所使用的平台,因此很难提供更多信息.

  • @SMT-查看https://letsencrypt.org/以获取免费和自动更新的证书。关于如何使用node进行设置,有很多信息(通过google)。您不需要执行其他任何特定于AWS / EC2的操作。 (2认同)
  • 谢谢回复!实际上,前几天我已经使它工作了,并简化了一些步骤。如果有人将来会读这本书:https://github.com/MSCHF/aws-ec2-node-npm-setup (2认同)

Bhu*_*han 5

您还可以使用Amazon API Gateway。将您的应用程序置于 API 网关后面。请查看此常见问题解答


Tom*_*vid 5

对于那些希望在 ec2 上使用无麻烦的 https 主要用于演示和测试目的的人来说,还必须有一个答案,他们可以快速实现这一目标的一种方法是:

我的答案在这里描述了如何使用 EC2 在几分钟内实现用于测试目的的 https,而无需创建证书的麻烦


小智 5

一个老问题,但值得一提的是答案中的另一个选项。如果您的域的 DNS 系统已在 Amazon Route 53 中定义,您可以在 EC2 前使用 Amazon CloudFront 服务并为其附加一个免费的 Amazon SSL 证书。这样,您将受益于拥有 CDN 以加快内容交付速度以及使用 HTTPS 协议保护您的域。

  • 是否有任何参考资料或博客提到了实现此目标的步骤? (2认同)

小智 1

使用Elastic Load Balacing,它支持在负载均衡器处终止 SSL,包括从应用程序实例卸载 SSL 解密并提供 SSL 证书的集中管理。

  • 您不只是使用 ELB 来提供 SSL,这实际上是一个相当具有误导性的答案。无论如何,您的服务器都需要提供 SSL,因此如果您不需要,添加负载均衡器只是额外的成本。它也是软件中的 SSL 终止,因此负载均衡器和服务器之间的 SSL 是一个额外的步骤,会影响性能。 (21认同)
  • 是的。您可以使用它以简单的方式提供 SSL。我只是认为这些实例仍然具有公共 DNS 值,用户可以出于任何原因直接访问它们。如果发生这种情况,您很可能希望强制它也使用 SSL。 (2认同)