我将我的SSL网站和证书从Apache迁移到Nginx,从那一刻起,所有的Windows XP客户端都不能识别SSL证书(这是Trustico颁发的通配符证书)。
以前的Apache服务器上的旧configuration是这样的:
SSLEngine on SSLCertificateFile /etc/apache2/ssl/*_mysite.com.crt SSLCertificateKeyFile /etc/apache2/ssl/*_mysite.com.key SSLCertificateChainFile /etc/apache2/ssl/*_mysite.com.ca-bundle
而Nginx服务器上的新configuration是这样的:
ssl on; ssl_certificate /etc/nginx/ssl/*_mysite.com.crt ssl_certificate_key /etc/nginx/ssl/*_mysite.com.key; ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1; ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP; ssl_prefer_server_ciphers on;
Nginx不支持SSLCertificateChainFile参数,所以我读了我需要在* _mysite.com.crt下添加* _mysite.com.ca-bundle文件。
此后,除Windows XP之外的其他操作系统运行良好,但Windows XP仍然识别出错误的证书(它返回“证书错误”消息)。
我无法解决这个问题,你能帮我吗?
除Windows XP以外的其他操作系统都运行良好,但Windows XP仍然识别出错误的证书。
在这种情况下,您的设置需要服务器名称指示(SNI),并在某处为不能执行SNI的客户端configuration了另一个证书,例如XP上的MSIE8。
问题是Windows XP上的IE8和更旧版本不支持SNI。 如果您需要在Win XP / IE 8上支持用户,每个站点都需要自己的专用IP地址和相应的SSL证书。