IIS7添加证书提示:ERR_SSL_VERSION_OR_CIPHER_MISMATCH

更新时间:
复制为 MD 格式
重要
  • 本文操作涉及修改 Windows 注册表,属于高风险操作。在执行任何步骤前,请创建服务器快照或其他方式备份数据,以防操作失误导致数据丢失或业务中断。

  • IIS crypto 4.6.2 不支持2008系统,需要低版本的IIS crypto支持。

问题现象

在 Windows Server 2008 R2系统的 IIS 服务器上部署 SSL 证书后,使用 Chrome、Edge、Firefox 等现代浏览器访问 HTTPS 站点时,连接失败,浏览器提示 ERR_SSL_VERSION_OR_CIPHER_MISMATCH 错误。但使用旧版 IE 浏览器访问可能正常。

图片

问题原因

此问题的根本原因是服务端操作系统(Windows Server 2008 R2)默认未启用 TLS 1.1 和 TLS 1.2 协议。现代浏览器出于安全考虑,已强制要求使用 TLS 1.2 或更高版本的协议进行 HTTPS 通信。当浏览器与服务器无法协商出双方都支持的安全协议时,连接便会中断并报错。

解决方案

为解决此问题,需要在服务器上启用 TLS 1.1 和 TLS 1.2 协议。提供以下两种方案,推荐使用方案一。

方案一:使用 IIS Crypto 工具一键配置(推荐)

此方案通过图形化工具快速应用行业最佳安全实践,操作简单直观,不易出错,是大多数场景下的首选方案。

  1. 下载并运行工具 远程登录到您的 Windows 服务器,从 Nartac Software 官方网站下载 IIS Crypto GUI 版本并以管理员身份运行。

    免责声明:IIS Crypto 是第三方工具,请自行评估其安全性。
  2. 应用最佳实践配置 此步骤旨在自动启用强安全协议并禁用已知的不安全协议。 a. 在工具主界面,单击 Best Practices 按钮。 b. 在弹出的确认框中,单击 确定。 此操作会自动勾选 TLS 1.1TLS 1.2 等安全协议,并取消勾选 SSL 2.0、SSL 3.0 等不安全的协议。 图片

  3. 应用配置并重启服务器 a. 确认 TLS 1.1TLS 1.2ServerClient 复选框均已勾选。 b. 单击 Apply 按钮。 c. 在弹出的重启提示框中,单击 确定,服务器将自动 reboot。服务器必须重启才能使配置生效。 图片

方案二:通过注册表脚本启用

如果服务器环境限制使用第三方工具,可采用此方案通过导入注册表脚本的方式手动启用所需协议。

  1. 创建 .reg 注册表文件 此步骤旨在创建一个脚本,用于自动写入启用 TLS 1.1 和 TLS 1.2 所需的注册表项。 a. 在服务器上,新建一个文本文档。 b. 将以下内容完整复制并粘贴到文本文档中。

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1]
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client]
    "DisabledByDefault"=dword:00000000
    "Enabled"=dword:00000001
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server]
    "DisabledByDefault"=dword:00000000
    "Enabled"=dword:00000001
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
    "DisabledByDefault"=dword:00000000
    "Enabled"=dword:00000001
    
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
    "DisabledByDefault"=dword:00000000
    "Enabled"=dword:00000001

    c. 将该文件另存为 enable-tls.reg,确保文件后缀为 .reg

  2. 导入注册表 双击已创建的 enable-tls.reg 文件,在弹出的注册表编辑器确认窗口中单击 确定

  3. 重启服务器 必须重启服务器才能使注册表修改生效。仅重启 Explorer 进程或 IIS 服务无效。

后续建议

验证配置

重启服务器后,可通过以下任一方式验证问题是否已解决:

  • 浏览器测试:清除浏览器缓存或使用无痕模式,再次访问您的 HTTPS 站点,确认可以正常打开。

  • 在线工具测试:访问 SSL Labs' SSL Test,输入您的域名进行检测。在检测结果的 Configuration > Protocols 部分,确认 TLS 1.2 显示为 "Yes"。

回滚操作

如果在应用修改后出现意外问题,请使用操作前创建的快照备份进行回滚。这是最安全、最推荐的回滚方式。完成回滚操作后,同样需要重启服务器。