远程桌面侦听器证书配置
本文介绍在基于 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
- 注册表路径:
远程桌面主机服务在网络服务帐户下运行。 因此,必须设置系统访问控制列表 (SACL) 由 RDS 用来包含网络服务以及 读取 权限的密钥文件。
若要更改权限,请在本地计算机的“证书”管理单元上执行以下步骤:
- 单击“开始”,再单击“运行”,键入 mmc,然后单击“确定”。
- 在“文件”菜单上,单击“添加/删除管理单元”。
- 在 “添加或删除管理单元 ”对话框中的“ 可用管理单元 ”列表中,单击“ 证书”,然后单击“ 添加”。
- 在 “证书 ”管理单元对话框中,单击“ 计算机帐户”,然后单击“ 下一步”。
- 在 “选择计算机 ”对话框中,单击“ 本地计算机: (此控制台在) 上运行的计算机 ,然后单击” 完成”。
- 在 “添加或删除管理单元 ”对话框中,单击“ 确定”。
- 在 “证书” 管理单元的控制台树上,展开“ 证书 (本地计算机) ”,展开“ 个人”,然后选择要使用的 SSL 证书。
- 右键单击证书,选择“ 所有任务”,然后选择“ 管理私钥”。
- 在“权限”对话框中,单击“添加”,键入“网络服务”,单击“确定”,在“允许”复选框下选择“读取”,然后单击“确定”。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈