远程桌面侦听器证书配置
本文介绍在基于 Windows Server 2012 或基于 Windows Server 2012 的服务器上配置侦听器证书的方法,这些证书不属于远程桌面服务(RDS)部署的一部分。
原始 KB 数: 3042780
关于远程桌面服务器侦听器可用性
侦听器组件在远程桌面服务器上运行,负责侦听和接受新的远程桌面协议(RDP)客户端连接。 这允许用户在远程桌面服务器上建立新的远程会话。 远程桌面服务器上存在每个远程桌面服务连接的侦听器。 可以使用远程桌面服务配置工具创建和配置连接。
配置侦听器证书的方法
在 Windows Server 2003、Windows Server 2008 或 Windows Server 2008 R2 中,远程桌面配置管理器 MMC 管理单元允许你直接访问 RDP 侦听器。 在管理单元中,可以将证书绑定到侦听器,并反过来对 RDP 会话强制实施 SSL 安全性。
在 Windows Server 2012 或 Windows Server 2012 R2 中,此 MMC 管理单元不存在。 因此,系统不提供对 RDP 侦听器的直接访问。 若要在 Windows Server 2012 或 Windows Server 2012 R2 中配置侦听器证书,请使用以下方法。
方法 1:使用 Windows Management Instrumentation (WMI) 脚本
RDS 侦听器的配置数据存储在
Win32_TSGeneralSetting
命名空间下的 WMI 中的类中Root\CimV2\TerminalServices
。RDS 侦听器的证书通过 SSLCertificateSHA1Hash 属性上的该证书的指纹值进行引用。 指纹值对于每个证书是唯一的。
注意
运行 wmic 命令之前,必须将要使用的证书导入到计算机帐户的个人证书存储中。 如果未导入证书,将收到“ 参数 无效”错误。
若要使用 WMI 配置证书,请执行以下步骤:
打开证书的属性对话框,然后选择“ 详细信息 ”选项卡。
向下滚动到 指纹 字段,并将分隔空间的十六进制字符串复制到记事本等内容中。
以下屏幕截图是证书属性中的证书指纹示例:
如果将字符串复制到记事本,它应类似于以下屏幕截图:
删除字符串中的空格后,它仍包含仅在命令提示符处可见的不可见 ASCII 字符。 以下屏幕截图是一个示例:
在运行命令导入证书之前,请确保删除此 ASCII 字符。
从字符串中删除所有空格。 可能还会复制一个不可见的 ACSII 字符。 这在记事本中不可见。 验证的唯一方法是直接复制到命令提示符窗口中。
在命令提示符下,将以下 wmic 命令与在步骤 3 中获取的指纹值一起运行:
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="THUMBPRINT"
以下屏幕截图是一个成功的示例:
方法 2:使用注册表编辑器
重要
请认真遵循本部分所述的步骤。 如果注册表修改不正确,可能会发生严重问题。 在修改之前, 如何在 Windows 中备份和还原注册表,以防出现问题。
若要使用注册表编辑器配置证书,请执行以下步骤:
使用计算机帐户将服务器身份验证证书安装到个人证书存储。
创建以下注册表值,其中包含证书的 SHA1 哈希,以便可以将此自定义证书配置为支持 TLS,而不是使用默认自签名证书。
- 注册表路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
- 值名称: SSLCertificateSHA1Hash
- 值类型:REG_BINARY
- 值数据: 证书指纹
该值应为证书的指纹,并用逗号(,)分隔,没有任何空格。 例如,如果要导出该注册表项, SSLCertificateSHA1Hash 值将如下所示:
SSLCertificateSHA1Hash=hex:42,49,e1,6e,0a,f0,a0,2e,63,c4,5c,93,fd,52,ad,09,27,82,1b,01
- 注册表路径:
远程桌面主机服务在网络服务帐户下运行。 因此,必须设置 RDS 使用的密钥文件的系统访问控制列表(SACL)以及 读取 权限。
若要更改权限,请对本地计算机的“证书”管理单元执行以下步骤:
- 单击“开始”,单击“运行”,键入 mmc,然后单击“确定”。
- 在“文件” 菜单上,单击“添加/删除管理单元” 。
- 在“添加或删除管理单元”对话框中的“可用管理单元”列表中,单击“证书”,然后单击“添加”。
- 在 “证书 管理单元”对话框中,单击“ 计算机帐户”,然后单击“ 下一步”。
- 在 “选择计算机 ”对话框中,单击“ 本地计算机:”(运行此控制台的计算机),然后单击“ 完成”。
- 在“添加/删除管理单元” 对话框中,单击“确定” 。
- 在 “证书 ”管理单元的控制台树上,展开 “证书”(本地计算机),展开 “个人”,然后选择要使用的 SSL 证书。
- 右键单击证书,选择“所有任务”,然后选择“管理私钥”。
- 在“权限”对话框中,单击“添加”,键入“网络服务”,单击“确定”,在“允许”复选框下选择“读取”,然后单击“确定”。