远程Windows桌面连接 (Remote Desktop) 配置自定义 SSL 证书

# 这可以通过两种方式实现

# 方法1:使用WMI

RDS侦听器的配置数据存储在WMI中Root\CimV2\TerminalServices命名空间下的Win32_TSGeneralSetting类中。 RDS侦听器的证书通过该证书的Thumbprint值在名为SSLCertificateSHA1Hash的属性上进行引用。

此指纹值对于每个证书都是唯一的。您可以使用以下步骤找到值:

  • 打开证书的属性对话框,然后选择详细信息选项卡。
  • 向下滚动到指纹字段,这是证书属性中的证书指纹的外观: cer.jpg

注意

注要使用的证书,必须在运行上述命令之前导入到计算机帐户的个人证书存储中。否则将导致无效参数错误。

  • 复制证书里的指纹,管理员运行cmd,输入如下代码:
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="<刚才获得的Hash>" 
1
  • 最后重启 TermService 服务, 测试连接即可。

注意

连接主机时所用的域名必须和证书中的一致。

# 方法2:编辑注册表

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

  2. 创建以下包含证书的SHA1哈希值的注册表值,以将该自定义证书配置为支持TLS,而不使用默认的自签名证书。

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

    值名称:SSLCertificateSHA1Hash

    值类型:REG_BINARY (二进制值)

    值数据:<certificate thumbprint> (该值应为证书的指纹,以逗号,分隔,并且不能有空格)

  3. 远程桌面主机服务服务在NETWORK SERVICE帐户下运行。因此,有必要将RDS使用的密钥文件的ACL(由SSLCertificateSHA1Hash注册表值中命名的证书引用)设置为包括具有“读取”权限的NETWORK SERVICE

点击查看步骤
  • 单击开始,单击运行,键入mmc ,然后单击确定
  • 文件菜单上,单击添加/删除管理单元
  • 添加或删除管理单元对话框的可用管理单元列表中,单击证书,然后单击添加
  • 证书管理单元对话框中,单击计算机帐户,然后单击下一步
  • 选择计算机对话框中,单击本地计算机:(运行此控制台的计算机) ,然后单击完成
  • 添加或删除管理单元对话框中,单击确定
  • 证书管理单元的控制台树中,展开证书(本地计算机),再展开个人,然后导航到您要使用的SSL证书。
  • 右键单击证书,选择所有任务,然后选择管理私钥
  • 权限对话框中,单击添加, 键入NETWORK SERVICE,单击确定, 在允许复选框下选择读取,然后单击确定
  1. 最后重启 TermService 服务, 测试连接即可。

注意

连接主机时所用的域名必须和证书中的一致。

# 参考链接