【问题标题】:How to download AWS certificate to use it with NodeJS如何下载 AWS 证书以将其与 NodeJS 一起使用
【发布时间】:2016-11-07 18:23:32
【问题描述】:
我正在努力使用 AWS 系统地启用 https。我通过证书管理器请求了一个证书,然后让 ELB 和安全组监听 HTTPS 和端口 443。
但是我还需要 AWS 实例上的服务器来监听 443 端口上的 https 请求,对吧?我的服务器使用 NodeJS 和 Express 运行。据我了解,我需要一个证书 (.crt) 文件和密钥才能正确执行此操作,但我不知道如何从 AWS Certificate Manager 下载它们。
以前有人遇到过这个问题吗?谢谢大家!
【问题讨论】:
标签:
node.js
amazon-web-services
ssl
【解决方案1】:
我还需要 AWS 实例上的服务器来监听 https 请求
在 443 端口上,对吧?
不,您在 ELB 上启用了证书。 SSL 终止发生在 ELB 上,ELB 和 NodeJS 服务器之间的通信通过 VPC 内的 HTTP 进行。 ELB 会发送一个特殊的 HTTP 头 X-Forwarded-Proto 到你的 NodeJS 服务器,你可以检查是否需要知道 ELB 和客户端之间的连接是通过 HTTP 还是 HTTPS。
您无法下载由 Amazon 的 ACM 服务生成的证书。您只能通过负载均衡器或 CloudFront 分配使用它们。
【解决方案2】:
不,您不能下载证书,而是可以配置您的 Apache。用于配置 https 打开 /etc/apache2/sites-available/default-ssl.conf
并将这一行添加到该文件中。
<Location /subDomain>
ProxyPass http://localhost:port
ProxyPassReverse http://localhost:port
</Location>
添加后重启你的 apache。
并打开浏览器查看https://yourdns.com/subDomain
【解决方案3】:
我的应用程序的 ssl 证书(在 AWS ECS 中运行)已于 2 天前过期。因为该证书由 ACM 管理,无法手动下载和安装。我执行以下操作来更新它: