远程Windows桌面连接 (Remote Desktop) 配置自定义 SSL 证书
# 这可以通过两种方式实现
# 方法1:使用WMI
RDS侦听器的配置数据存储在WMI中Root\CimV2\TerminalServices
命名空间下的Win32_TSGeneralSetting
类中。
RDS侦听器的证书通过该证书的Thumbprint
值在名为SSLCertificateSHA1Hash
的属性上进行引用。
此指纹值对于每个证书都是唯一的。您可以使用以下步骤找到值:
- 打开证书的属性对话框,然后选择
详细信息
选项卡。 - 向下滚动到
指纹
字段,这是证书属性中的证书指纹的外观:
注意
注要使用的证书,必须在运行上述命令之前导入到计算机帐户的个人
证书存储中。否则将导致无效参数
错误。
- 复制证书里的指纹,管理员运行
cmd
,输入如下代码:
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="<刚才获得的Hash>"
1
- 最后重启
TermService
服务, 测试连接即可。
注意
连接主机时所用的域名必须和证书中的一致。
# 方法2:编辑注册表
使用计算机帐户将服务器身份验证证书安装到“个人”证书存储中。
创建以下包含证书的SHA1哈希值的注册表值,以将该自定义证书配置为支持TLS,而不使用默认的自签名证书。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
值名称:
SSLCertificateSHA1Hash
值类型:
REG_BINARY
(二进制值)值数据:
<certificate thumbprint>
(该值应为证书的指纹,以逗号,
分隔,并且不能有空格)远程桌面主机服务服务在
NETWORK SERVICE
帐户下运行。因此,有必要将RDS使用的密钥文件的ACL(由SSLCertificateSHA1Hash
注册表值中命名的证书引用)设置为包括具有“读取”权限的NETWORK SERVICE
。
点击查看步骤
- 单击开始,单击运行,键入
mmc
,然后单击确定。 - 在文件菜单上,单击添加/删除管理单元。
- 在添加或删除管理单元对话框的可用管理单元列表中,单击证书,然后单击添加。
- 在证书管理单元对话框中,单击计算机帐户,然后单击下一步。
- 在选择计算机对话框中,单击本地计算机:(运行此控制台的计算机) ,然后单击完成。
- 在添加或删除管理单元对话框中,单击确定。
- 在证书管理单元的控制台树中,展开证书(本地计算机),再展开个人,然后导航到您要使用的SSL证书。
- 右键单击证书,选择所有任务,然后选择管理私钥。
- 在权限对话框中,单击添加, 键入
NETWORK SERVICE
,单击确定, 在允许复选框下选择读取,然后单击确定。
- 最后重启
TermService
服务, 测试连接即可。
注意
连接主机时所用的域名必须和证书中的一致。