nginx:Node.js 反向代理:多个域上的 SSL 证书 CNI 问题

nginx:Node.js 反向代理:多个域上的 SSL 证书 CNI 问题

我是一名 Web 开发人员,所以请耐心等待。

我的 VPS 上托管了 3 个个人域名,使用 nginx 作为 Web 服务器,将传入的 https 请求代理到 3 个不同的 Node.js 站点。SSL 证书在所有浏览器上均可正常使用,无论是 nginx 还是 Node.jshttps模块。浏览器对此没有异议。

问题是当我运行时openssl s_client -showcerts -connect gabrieleromanato.io:443unable to verify the first certificateopenssl s_client -showcerts -connect gabrieleromanato.name:443得到了同样的错误,因为 CN 部分显示 gabrieleromanato.io 而不是 gabrieleromanato.name。gabrieleromanato.io 已设置为default_server。否则我无法让它工作。

我也尝试过使用proxy_ssl_certificateproxy_ssl_certificate_key如图所示 这里但运行nginx -t返回错误,提示此类指令未知。我使用的是 Ubuntu 14.04.5 和 nginx 1.4.6。

提前致谢。

答案1

您使用 Comodo 证书,我通过 SSL Labs 对它们进行了检查:

https://www.ssllabs.com/ssltest/analyze.html?d=gabrieleromanato.io&latest

https://www.ssllabs.com/ssltest/analyze.html?d=gabrieleromanato.name&latest

问题是您没有按照说明将证书与 ca-bundle 捆绑在一起:

https://support.comodo.com/index.php?/Knowledgebase/Article/View/1091/37/certificate-installation--nginx

现在,您的服务器仅发送一个证书,这是不完整的,因为我们需要完整的链。

除了这个问题之外,您还遇到了一些主要与安全相关的一般问题。您不应再使用 SSL3.0 并禁用弱 DH 密码。从性能方面来看,您应该研究会话恢复/缓存和 OCSP 装订。

相关内容