Amazon EC2中的HTTPS设置

时间:2011-03-15 09:42:47

标签: amazon-ec2 https

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

9 个答案:

答案 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入站

它将是这样的: enter image description here

第3步 - 创建负载均衡器

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

在里面创建LB - 项目的vpc 在Load Balancer Protocol上添加Http和Https enter image description here

下一个>选择退出安全组

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

下一个>从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.comType: 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的人们来说,也必须有一个答案,他们可以快速实现这一目标的一种方法是:

在这里,我的回答描述了How you can achieve https for testing purposes in minutes with EC2 without the hassle of creating certificates

答案 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