IIS下HTTPS提示ERR_SSL_VERSION_OR_CIPHER_MISMATCH的解决办法
问题描述:
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
隐藏信息:
“不支持的协议客户端和服务器不支持常用的 SSL 协议版本或密码套件。”
之前站点因为一直是http协议有些小想法无法实现,就想着试试升级到https,但看着阿里高昂的https证书价格原本是觉得没搞头了,毕竟一个小破站好几年的花费都没这证书的半年来的贵,免费的原本是嫌麻烦懒得搞 因为据说是三个月得重新续签一次,这两天无意间在看到网上有自动续签的免费证书就又动了心思。
趁着这两天工作摸鱼时间相对比较宽松,稀里糊涂把站点的https认证给安排上了,没想到实际部署下来还挺顺利的,并没有没有碰到特别大的磕磕绊绊,唯独上面这个问题,花了我半天时间去折腾。
问题症状:
部署完成后通过https协议访问站点 IE系浏览器可以正常访问 但是谷歌系的浏览器就报错 此站点的连接不安全 使用不受支持的协议 ,如下图所示
上面这个问题如果你直接百度搜索 “ERR_SSL_VERSION_OR_CIPHER_MISMATCH” 估计大概率是得不到解决办法的 ,基本都是说cdn的问题,用不起cdn的在角落默默流泪
解决办法:
其实问题就出在服务器(这里特指windows服务器)不支持或未开启TLS 1.2,这里先说一下符合这个方法的系统版本
windows7或windows Server 2008R2 及以上版本 之前的貌似不支持TLS 1.2
不支持的直接跳过另寻他法,支持但未开启的 根据下面的开启说明应该就可以了(不可以的话还是另寻他法吧)
Windows服务器的TLS 1.2开启配置说明
先说一下我这边得服务器系统版本是 windows server 2008 r2
打开注册表 找到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
然后以此分别 右键->新建->项->新建 TLS 1.1 , TLS 1.2 如下图:
分别选择TLS 1.1和TLS 1.2 再分别 右键->新建->项->新建Server, Client 参考上图
在新建的Server和Client中都分别新建如下的项(DWORD 32位值),总共4个(属性值都一样)
Enabled [Value = 1]
- 禁用原来的SSL 2.0协议,Client 配置属性都一样 区别在于Enabled属性设置为0 即禁用
Enabled [Value = 0]
- 重启服务器 再次访问便不再提示连接不安全了