〖打印本页〗〖打印选项〗 |
TrustAsia/DigiCert/Let s Encrypt 的免费 SSL 证书,多款网页浏览器都无法正常打开 |
云服务器安装了 Windows Server 2008 R2,IIS 7.5,先后申请了 TrustAsia、DigiCert、Let's Encrypt 的免费 SSL 证书,但是使用多款网页浏览器访问,都无法正常打开,以下是 QQ浏览器、Microsoft Edge(基于 Chromium 内核)、火狐浏览器的浏览截图: NET::ERR_SSL_OBSOLETE_VERSION ![]() ERR_SSL_VERSION_OR_CIPHER_MISMATCH ![]() SSL_ERROR_UNSUPPORTED_VERSION ![]() 以下是转自良家佐言的文章:https://www.badpon.com/2394.html 良家佐言最近在用 Chrome 浏览器查询资料时,访问 Https 站点页面后出现了错误提示,网站根本无法访问;显示的窗口为“此网站无法提供安全连接”,然后某某网站使用了不受支持的协议,下面还有一串错误代码提示“ERR_SSL_VERSION_OR_CIPHER_MISMATCH”,遇到这种情况确实比较郁闷。 客户端和服务器不支持常用的 SSL 协议版本或加密套件。导致此问题的原因通常是服务器要求使用 RC4,而这种加密方式根据当前标准已不够安全。 自从百度 Spider 升级加大对 HTTPS 站点的抓取力度并进行扶持后,HTTPS 也兴起了网络热潮,近年随着 HTTPS 的大量使用,SSL 证书的各种错误已经成为常见的网络错误,而 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 错误则是其中的一种。 面对如此问题,一般的站长是没法解决的,还好因为 HTTPS 普及,很多站长也遇到了“ERR_SSL_VERSION_OR_CIPHER_MISMATCH”类似的错误,并整理出了解决方案,以下是通过网络收集的解决方案,仅供参考: 方案一、启用所有 SSL/TLS 版本 注意:这一步包括启用旧的,不安全的协议。请自行承担风险。 1、打开 Chrome 2、点击右上角看到的三个点 3、转到设置并在搜索字段中搜索“代理” 4、打开代理设置选项,点击 5、转到高级选项卡 6、现在标记所有 SSL 和 TLS 版本 7、点击应用按钮 8、重新启动 Chrome 注:对于旧版本的 TLS,特别是 SSL 有已知的漏洞。最好的做法是联系网站所有者并要求他们更新其 SSL/TLS 实施以仅支持现代协议版本。 ![]() 方案二、在防病毒/防火墙中禁用 Web 保护 该步骤不能提供分步说明,因为它们对于每种防病毒/防火墙都有所不同。您可能会在供应商的网站上找到要查找的内容。正如在第一步所做的那样,必须启用所有 SSL 和 TLS 版本。 方案三、禁用 QUIC 协议 1、在地址栏中搜索 chrome://flags/#enable-quic 2、禁用的实验 QUIC 协议 3、重新启动 Chrome 方案四、清除 SSL 状态 1、打开 Chrome 2、点击右上角看到的三个点 3、点击设置 4、转到设置并在搜索字段中搜索“代理” 5、看到打开代理设置选项,点击 6、转到内容选项卡 7、点击清除 SSL状态 8、重新启动 Chrome 以上关于 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 错误的解决方法是来自于知乎平台,良家佐言作为 SSL 协议的使用者,每年会不定期的对其续费,很可能遇到以上情况,到时候又懒得在搜寻答案了,这里就直接整理在个人博客网站上进行参考哈。 参考了以上内容,并没有解决我的问题,又继续搜索,找到了下面的文章: 服务器不支持安全套件 TLS 1.2 导致,如果服务器低于以下版本需要换操作系统与环境。 Windows Server 2008 R2,IIS 7 以上版本 CentOS 6+ OpenSSL 1.0.1c+ Apache 2.4 + Nginx 1.0.6+ JDK 1.7 tomcat 7.0.56+ 如果是在范围内需调整升级方法,参考以下内容,来自 GWORG:https://www.gworg.com/problems/552.html 1、需要配置符合PFS规范的加密套餐,目前推荐配置:ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4 2、需要在服务端 TLS 协议中启用 TLS 1.2,目前推荐配置:(openssl 1.0.1+ 版本支持 TLS 1.1 和 TLS 1.2 协议)TLSv1 TLSv1.1 TLSv1.2 1、Nginx 证书配置 更新Nginx根目录下 conf/nginx.conf 文件如下(Nginx 依赖 OpenSSL 1.0.1 + 以支持 TLSv 1.2.): server { ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE; } 2、Apache2.x 证书配置 更新 Apache 根目录下 conf/extra/httpd-ssl.conf 文件如下:(Apache依赖OpenSSL 1.0.1 + 以支持 TLSv1.2.) <IfModule mod_ssl.c> <VirtualHost *:443> SSLProtocol all -SSLv2 -SSLv3 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE </VirtualHost> </IfModule> 3、Tomcat 证书配置 更新 %TOMCAT_HOME%\conf\server.xml 文件如下:(先备份再配置,低版本的配置后有启动不了的风险,请升级 tomcat 和 jdk 版本,Tomcat 7.0+JDK 1.7 及以上支持 TLS 1.2 协议) <Connector port="443" protocol="protocol="org.apache.coyote.http11.Http11Protocol"" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" keystoreFile="keystore/www.youdomain.com.jks" keystorePass="证书密码" SSLProtocol="TLS" SSLCipherSuite="ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4" /> 4、IIS 证书配置 Windows 2008 及更早的版本不支持 TLS 1_2 协议 所以无法调整 2008 R2 TLS 1_2 协议默认是关闭的 需要启用此协议达到 ATS 要求以 2008 R2 为例,导入证书后没有对协议及套件做任何的调整。证书导入后检测到套件是支持 ATS 需求的,但协议 TLS 1_2 没有被启用,ATS需要 TLS 1_2 的支持。可使用的 IIS Crypto 工具启用 TLS 1_2 协议,具体操作如下: ![]() Nartac IIS Crypto V3.2 下载页面:https://dangbai.cn/Software.asp?ID=10000305 运行 IIS Crypto 需要服务器已安装 Microsoft .NET Framework V4.0 或以上版本,如果没有安装,先下载安装: Microsoft .NET Framework V4.0/V4.5.2/V4.6.2/V4.7.2/V4.8 下载页面:https://dangbai.cn/Software.asp?ID=10004138 文章作者:啊估整理 |