我们如何在 AmazonEC2中启用 HTTPS? 我们的站点正在处理 HTTP。
使用 弹性负载平衡,它支持在负载均衡器上终止 SSL,包括从应用程序实例卸载 SSL 解密并提供对 SSL 证书的集中管理。
Amazon EC2实例只是虚拟机,因此您可以像在任何服务器上设置 SSL 一样设置它。
你没有提到你在哪个平台上,所以很难提供更多的信息。
首先,您需要打开 HTTPS 端口(443)。为此,转到 https://console.aws.amazon.com/ec2/并单击左侧的 Security Groups链接,然后创建一个新的安全组,其中还可以使用 HTTPS。 然后,只需更新正在运行的实例的安全组,或者使用该组创建一个新实例。
Security Groups
完成这些步骤之后,您的 EC2工作就完成了,这完全是一个应用程序问题。
我找到的最好的资源之一是使用 let’s crypt,EC2实例不需要 ELB 或 Cloudfront 就可以使用 HTTPS,只需遵循以下简单说明: 我们来加密 登录到您的服务器并按照链接中的步骤操作。
正如其他人提到的,通过编辑安全组打开端口443也很重要
您可以通过更改 此链接中的网站名称来查看您的证书或任何其他网站的证书
请不要忘记它只有90天的有效期
这个问题的答案主要针对那些在另一个站点(如 GoDaddy)购买域名并希望在证书管理器中使用 Amazon 免费证书的用户
这个答案使用 Amazon 经典负载均衡器(付费) 在使用它之前先看看价格
步骤1 -使用证书管理器请求证书
转到证书管理器 > 请求证书 > 请求公共证书
在域名上,您将添加 myprojectdomainname.com和 *.myprojectdomainname.com,并继续下一步
myprojectdomainname.com
*.myprojectdomainname.com
选择电子邮件验证、确认和请求
打开您收到的电子邮件(在您购买域名的电子邮件帐户上) ,并批准该请求
在此之后,检查 myprojectdomainname.com和 *.myprojectdomainname.com的验证状态是否成功,如果成功,您可以继续步骤2
步骤2 -为负载均衡器创建安全组
在 EC2中,转到安全组 > 并创建安全组,并添加 http 和 https 入站
比如:
步骤3 -创建负载均衡器
EC2 > 负载均衡器 > 创建负载均衡器 > 经典负载均衡器(第三个选项)
在项目的 vpc 中创建 LB 在负载均衡协议中添加 Http 和 Https
下一步 > 选择退出安全组
选择在上一步中创建的安全组
下一步 > 从 ACM 中选择证书
选择步骤1的证书
下一页 >
在 Health check 中,我使用了 ping 路径 /(一个斜杠代替/index.html)
步骤4 -将您的实例与负载均衡器的安全组关联
EC2 > 实例 > 点击你的项目 > 操作 > 网络 > 更改安全组
添加负载均衡器的安全组
第五步
EC2 > 负载均衡器 > 单击您创建的负载均衡器 > 复制 DNS 名称(A 记录) ,它将类似于 myproject-2021611191.us-east-1.elb.amazonaws.com
myproject-2021611191.us-east-1.elb.amazonaws.com
进入路线53 > 路线区域 > 点击域名 > 进入记录集 (如果您在这里没有域,那么使用 Domain Name: myprojectdomainname.com和 Type: Public Hosted Zone创建一个托管区域)
Domain Name: myprojectdomainname.com
Type: Public Hosted Zone
检查是否有记录类型 A(可能没有) ,创建/编辑名称为空的记录集,键入 A,别名 Yes,并将复制的 dns 作为目标
创建一个新的类型为 A的记录集,命名为 *.myprojectdomainname.com,别名为 Yes,目标是你的域( myprojectdomainname.com )。这样就可以用 www.myprojectdomainname.com 和 subsite.myprojectdomainname.com 访问你的网站。注意: 您需要配置您的反向代理(Nginx/Apache)来完成这项工作。
在 NS 上,复制下一步要使用的4个 Name Servers 值,如下所示:
Ns-362.awsdns-45.com Ns-1558.awsdns-02.co.uk Ns-737.awsdns-28.net Ns-1522.awsdns-62.org
进入 EC2 > 实例 > 复制 IPv4公共 IP
第六步
在域名注册站点上,您已经购买了域名(在我的情况下是 GoDaddy)
将路由更改为 http : <Your IPv4 Public IP Number>并选择“转发屏蔽”
http : <Your IPv4 Public IP Number>
将名称服务器(NS)更改为已复制的4个 NS,这可能需要48小时才能生效
您也可以使用 亚马逊 API 网关。将您的应用程序放在 API 网关后面。请检查此 常见问题
对于那些希望在 ec2上实现主要用于演示和测试的免费 https 的人来说,还必须有一个解决方案,他们可以很快实现这一点的一个方法是:
我在这里的答案描述了 如何使用 EC2在几分钟内实现用于测试目的的 https,而不必创建证书
这是一个老问题,但值得在答案中提及另一个选项。 如果您的域的 DNS 系统已经在 Amazon Route 53中定义,那么您可以在 EC2前使用 Amazon CloudFront 服务,并为其附加一个免费的 Amazon SSL 证书。通过这种方式,您将从拥有 CDN 以提供更快的内容传递和使用 HTTPS 协议保护您的域中获益。
您需要注册一个域(例如在 GoDaddy 上) ,并在 ec2实例前面放置一个负载平衡器——正如 DigaoParceiro 在他的回答中所说的。
问题是 Amazon 在 ec2实例上生成的域是短暂的。今天这个领域是属于你的,明天可能就不是了。
由于这个原因,当您尝试在 Amazon 生成的域上注册证书时,让我们加密抛出一个错误,其中指出:
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
打开 亚马逊 EC2控制台。
在导航窗格中选择 保安组。
选择 创建安全组。
对于创建安全组,请执行以下操作:
对于 安全组名称,键入正在创建的安全组的名称。
(可选)键入正在创建的安全组的 描述。
对于 VPC,选择包含 Web 服务器 AmazonEC2实例的 VPC。
选择 添加规则。对于 类型,选择 HTTPS。
选择 创造。
在导航窗格中,选择 例子。
选中 Web 服务器实例旁边的复选框,然后选择 行动、 交际和 更改安全组。
选中为 HTTPS 创建的安全组旁边的复选框,然后选择 分配安全组。