繁体   English   中英

亚马逊 EC2 中的 HTTPS 设置

[英]HTTPS setup in Amazon EC2

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

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

完成这些步骤后,您的 EC2 工作就完成了,这完全是一个应用程序问题。

此答案针对在另一个站点(作为 GoDaddy)购买域并希望将 Amazon 免费证书与证书管理器一起使用的人

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


步骤 1 - 向证书管理器申请证书

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

在域名上,您将添加myprojectdomainname.com*.myprojectdomainname.com并继续下一步

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

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

之后,检查myprojectdomainname.com*.myprojectdomainname.com的验证状态是否成功,如果成功则可以继续步骤2

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

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

它会是这样的: 在此处输入图片说明

步骤 3 - 创建负载均衡器

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

在里面创建 LB - 你项目的 vpc On Load Balancer Protocol 添加 Http 和 Https 在此处输入图片说明

下一步 > 选择退出安全组

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

下一步 > 从 ACM 选择证书

选择第1步的证书

下一个 >

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

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

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

添加负载均衡器的安全组

第 5 步

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

转到 Route 53 > Routes Zones > 单击域名 > 转到 Records Sets(如果您在此处没有您的域,请创建一个托管区域, Domain Name: myprojectdomainname.com并且Type: Public Hosted Zone

检查您是否有记录类型A (可能没有),创建/编辑名称为空的记录集,类型 A,别名是并定位您复制的 dns

还创建一个新的A类型记录集,名称为*.myprojectdomainname.com ,别名 Yes 和 Target your domain (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 公共 IP

第 6 步

在您购买域名的域名注册网站上(在我的情况下是 GoDaddy)

将路由更改为http : <Your IPv4 Public IP Number>并选择 Forward with masking

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

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

您没有提及您在哪个平台上,因此很难提供更多信息。

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

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

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

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

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

您需要注册一个域(例如在 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

我发现的最好的资源之一是使用 let's encrypt,您的 EC2 实例不需要 ELB 或 cloudfront 即可拥有 HTTPS,只需按照以下简单说明进行操作: 让我们加密登录到您的服务器并按照链接中的步骤操作。

正如其他人所说,通过编辑安全组打开端口 443 也很重要

您可以通过更改此链接中的站点名称来查看您的证书或任何其他网站的证书

请不要忘记它的有效期只有 90 天

您需要为 HTTPS 创建一个安全组并将其分配给您的网络服务器:

  1. 打开Amazon EC2 控制台

  2. 在导航窗格中选择安全组

  3. 选择创建安全组

  4. 对于创建安全组,执行以下操作:

  • 对于Security group name ,键入您正在创建的安全组的名称。

  • (可选)键入您正在创建的安全组的描述

  • 对于VPC ,选择包含您的 web 服务器 Amazon EC2 实例的 VPC。

  • 选择添加规则 对于类型,选择HTTPS

  • 选择创建

  1. 在导航窗格中,选择实例

  2. Select web 服务器实例旁边的复选框。 然后选择ActionsNetworkingChange Security Groups

  3. Select 您为 HTTPS 创建的安全组旁边的复选框。然后选择Assign Security Groups

使用 web 浏览器验证 SSL/TLS 卸载

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM