记录一次升级https过程中走过的坑
curl: (51) SSL: certificate subject name ‘mp3.xxx.com‘ does not match target host name ‘static.xxx.com‘
升级 http://mp3.xxx.com
http://static.xxx.com
为
https://mp3.xxx.com
https://static.xxx.com
因在一台服务器上配置的两个域名都解析到本机,配置完后,发现页面的静态文件都无法加载
于是F12看了下,发现加载的证书和浏览器地址栏的域名竟然不一致。请求的static这个域名,确加
载的mp3的证书。用curl也报错,不能正常返回200,纳闷了!
[root@web ~]# curl -I https://static.xxx.com/static/lib/less.min.js
curl: (51) SSL: certificate subject name ‘mp3.xxx.com‘ does not match target host name ‘static.xxx.com‘
后来求助伟大的谷歌,发现原来是nginx的TLS SNI support功能没开,SNI (服务器名字指示)不开启的话,一个IP只支持一个SSL证书,不支持多个证书,而服务器是yum安装的nginx,默认TLS SNI support是关闭的,重新编译nginx并指定openssl库后,TLS SNI support 开启了,访问就正常了
另外的一个问题是这种情况下用curl测试时,状态码不能正常返回200,开启LS SNI support后也依然报错,不能正常返回200。看curl官网有人反馈,这好像是curl版本7.15.5的BUG,用比7.15.5新的curl 7.19.7版本测试就正常。
本文出自 “czwanga” 博客,请务必保留此出处http://czwanga.blog.51cto.com/4840967/1925013
原文地址:http://czwanga.blog.51cto.com/4840967/1925013