L2TP VPN 失败,出现错误 787

本文提供了修复在与远程访问服务器建立 L2TP VPN 连接失败时发生的错误 787 的帮助。

原始 KB 数: 2855053

现象

与 Windows Server 2012 远程访问服务器的 L2TP VPN 连接失败,错误为 787“L2TP 连接尝试失败,因为安全层无法对远程计算机进行身份验证”。

服务器配置为与 DirectAccess 建立 VPN 连接,并且至少有两个有效证书。 IPHTTPS 的一个证书,一个用于 L2TP。 这两个证书至少具有服务器身份验证 EKU, 例如:• 服务器身份验证(1.3.6.1.5.5.7.3.1) • 客户端身份验证 (1.3.6.1.5.5.7.3.2) (可选) • IP 安全 IKE 中间 (1.3.6.1.5.5.8.2.2)

其中一个证书是通配符证书。 证书也可能来自不同的证书颁发机构。

原因

L2TP 连接的 IPsec SA 建立失败,因为服务器使用来自不同证书颁发机构的通配符证书和/或证书作为客户端上配置的计算机证书。 路由和远程访问 (RRAS) 将选择它可以在计算机证书存储中找到的第一个证书。 对于 L2TP,不同于 SSTP、IPHTTPS 或任何其他手动配置的 IPsec 规则,依赖于 RRAS 内置机制来选择证书。 没有办法影响这一点。

解决方法

下面是两种可能的解决方案:

  1. 对 IPHTTPS 和 L2TP 使用单个证书。

  2. 在 RRAS 服务器上使用手动配置的 L2TP IPsec 策略(客户端不需要该策略),并禁用自动配置的 IPsec 策略。

  • 路径:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\Parameters
  • 值名称:ProhibitIpSec
  • 数据类型:REG_DWORD
  • 值:1

然后手动添加 IPsec 策略 - 这是 L2TP 规则:

规则名称:L2TP 手动规则
说明:L2TP 手动规则
已启用:是
配置文件:专用、公共
类型:动态
模式:传输
InterfaceTypes:任意
Endpoint1:任何
Endpoint2:131.107.0.2/32
端口 1:任何
端口 2:1701
协议:UDP
操作:RequireInRequireOut
Auth1:ComputerCert
Auth1CAName:DC=com、DC=contoso、DC=corp、CN=corp-DC1-CA
Auth1CertMapping:否
Auth1ExcludeCAName: No
Auth1CertType:Root
Auth1HealthCert:否
MainModeSecMethods:DHGroup2-AES128-SHA256、DHGroup2-AES128-SHA1、DHGroup2-3DES-SHA1
MainModeKeyLifetime:480min,0sess
QuickModeSecMethods:ESP:SHA1-None+60min+100000kb,ESP:SHA1-AES128+60min+100000kb,ESP:SHA1-3DES+60min+100000kb,AH:SHA1+60min+100000kb
QuickModePFS:无
规则源:本地设置
ApplyAuthorization:否