【问题标题】:Deploy https node express server to host website on AWS EC2部署 https 节点快速服务器以在 AWS EC2 上托管网站
【发布时间】:2017-02-02 11:14:39
【问题描述】:

我对此很陌生。我有一个 node-express https 服务器,目前在我的机器上本地运行。我的简单网站在这个 https 服务器上运行,并发出 xmlhttp 请求以使用一些 API(因为这些 API 只接受来自 https 端点的请求)。目前我正在使用自签名 SSL 证书。

我想将带有 html、js 文件的服务器部署到 EC2 并使其可供公众访问。我的问题是

  1. 我可以使用 AWS Certificate Manager 生成 SSL 证书,以及如何将它与 node-express 服务器一起使用? node-express 可以在 EC2 上使用此 SSL 证书吗?还是我需要将此 SSL 证书与 Elastic Beanstalk 和 ELB 一起使用?
  2. 我做了一些研究,但 ACM 文档说 an email will be sent to the registered domain owner for each domain name in the certificate request. 我没有域,因为我计划让用户使用 IP 地址访问我的站点。在这种情况下我该怎么办?

非常感谢您的帮助!

【问题讨论】:

  • 只使用 IP 不是一个好主意,而且域名很便宜。每年支付 10 美元

标签: node.js amazon-web-services express ssl amazon-ec2


【解决方案1】:
  1. 您不能将 ACM 证书直接用于 NodeJS。您必须在服务器前面放置一个负载均衡器,并在负载均衡器上安装 ACM 证书。

  2. ACM 服务不支持 IP 地址的 SSL 证书,仅支持域名。我建议获得一个域名。

【讨论】:

  • 谢谢!因此,推荐的架构是 a) ACM 证书 + 域名 + 负载均衡器 + node-express http(不是 https 服务器)在 EC2 上或 b) 在 EC2 上使用我自己的 CA 签名 SSL+ node-express https 服务器,使用 IP 地址进行公共访问?
  • 是的,你明白了。如果您想通过不使用负载均衡器来省钱,您可以在 EC2 服务器上使用 Let's Encrypt 获得免费的 SSL 证书。
  • 谢谢! @Mark B还有一件事,为了测试,我还可以c)使用免费的自签名SSL,将其分配给EC2上的负载均衡器+ Elastic Beanstalk + node-express服务器;并让公众使用 EC2 的公共 DNS 地址访问我的站点?我认为我需要禁用 Chrome 的安全性“--disable-web-security --user-data-dir”,因为证书未签名?
  • 如果您可以接受浏览器阻止您的网站并强制所有用户进入您的网站作为浏览器安全规则的例外,您可以使用自签名证书。
猜你喜欢
  • 2020-06-16
  • 2019-04-16
  • 2020-09-20
  • 2014-01-21
  • 2019-05-28
  • 1970-01-01
  • 1970-01-01
  • 2018-07-09
  • 2017-02-14
相关资源
最近更新 更多