将 AWS SSL 证书安装到没有负载均衡器的 EC2 实例

将 AWS SSL 证书安装到没有负载均衡器的 EC2 实例

我是 AWS 新手,在将 ACM SSL 证书安装到 EC2 实例时遇到一些困惑。

是否可以在不使用 ELB 或 Cloudfront 的情况下安装证书。我不需要负载均衡器,因为应用程序在单个实例上运行。

我还有其他选择来安装 AWS SSL 证书吗?如果负载平衡器是唯一的选择,是否只适用于单个实例?

提前感谢您的回答

答案1

通过 Amazon 证书管理器 (ACM) 获得的证书只能安装在 Elastic Load Balancer、CloudFront、API Gateway 和其他 AWS 服务上。它们无法导出或直接安装到 EC2 实例上。

如果您想直接在 EC2 实例上安装 SSL 证书,则不能使用 ACM。相反,您需要通过第三方(例如 Lets Encrypt、GoDaddy 等)获取 SSL 证书,并按照 Web 服务器的说明进行安装。

将 ELB 放在单个 EC2 实例前面是 100% 有效的,尤其是为了让 ELB 管理 SSL 证书。

在 EC2 实例前使用 ELB 的其他好处:

  • 您将获得 AWS Shield 的保护(提供一定程度的 DDoS 保护),
  • 将来如有需要,您可以更轻松地替换 EC2 实例或扩展。
  • ELB 将处理 HTTPS 连接的加密/解密(释放 EC2 实例的 CPU 来执行其他工作)

答案2

您必须为实例上运行的任何服务器软件安装证书。例如 apache、nginx、tomcat、nodejs。它们各自都有自己的证书使用机制。请阅读其文档。

此外,如果你已经为实例公共 IP 设置了 DNS 解析(确保你使用的是弹性 IP),那么你可以使用 let's encrypt 的 certbot 来自动执行此过程。检查https://certbot.eff.org/。它开箱即用,支持多种环境。以及免费的 SSL 证书。

答案3

您可以使用类似的服务nip.io其作用类似于动态 DNS,并将所有请求从<IP>.nip.io转发到<IP>

然后,您可以使用 Caddy 之类的服务来设置 TLS 证书。

如果你的应用程序在端口 3000 上运行,那么你的配置将如下所示

<EC2 Public IP>.nip.io {
    reverse_proxy localhost:3000
}

运行 Caddy 后,你将能够使用以下链接访问该网站https://<IP>.nip.io

我写了一篇关于这个的文章,在没有负载均衡器的 AWS EC2 上进行 HTTPS

相关内容