8

是否可以让 Node.js 使用多个 SSL 证书?我目前正在使用一个证书,但颁发了与其他域匹配的新证书。

由于我的服务器位于负载均衡器后面,因此有两种方法可以访问它,我想匹配它们。有没有办法使用两个证书,而不是创建一个同时匹配的证书?

4

1 回答 1

7

请参阅答案以在单个https服务器上托管多个域

简而言之,您可以使用SNI callback来自https服务器的。

SNI代表Server Name Identification所有现代浏览器都实现了它。

这个怎么运作:

浏览器发送未加密的主机名(如果它支持 SNI)。请求的其余部分由证书加密。然后,HTTPS 模块可以让您决定将使用哪个 SSL 证书来解密连接。

SNI 注释:

  • 如果您需要安全连接,AWS Cloudfront 和其他服务会使用 SNI
  • SNI 需要现代浏览器才能工作。但是鉴于 AWS 使用它,我也对使用它充满信心。
  • 根据您实现它的方式,它可能会减慢请求。
  • 在这前面放一个 nginx 代理可能会更好。
  • 然后,您的连接会像这样传播:Client -> (HTTPS) -> NGINX -> (HTTP) -> Node
  • Nginx 还可以提供静态文件,这可以优化您的网站。

我希望这可以帮助你。我出于文档目的发布此内容。

于 2014-04-12T17:57:24.653 回答