远程桌面侦听器证书配置

本文介绍在基于 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 配置证书,请执行以下步骤:

    1. 打开证书的属性对话框,然后选择“ 详细信息 ”选项卡。

    2. 向下滚动到 “指纹” 字段,并将空格分隔的十六进制字符串复制到记事本等内容中。

      以下屏幕截图是证书属性中的 证书 指纹示例:

      证书属性中的证书指纹示例。

      如果将字符串复制到记事本,应类似于以下屏幕截图:

      将指纹字符串复制并粘贴到记事本中。

      删除字符串中的空格后,它仍然包含仅在命令提示符处可见的不可见 ASCII 字符。 以下屏幕截图是一个示例:

      仅在命令提示符下显示的不可见 ASCII 字符。

      在运行 命令导入证书之前,请确保删除此 ASCII 字符。

    3. 删除字符串中的所有空格。 可能还会复制一个不可见的 ACSII 字符。 这在记事本中不可见。 验证的唯一方法是直接复制到命令提示符窗口中。

    4. 在命令提示符下,将以下 wmic 命令与在步骤 3 中获取的指纹值一起运行:

      wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="THUMBPRINT"
      

      以下屏幕截图是一个成功示例:

      在步骤 3 中获取的指纹值一起运行 wmic 命令的成功示例。

  • 方法 2:使用注册表编辑器

    重要

    请仔细遵循本部分中的步骤进行操作。 对注册表修改不当可能会导致严重问题。 在修改它之前, 如何在 Windows 中备份和还原注册表 ,以防出现问题。

    若要使用注册表编辑器配置证书,请执行以下步骤:

    1. 使用计算机帐户将服务器身份验证证书安装到个人证书存储。

    2. 创建包含证书 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

    3. 远程桌面主机服务在网络服务帐户下运行。 因此,必须设置系统访问控制列表 (SACL) 由 RDS 用来包含网络服务以及 读取 权限的密钥文件。

      若要更改权限,请在本地计算机的“证书”管理单元上执行以下步骤:

      1. 单击“开始”,再单击“运行”,键入 mmc,然后单击“确定”
      2. “文件”菜单上,单击“添加/删除管理单元”
      3. “添加或删除管理单元 ”对话框中的“ 可用管理单元 ”列表中,单击“ 证书”,然后单击“ 添加”。
      4. “证书 ”管理单元对话框中,单击“ 计算机帐户”,然后单击“ 下一步”。
      5. “选择计算机 ”对话框中,单击“ 本地计算机: (此控制台在) 上运行的计算机 ,然后单击” 完成”。
      6. “添加或删除管理单元 ”对话框中,单击“ 确定”。
      7. “证书” 管理单元的控制台树上,展开“ 证书 (本地计算机) ”,展开“ 个人”,然后选择要使用的 SSL 证书。
      8. 右键单击证书,选择“ 所有任务”,然后选择“ 管理私钥”。
      9. 在“权限”对话框中,单击“添加”,键入“网络服务”,单击“确定”,在“允许”复选框下选择“读取”,然后单击“确定”。