我们正在将 SHA-1 签名证书转换为 SHA-256 签名证书,主要原因是Google 逐步淘汰 SHA-1。其中许多服务器都是基于 Windows 的 IIS 服务器,因此我们还对它们进行配置,以使用新证书进行 RDP 的 TLS 连接。
此过程还包括交换中间证书,因为服务器当前正在使用它们(SHA-1),并且它们需要使用新的证书(SHA-256)。
问题是我不知道如何让服务器停止使用 SHA-1 中间证书。使用 RDP over TLS 时,它们会继续发送该证书而不是新的 SHA-256 中间证书,这会导致官方 Mac RDP 客户端崩溃:
但错误消息(不受信任的根证书)显然是不正确的。
但关键点在于,这种情况仅在发送 SHA-1 中间文件时才会发生。使用 OpenSSL,我可以看到正在发送 SHA-1 中间文件。
当它发送 SHA-256 中间件时,错误消息不会发生。我该如何配置我的 Windows 服务器来发送它并且永不发送 SHA-1 呢?或者我误解了某些事情并且偏离了主题?
我尝试过的事情:
- 使用 SHA-1 中间证书上的“编辑属性”按钮禁用它的所有用途。
- 从所有证书存储中删除 SHA-1 中间证书。
- 这些事情完成后重新启动远程桌面服务。
- 完成这些事情后重新启动。
笔记:
- Windows 客户端不受影响。它们连接正常,并显示连接安全。
- 我们正在使用 StartCom 证书。所有受影响的服务器之前都安装了 SHA-1 证书和 StartCom SHA-1 中间证书,但现在都安装了 SHA-256 证书。
- 仅安装了 SHA-256 的新 Windows 服务器就可以正常工作。
答案1
将评论转换为答案:
您能否尝试通过将 SHA-1 证书移至机器的“不受信任”证书存储来手动将其列入 IIS 上的黑名单?
事后想想:我很好奇这是否会起作用。现在事实证明它确实有效。(但这似乎有点草率和粗略。算了。)