我有一个 Server 2012 RD 场,如果使用服务器管理器生成的自签名证书进行配置,则可以正常工作,但使用来自我们内部 CA 的证书则不行。
使用自签名证书,我们的远程客户端可以连接,但当然会因为不受信任的证书而收到安全警告。客户端确实信任我们的根 CA,因此我们应该能够通过使用来自我们内部 CA 的证书来消除这些问题。
但是,当我将服务器场配置为使用来自我们内部 CA(在 Server 2008 R2 上运行 AD CS)的证书时,客户端可以登录 RD 网站,但无法打开 RDP 会话。它们在 Windows 7 上收到以下错误(所有客户端都不是 7 以上版本,所以我没有尝试 8):
您的计算机无法连接到远程计算机,因为您要连接的远程计算机发生错误。请联系网络管理员获取帮助。
或者
您的计算机无法连接到远程计算机,因为远程桌面网关和远程计算机无法交换策略。这可能是由于以下原因之一导致的:
- 远程计算机无法与远程桌面网关交换策略。
- 远程计算机的配置不允许建立新的连接。
- 远程桌面网关与远程计算机之间的连接已结束。
请联系您的网络管理员寻求帮助。
这些内容依次出现在服务器日志中:
(来源:Schannel;事件 ID:36874)[原文如此] 从远程客户端应用程序收到 TLS 1.2 连接请求,但客户端应用程序支持的任何密码套件均不受服务器支持。 SSL 连接请求失败。
(来源:Schannel;事件 ID:36888)生成致命警报并发送到远程端点。这可能会导致连接终止。TLS 协议定义的致命错误代码为 40。Windows SChannel 错误状态为 1205。
我们的根 CA 和颁发 CA 都使用 SHA512 哈希和 4096 位公钥。我注意到,来自服务器管理器的自签名证书做工作使用 SHA256 和 2048 位密钥,所以我想知道 Windows 7 中的 RDP 是否不支持更强的加密。
(我无法轻松地测试这一点,因为我无法让我们的 CA 使用 SHA256 颁发证书,我猜是因为 CA 自己的公钥太大了。即使这样做,客户端仍然需要 SHA512 来验证颁发 CA 是否符合根 CA。)
奇怪的是做使用我们的证书除了“RD 连接代理 - 启用单点登录”。如果我将该设置保留为自签名证书,但对其他三个使用我们的证书,则一切基本正常(除了用户必须输入密码三次。)
在这种情况下,客户端上的 Internet Explorer 会毫无问题地信任我们的证书之一,即使它有 SHA512。这使得更强大的加密会绊倒 RDP 看起来相当奇怪 - 我本以为它们都会使用 Windows 内置的提供程序。
答案1
暂时,在我看来答案是否定的,如果“RD 连接代理 - 启用单点登录”证书使用使用 SHA512 哈希签名的证书,则 Windows 7 无法访问 RD 场(至少是 Server 2012 场)。
我设置了新的根权限和颁发机构,设置方式与我们现有的设置方式非常相似,只是我提供了 2048 位密钥和 SHA256 哈希值。我申请了来自这个新颁发机构的证书作为“RD 连接代理 - 启用单点登录”证书,问题就解决了。
CA 设置中唯一真正的区别以外加密强度在于新的发行机构是在 Server 2012 而不是 Server 2008 R2 中设立的,但我认为这不会有任何区别。
我仍然欢迎更明确的答案。