我为我的 PC 上的 Windows 11 Pro 突然拒绝在 IKEv2 协商中使用正确配置的加密而抓狂。它工作了很长时间,直到它不再工作。这个问题在新安装中仍然存在。这意味着我删除了分区并重新安装了不止一次。过去,这解决了一段时间的问题,但现在不再解决了。这让我相信它可能与我正在下载的 Win11 映像中集成的更新有关,因此无法再撤销。
早在 2022 年 1 月,就有一个安全更新破坏了大量用户的 VPN 功能,后来进行了修补,但我想知道它是否仍然以某种方式影响我,也许是因为我的某种配置方式。据我所知,问题涉及根证书使用的哈希算法。服务器在 Rocky Linux 9 上使用 libreswan,并且是没有密码的证书身份验证。Windows 系统存储中显示的证书哈希算法是 SHA256。然而,在某个时候,Windows 决定不再使用 SHA256。它正在回退到某种涉及 SHA1 的硬编码 IPsec 策略。这就是日志所说的服务器端正在提出的。SHA1 被拒绝为不安全,我真的不想启用它。在执行此操作之前,我会切换到其他 VPN 协议。
我尝试使用 PowerShell 配置系统 IPsec 策略,但这很麻烦,我不知道我是否在浪费时间,因为这些 IPsec 策略可能不适用,而且我认为它们更适用于与 Windows Server 域等的连接。它通常始终遵循 VPN 客户端本身的配置,我认为这属于远程访问连接管理器 (RasMan) 的权限,而不是 IPsec 策略。我只是希望也许我可以用策略强制执行它。我宁愿让正确的配置正常工作。
它通常应该使用的配置如下:
Set-VpnConnectionIPsecConfiguration -ConnectionName "IKEv2 VPN" -AuthenticationTransformConstants GCMAES128 -CipherTransformConstants GCMAES128 -EncryptionMethod AES256 -IntegrityCheckMethod SHA256 -PfsGroup None -DHGroup Group14
但是现在无论配置如何我都会收到此错误
处理签名负载时出错。
我相信如果我允许服务器上使用 SHA1,它就会起作用,但是如果有人比我更精通,可以解释如何使用带有 SHA2 哈希的证书来实现这一点,那就太好了。微软自己已经弃用了 SHA1,因此奇怪的是,当商店中的几乎所有证书都将具有 SHA2 哈希时,Windows 客户端仍然会回退到它。有很多 Windows Server 文档,主要涉及 L2TP 和 Kerberos 连接等,但很少涉及 IKEv2 和 Windows 11 客户端本身。我看到有人建议用ikeext.dll
旧版本替换系统文件可能会有所帮助,但我并不热衷于在我的文件夹中安装来自互联网的随机旧 DLL 文件,system32
以便我可以使用 IKEv2。
我不知道现在该如何处理这个问题,即使完全重新安装操作系统也无法解决。一段时间内阻止它更新可能有效,但我认为我们现在已经超越了那个阶段。它不能直接使用。任何见解都将不胜感激。
答案1
这不是证书中的签名的问题,而是 IKEv2 期间使用的签名的问题。
这RFC 7296 中定义的 RSA 经典签名方案通常仅限于 SHA-1。只有使用RFC 7427更强大的签名方案(例如 RSASSA-PSS 与 SHA-256)可以以可互操作的方式实现。但是,Windows 目前不支持该扩展,因此在此之前,您必须在服务器上允许 IKEv2 使用 SHA-1 签名。