我们如何在Amazon EC2中启用HTTPS?我们的网站正在开发HTTP。
答案 0 :(得分:58)
首先,您需要打开HTTPS端口(443)。为此,您转到https://console.aws.amazon.com/ec2/并单击左侧的Security Groups
链接,然后创建一个同时具有HTTPS的新安全组。
然后,只需更新正在运行的实例的安全组,或使用该组创建新实例。
完成这些步骤后,您的EC2工作就完成了,这都是应用程序问题。
答案 1 :(得分:21)
此答案主要针对在其他网站(如GoDaddy)购买域名并希望将亚马逊免费证书与证书管理器一起使用的人
此答案使用亚马逊经典负载均衡器(付费)see the pricing before using it
第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
,别名为Yes并定位您的域名(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>实例>并复制IPv4公共IP
第6步
在您购买域名的域名注册网站上(在我的案例中为GoDaddy)
将路由更改为http : <Your IPv4 Public IP Number>
,然后选择使用屏蔽转发
将名称服务器(NS)更改为您已复制的4 NS,这可能需要48小时才能生效
答案 2 :(得分:8)
Amazon EC2实例只是虚拟机,因此您可以像在任何服务器上设置SSL一样设置SSL。
您没有提到您所使用的平台,因此很难提供更多信息。
答案 3 :(得分:2)
使用Elastic Load Balacing,它支持Load Balancer的SSL终止,包括从应用程序实例卸载SSL解密并提供SSL证书的集中管理。
答案 4 :(得分:1)
对于想要主要在演示和测试目的上在ec2上使用无忧https的人们来说,也必须有一个答案,他们可以快速实现这一目标的一种方法是:
答案 5 :(得分:1)
一个老问题,但值得一提。 如果您的域的DNS系统已在Amazon Route 53中定义,则可以在EC2之前使用Amazon CloudFront服务,并将免费的Amazon SSL证书附加到该服务。这样,您既可以拥有CDN来更快地传输内容,又可以使用HTTPS协议保护您的域,从而受益匪浅。
答案 6 :(得分:1)
您需要注册一个域(例如在 GoDaddy 上)并在您的 ec2 实例前放置一个负载均衡器 - 正如 DigaoParceiro 在他的回答中所说。
问题在于亚马逊在您的 ec2 实例上生成的域是短暂的。今天域名属于您,明天可能不属于您。
因此,当您尝试在 amazon 生成的域上注册证书时,Let's encrypt 会抛出一个错误:
The ACME server refuses to issue a certificate for this domain name, because it is forbidden by policy
这里有更多详细信息: https://community.letsencrypt.org/t/policy-forbids-issuing-for-name-on-amazon-ec2-domain/12692/4
答案 7 :(得分:0)
我发现的最好的资源之一是使用let加密,您的EC2实例不需要ELB或cloudfront来使用HTTPS,只需按照以下简单说明操作即可: let's encrypt 登录到您的服务器并按照链接中的步骤操作。
如其他人所提到的,通过编辑安全组
打开端口443也很重要您可以通过更改the site name in this link
来查看您的证书或任何其他网站请不要忘记它仅在90天内有效
答案 8 :(得分:0)
您也可以使用Amazon API Gateway。将您的应用程序置于API Gateway之后。请查看此FAQ