几天前,我在我的域中发现了一个奇怪的问题:
在 RDP 连接期间,我看到有关证书不受信任的警告(并且我看到自签名证书,不是由域 CA 颁发的)
我无法再通过 RDP 连接到启用了 NLA(网络层身份验证)的服务器。
这个问题无处不在 - 我在不同的工作站和不同的服务器上都遇到过它,包括 Windows Server 2012R2|2008R2、Windows 7 和 Windows 10。
关于 CA 基础设施:一个离线根 CA 和一个域级颁发 CA。pkiview.msc 表示一切正常:根 CA 和颁发者都具有有效的证书、CDP、IAI 和 DeltaCRL(仅限颁发者)。我已更新根 CRL 并在 AD 中重新发布它们,因为我认为情况可能如此,但没有成功。
具有客户端|服务器|RDP 身份验证的自定义证书模板仍然存在,并且我可以确认相关服务器在 MMC 证书小程序中的个人文件夹中具有此类证书(并且可以从那里请求新的证书),尽管 RDP 文件夹中只存在自签名证书。
使用 MMC 证书小程序,我还看到根证书和颁发者证书都是受信任的。
所以……我真的不知道该怎么做,如何修复它,以及它为什么会坏掉。任何帮助我都感激不尽。
PS。另外,前段时间我修改了默认域 GPO,强制使用私有网络 IP 范围。这可能是原因吗?无论如何,我将它们恢复为默认设置,但仍然没有成功。
更新 一些图片可以稍微澄清一下:
1)安全警告
2)...因为服务器提供了自签名证书
3) 但是我们可以在相关服务器的个人存储中看到正确的 CA 证书
4) 在远程桌面证书存储中,我只能看到自签名证书。我也在那里复制了正确的证书,但没有效果。如果我从那里删除自签名证书,我将根本无法通过 RDP 连接到服务器。
5)您还可以看到我的本地 CA 受到服务器信任:
6) 这是我尝试通过 RDP 连接到启用了 NLA 的服务器时收到的错误。因此,客户端出于某种原因无法或不愿意使用 CredSSP。它在一周前是可以正常工作的,所以我认为这与证书问题有关。
7) 最后是颁发 CA 的一些屏幕。看起来一切正常。
答案1
有时,RDS 会对静态证书(未通过 GPO 分配)放宽证书绑定。您可能需要执行以下命令:
$path = (Get-WmiObject "Win32_TSGeneralSetting" -ComputerName "<RDS Server Name>" -Namespace root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'").__path
Set-WmiInstance -Path $path -argument @{SSLCertificateSHA1Hash="<Thumbprint>"}
<RDS Server Name>
用实际的服务器名称(如果远程执行)和<Thumbprint>
实际证书的指纹替换。指纹必须以十六进制指定,且无空格,例如F02B346CDC02165543936A37B50F2ED9D5285F62
。
对于内部机器(属于 AD 林的一部分并通过内部名称访问),建议使用 GPO 分配的 RDS 证书:配置远程桌面证书
答案2
好的,我解决了。Michal Sokolowski 指出 CredSSP 2018 年 5 月更新是正确的。显然我看到的一切都是因为这个。当我在客户端工作站上修改本地 GPO 时,一切都很顺利。
因此,解决方案是:
1)在客户端上运行 gpedit.msc
2)打开计算机配置->管理模板->系统->凭据委派
3)启用加密 Oracle 修复并将其设置为易受攻击
4)运行 gpupdate /force
一切恢复正常。
答案3
将所有补丁应用到服务器和客户端,这将修复您的 credssp 错误。