因为技术更新迭代的原因, XP的电脑上的IE6/IE7不支持sha256签名算法. 而XP用户在国内尚有约10%的市场占有率, 我们应该怎样才能让我们的网站https业务支持到XP呢?
原理:
在介绍方法之前, 给大家介绍下另外一个概念:
SNI(https://en.wikipedia.org/wiki/Server_Name_Indication): 是用于让单个IP支持多个SSL证书配置的TLS协议扩展. 原理就是浏览器在TCP握手时将域名哈希信息和随机种子一起发送给服务器, 服务器根据域名去配置中寻找不同的SSL配置实现同IP多证书.
我们正好可以利用SNI的此特性, 对支持SNI的现代化浏览器/系统提供SHA256以支持更安全的加密通信, 对不支持SNI的浏览器做SHA1证书以向下兼容. 即可达到SHA256+SHA1证书实现100%的浏览器市场占有率.
成本:
你需要多申请一份sha1算法的证书. 推荐使用WoSign(https://www.wosign.com/)提供的免费SSL证书. 申请时一定选择英文+sha1的.
开始干:
http{
...
server {
server_name xxx; #这儿不能写我网站的域名, 也就是www.it68.com.cn, 原因请自己想象
listen 443 ssl;
ssl on;
ssl_certificate /home/ssl/it68_sha1.crt;
ssl_certificate_key /home/ssl/it68_sha1.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
location / {
...
}
}
server {
server_name *.it68.com.cn;
listen 443 ssl spdy;
ssl on;
ssl_certificate /home/ssl/it68_sha256.crt;
ssl_certificate_key /home/ssl/it68_sha256.pem;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_stapling on;
spdy_headers_comp 9;
location / {
...
}
}
}
运行效果:
IE6/IE7
现代浏览器
后话:
如果您不懂技术又想占有更全的浏览器市场, 欢迎联系我帮您配置, 收费100元/台服务器. 微信: xiaohuilam1992.
原文:
IT乐吧: NGINX简单配置 让SHA256证书支持XP SP1/SP2
https://www.it68.com.cn/2015/08/06/nginx-ssl-sha256-support-xp-ie-and-ie7/
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。