我有一台 2008 DC 和一台 2008 AD CS 服务器以及一台 Windows 7 客户端。我想要的是要求在 RDP 连接到服务器时使用证书。
证书有效,如果我使用 FQDN 连接,系统会显示我已按预期通过证书和 Kerberos 进行身份验证。当我仅使用主机名连接时,我被允许连接并且仅通过 Kerberos 进行身份验证,即使我在要通过 RDP 连接的服务器上设置了需要 TLS 1.0。我完全理解,除非通过 FQDN 访问服务器,否则证书将无效,我想要做的是禁止不使用证书和 Kerberos 的连接。
我以为设置需要 TLS 1.0 就可以了。我遗漏了什么?
答案1
- 开始 -> 管理工具 -> 终端服务 -> 终端服务配置
- 右键单击 RDP-Tcp 并选择属性
- “安全层”默认为“协商”,必须更改为“SSL(TLS 1.0)”
- “加密级别”必须设置为“高”或“符合 FIPS 标准”
参考:http://technet.microsoft.com/en-us/library/cc782610(WS.10).aspx
编辑: Microsoft Technet 文章指出无法通过组策略启用 TLS。但是,我对 Process Monitor 和 Regedit 进行了一些实验,并确定您可以通过设置适当的注册表值来更改这些设置,如下所示。
要将最低加密级别设置为“高”而不是“客户端兼容”:
HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\MinEncryptionLevel REG_DWORD 值:3
要将安全层设置为“SSL(TLS 1.0)”而不是“协商”:
HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp\SecurityLayer
REG_DWORD 值:2
答案2
为了测试你的场景,我做了以下事情:
- 我有 Windows Server 2008 R2 DC
- 已安装的角色 -> Active Directory 证书服务、Active Directory 域服务、
Remote Desktop Services -> Remote Desktop Web Access
Web 服务器 (IIS)。由于这是我唯一的 DC,因此我还安装了 DNS 服务器和 DHCP 服务器 - 安装
Server Authentication Certificate
在我的 IIS 网站上,它还托管 RDWeb 应用程序 - 更改身份验证
RDWeb from Anonymous to Windows Authentication
- 从服务器本身访问网站,URL:https://localhost/rdweb。运行正常
- 从我的客户端(Windows Server 2008 R2)尝试访问 URL:https://fqdn/rdweb 成功。此外,尝试 URL:https://server_name/rdweb.. 成功。
注意:我们仍然不确定它是否使用 TLS 1.0
现在,强制 RDWeb 仅在 TLS 上工作:
- 打开 Regedit
- 去
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
- 创建新的
Binary Value
并命名SSLCertificateSHA1Hash
- 从 SSL 证书复制指纹并将其添加为 SSLCertificateSHA1Hash 的值
例如:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
"SSLCertificateSHA1Hash"="hex:23,91,fc,0e,95,ad,e9,3e,fa,df,3d,54,54,f0,99,dc,cd,70,5c,5c"
现在,访问网站 URL:https://fqdn/rdweb 并使用 fiddler 跟踪它,我们看到所有 HTTPS 连接都带有密码:0x2F。尝试使用 URL:https://server_name 得到相同的结果。
根据https://www.rfc-editor.org/rfc/rfc5289,
CipherSuite TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = {0xC0,0x2F};
另外,检查一下Windows 7 中使用自定义证书的 RDP?(没有 tsconfig.msc 或组策略设置)
对于 WMI,你可以查看文章Win32_TSGeneralSetting 类
答案3
您是否已通过数据包捕获确认客户端未协商 TLS 连接?据我所知,这是唯一可以确定它是否按预期工作的方法。