如果使用 IE8 的用户直接访问 www.xyz.com,SSL 证书没有问题。直接访问 www.zyx.com 的用户证书没有问题。如果用户从一个网站开始,然后转到另一个网站,他们会得到无效的证书,因为 zyx 上使用了 xyz,这是不应该发生的。
阅读论坛 NGINX 已启用 SNI,并且我有正确版本的 OpenSSL 能够处理多个证书。
IE8 似乎是问题所在,但这些是面向客户的网站。有没有办法让 NGINX 为遇到此问题的客户恢复正常运行?
答案1
SNI 需要服务器和客户端(Web 浏览器 + 操作系统)的支持。对于不支持 SNI 的操作系统/Web 浏览器(例如 Windows XP 或 IE6),浏览器将忽略 SNI SSL 标头,并仍然请求服务器的默认 SSL 证书,而该证书很可能与您访问的实际域不匹配。
为了能够支持几乎所有流行的平台,我建议为需要提供 SSL 支持的每一个域名获取不同的 IP,并配置 nginx 以监听每个域名的单独地址。