安装“NSA”补丁后,远程桌面尝试连接时出现“内部错误”

安装“NSA”补丁后,远程桌面尝试连接时出现“内部错误”

我刚刚安装了最新的 Windows 更新(NSA 漏洞补丁星期二),现在无法连接到远程桌面。

  • 该服务器是远程托管的。我没有物理访问权限。Server 2012 R1。
  • 幸运的是,重启后所有网站都能正常运行。
  • 我还没有尝试第二次重启,因为我有点害怕。
  • 当我尝试连接时立即地收到此消息:
  • 远程桌面连接:发生内部错误”

在此处输入图片描述

  • 尝试过多个客户端。全部失败 - 包括一个 iOS 应用程序,它还给出了 0x00000904 错误。
  • 如果我运行telnet servername 3389,它就会启动一个连接,所以我知道端口是打开的。
  • 我可以从我的 Win 10(未修补)机器顺利连接到其他服务器。
  • 我也无法从我的第二台笔记本电脑(Win 10 Creators 版本)进行连接。
  • 在事件查看器中找不到任何有用的内容。
  • 我甚至尝试过 wireshark,但没有显示任何有用的信息。
  • 我能诊断出的最佳情况是能够上传 ASPX 页面并运行它。

据我所知,最近的“NSA 版”补丁汇总有一些 RDP 修复 - 但我发现本周没有其他人突然遇到问题。

我想在联系托管公司之前了解问题是什么,这就是我在这里发帖的原因。


更新:

虽然我仍然无法访问物理服务器,但我记得我在服务器上托管了一个 Windows 7 VM。我能够通过连接到 10.0.0.1 本地 IP 进入该服务器并打开服务器证书管理单元。

这表明 RDP 证书确实已过期 - 尽管我在连接时没有收到任何提示该证书的错误。我确实每天都在连接,而且由于它在 2 个月前就过期了,我猜是某种安全更新删除了远程桌面存储中的其他证书,并且它没有自行更新。

因此现在尝试找出一种方法来在这里安装不同的证书。

更新 2

最后在“管理事件”下的事件日志中找到了这一点(通过虚拟机远程连接):

“终端服务器无法创建新的自签名证书以用于 SSL 连接上的终端服务器身份验证。相关状态代码为对象已存在。”

这似乎很有帮助,尽管错误略有不同。不过今晚无法重启,所以明天必须再检查一次。

https://blogs.technet.microsoft.com/the_9z_by_chris_davis/2014/02/20/event-id-1057-the-terminal-server-has-failed-to-create-a-new-self-signed-certificate/

在此处输入图片描述

答案1

解决方案基本上就在这里

https://blogs.technet.microsoft.com/askpfeplat/2017/02/01/removing-self-signed-rdp-certificates/

这也有帮助:

https://social.technet.microsoft.com/Forums/ie/en-US/a9c734c1-4e68-4f45-be46-8cae44c95257/unable-to-remote-desktop-to-windows-server-2012-due-to-failed-to-create-self-signed-certificate?forum=winserverTS

假设您已经验证“证书”>“远程桌面”>“证书”下列出的证书无效...

在此处输入图片描述

注意:此截图是我截取的我解决了所有问题 - 所以这个到期日期是它自己新创建的证书。

然后您基本上需要重命名或删除此文件 - 然后它会重新创建它:

“C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\f686aace6942fb7f7ceb231212eef4a4_a54b3870-f13c-44bb-98c7-d0511f3e1757”

这是一个以 开头的众所周知的文件名f686aace。然后重新启动Remote Desktop Configuration服务,它应该会重新创建它。(注意:实际上可能不需要重新启动服务 - 只需等待一分钟,看看它是否以相同的文件名重新创建)。

可能需要处理一些权限问题,您可能需要取得文件的所有权,然后再应用权限。注意:所有权并不意味着权限。您必须在取得所有权后添加权限。


正如我所说的,我没有服务器的物理访问权限 - 如果您有,那么上述内容就足够了。

我很幸运能够通过同一本地网络上的另一台机器远程连接并更改注册表。

我想禁用身份验证,以便能够远程连接并获得访问权限。执行此操作的注册表项是HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

设置现有键SecurityLayerUserAuthentication0

创建一个 RDP 文件(打开 mstsc,输入服务器名称后单击“保存”),然后在记事本中的enablecredsspsupport:i:0某处添加该行。这将禁用安全预期。

当您运行 RDP 文件时,它应该允许您以不安全的模式连接并访问您的服务器。

一旦连接,请立即将这两个注册表项改回来,然后继续删除该f686...文件......

答案2

这些都对我不起作用。我右键单击 Windows 符号 > 应用和功能 > 在搜索框中输入远程桌面 > 选择远程桌面 > 高级选项

向下滚动到重置,然后重置应用程序

此后工作正常。

答案3

大家好,在我的环境中,这是由于生成新的自签名证书时导致的,TLS 1.0 在注册表中被禁用或在注册表中不存在,并且新的自签名证书不在受信任的根证书颁发机构存储中。

您可以在编辑注册表之前通过这两种方式证明这一点。下载 IIS Crypto 并查看在协议、密码、哈希和密钥交换中启用和禁用的内容。

有时尽管 IIS Crypto 未在注册表中启用,但它会显示 TLS 已启用,仅供参考。

您的下一个选项是在本地组策略中打开 FIPS,这将强制打开并使用 TLS 1.0、1.1 和 1.2。打开 FIPS,然后尝试通过 RDP 进入您的计算机,即使在注册表中禁用 TLS,这次它也会起作用。您不想永久使用 FIPS,但这只是为了进行故障排除,因此请在服务器上禁用它并转到注册表。

前往HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL协议下添加三个新键,标题为它们TLS 1.0、,TLS 1.1然后TLS 1.2在每个 TLS 条目下创建两个子键,标题为它们ClientServer

ClientServer键内创建两个 32 位 DWORD 条目,一个标题DisabledByDefault设置Value为 0,Enabled另一个值设置为 1。

一旦您完成此操作并且您的自签名证书未过期并且在正确的存储中,您将能够再次通过 RDP 进入您的服务器。

相关内容