如何修复 Windows Server 2012 上的 RDP?

如何修复 Windows Server 2012 上的 RDP?

以下是 RDP 状态的快照。看起来不错: 在此处输入图片描述

当我从远程机器连接时收到错误:

"This computer can't connect to the remote computer. 
Try connecting again. If the problem continues..."

我已经远程测试了3389端口,它是开放的。我用netstat测试过了。

TCP    0.0.0.0:3389           hostname:0                LISTENING
  • 没有Windows防火墙
  • 没有网络防火墙
  • 全新自签名证书
  • 机器最近重新启动了,在此之前曾工作过
  • 终端服务正在运行
  • 当我检查 SSL 证书时,它显示了所有详细信息,看起来不错,将于 2014 年到期
  • hklm:\System\CurrentControlSet\Control\Terminal Server\fDenyTSConnections 为 0
  • C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys 管理员拥有所有权限

更新:

现在我在管理事件下的事件日志中发现了这一点:

"A fatal error occurred when attempting to access the SSL server credential 
private key. The error code returned from the cryptographic module is 0x8009030D. 
The internal error state is 10001." 

我不确定如何解决上述错误。我也不确定这是我导入的 RD 证书,但我知道当我尝试从我的机​​器进行 RDP 时会发生这种情况。

更新二:

我尝试使用 powershell 生成带有私钥的证书。没有成功。使用过的技术这里这里每次我都在 MMC 证书管理单元中将证书添加到受信任的根和系统用户的个人证书中。

更新三:

很烦人

本论坛表示 Windows 可能在重新启动期间进行了更新,导致在安装远程桌面连接代理角色时出现不可恢复的错误(显然需要生成私钥 pfx 文件以导入 MMC)。该错误与 2013 年 6 月修补程序 KB2821895 有关。这可以解决这个问题吗?http://support.microsoft.com/kb/2871777

因此,我运行了最新的 Windows 更新并尝试安装远程桌面连接代理,以便生成 pfx 文件。没有运气。它说一个或多个父功能未安装——即使 Hyper-V 等已安装。并且它没有说明要添加哪些其他角色...

更新摘要问题!

所以,从理论上来说,安装 RD 连接代理(为了生成私钥)是否可以解决我的加密错误?

答案1

将 SSL 证书(及相关私钥)导入 Windows Server 2012 后进行连接时可能会遇到此错误:

This computer can't connect to the remote computer. Try connecting again. If the problem continues, contact the owner of the remote computer or your network administrator. 

此外,在 Windows 事件日志中,您会看到:

"A fatal error occurred when attempting to access the SSL server credential 
private key. The error code returned from the cryptographic module is 0x8009030D. 
The internal error state is 10001." 

解决方案:

引自 Microsoft KB2001849:

“远程桌面主机服务”服务在 NETWORK SERVICE 帐户下运行。因此,需要设置 RDS 使用的密钥文件的 ACL(由 SSLCertificateSHA1Hash 注册表值中指定的证书引用),以包括具有“读取”权限的 NETWORK SERVICE。要修改权限,请按照以下步骤操作:

打开本地计算机的证书管理单元:

  1. 单击“开始”,单击“运行”,键入 mmc,然后单击“确定”。

  2. 在文件菜单上,单击添加/删除管理单元。

  3. 在“添加或删除管理单元”对话框的“可用管理单元”列表中,单击“证书”,然后单击“添加”。

  4. 在“证书管理单元”对话框中,单击“计算机帐户”,然后单击“下一步”。

  5. 在“选择计算机”对话框中,单击“本地计算机:(运行此控制台的计算机)”,然后单击“完成”。

  6. 在“添加或删除管理单元”对话框中,单击“确定”。

  7. 在“证书”管理单元的控制台树中,展开“证书(本地计算机)”,展开“个人”,然后导航到要使用的 SSL 证书。

  8. 右键单击证书,选择“所有任务”,然后选择“管理私钥”。

  9. 在权限对话框中,单击添加,键入 NETWORK SERVICE,单击确定,选择允许复选框下的读取,然后单击确定。”

来源:https://support.microsoft.com/en-us/kb/2001849

答案2

我禁用了网关服务。我最终运行了 MMC 并删除了 RD 证书。然后我禁用并重新启用了允许远程连接。这生成了一个新的、好的证书,我能够登录机器域了!

答案3

我假设您导入了自签名证书,对吗?如果是这种情况,您很可能将证书标记为不可导出,这就可以解释错误了……看看http://blogs.msdn.com/b/kaushal/archive/2012/10/07/error-hresult-0x80070520-when-adding-ssl-binding-in-iis.aspx了解更多详情。如果我没记错的话,您需要删除证书并重新导入,同时设置“允许导出”标志。

答案4

我遇到了同样的问题,单击“连接”后立即出现错误。

为了解决这个问题,我更改了远程桌面服务服务,因此它运行为本地系统帐户代替网络服务。重新启动服务后一切正常。

编辑:
我刚刚发现这会导致访问被拒绝消息,必须设置为 NETWORK SERVICE。但将其更改为本地系统帐户并返回 NETWORK SERVICE 确实完全解决了我的问题。

相关内容