我有一个Server 2012 RD服务器场,如果使用由服务器pipe理器生成的自签名证书进行configuration,可以正常工作,但不能与来自内部CA的证书配合使用。
使用自签名证书,我们的远程客户端可以连接,但由于不可信证书,当然会得到安全警告。 客户信任我们的根CA,所以我们应该能够通过使用来自我们的内部CA的证书来消除这些。
但是,当我将服务器场configuration为使用来自内部CA(在Server 2008 R2上运行AD CS)的证书时,客户端可以loginRD网站,但无法打开RDP会话。 他们在Windows 7上得到如下错误(没有一个客户端比7更新,所以我没有尝试8):
您的计算机无法连接到远程计算机,因为您要连接的远程计算机上发生错误。 联系您的networkingpipe理员寻求帮助。
要么
您的计算机无法连接到远程计算机,因为远程桌面网关和远程计算机无法交换策略。 这可能是由于以下原因之一而发生的:
- 远程计算机无法与远程桌面网关交换策略。
- 远程计算机的configuration不允许新的连接。
- 远程桌面网关和远程计算机之间的连接已结束。
联系您的networkingpipe理员寻求帮助。
反过来,这些将出现在服务器日志中:
(来源:Schannel;事件ID:36874)[sic]从远程客户端应用程序收到TLS 1.2连接请求,但服务器不支持客户端应用程序支持的任何密码套件。 SSL连接请求失败。
(来源:Schannel;事件ID:36888)生成致命警报并将其发送到远程端点。 这可能会导致连接终止。 TLS协议定义的致命错误代码是40. Windows SChannel错误状态是1205。
我们的根CA和颁发CA都使用SHA512哈希和4096位公钥。 我注意到服务器pipe理器的自签名证书使用SHA256和2048位密钥,所以我想知道在Windows 7中RDP不支持更强的encryption。
(我无法轻易testing,因为我无法使用SHA256使我们的CA获得证书,我猜测是因为CA自己的公钥太大,即使这样做,客户端仍然需要SHA512来validation针对根CA的颁发CA.)
奇怪的是, 除了 “RD连接代理 – 启用单一login” 之外 ,它可以与我们的证书一起工作。 如果我将其中一个设置为自签名证书,而另外三个则使用我们自己的签名证书,那么一切工作基本上都是正常的(除了用户不得不三次input密码之外)。
在这种情况下,客户端上的Internet Explorer即使具有SHA512,也会信任我们的一个证书,而不会出现问题。 这使得看起来相当奇怪的是,更强大的encryption技术会使RDP发展 – 我假定他们都会使用内置于Windows的提供商。
暂时来看,如果“RD连接代理 – 启用单一login”证书正在使用使用SHA512哈希签名的证书,则Windows 7无法访问RD服务器场(至less是Server 2012服务器) 。
除了我提供了2048位密钥和SHA256哈希之外,我以非常类似的方式build立了一个新的根权限和颁发权限。 我从这个新的颁发机构申请了一个证书作为“RD连接代理 – 启用单一login”证书,问题就消失了。
除了encryption强度之外 ,CA设置的唯一真正区别在于,新的颁发机构是在Server 2012中设置的,而不是在Server 2008 R2中设置的,但我认为这没有什么区别。
我仍然欢迎更确定的答案。