远程桌面侦听器证书配置

本文介绍在基于 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"
      

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

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

  • 方法 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. 远程桌面主机服务在网络服务帐户下运行。 因此,必须设置 RDS 使用的密钥文件的系统访问控制列表(SACL)以及 读取 权限。

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

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