引子
在第一次连接远程桌面时通常会提示“无法验证此远程计算机的身份。是否仍要连接?”,勾选不再询问我是否连接到此计算机后在下次连接时就不会弹出这个警告。虽然这样做受到攻击的概率非常低,但是为RDP安装一个CA颁发的SSL证书能提升一点点RDP的安全性。
参考:远程桌面侦听器证书配置。
安装证书(pfx格式)
部分服务提供商会提供pfx格式的证书下载(服务器类型Tomcat或IIS),通常包含pfx证书和一个密码,若证书不为pfx格式,可以使用openssl进行转换,并需要设置一个密码。
openssl pkcs12 -export -out rdp.pfx -inkey xxx.key -in xxx.crt
打开pfx证书即可开始安装,储存位置选择“本地计算机”,密码输入下载时提供的密码(或使用openssl时使用手动设置的密码),一直下一步即可。
查看证书SHA1指纹
(方法一,适用于crt格式的证书)直接打开这个证书,在“详细信息”中找到“指纹”,将“指纹”复制。
(方法二,适用于pem格式的证书)在证书查看工具中查看”SHA1指纹“,将“SHA1指纹”复制。
(方法三,通用,使用“管理计算机证书”查看)搜索“管理计算机证书”或运行certlm.msc
,在“个人”-“证书”下找到导入的证书,打开后在“详细信息”中找到“指纹”,将“指纹”复制。
配置RDP的SSL证书SHA1指纹
(方法一,命令行,最方便(Windows 11 24H2以下)从Windows 11 24H2起,已弃用WMIC,参考,因此本方法不再适用)执行以下命令,将命令中的”SHA1指纹“替换为上一步复制的SHA1指纹。
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="SHA1指纹"
(方法二,注册表)在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
下添加SSLCertificateSHA1Hash
项(二进制值),然后编辑,将复制SHA1指纹填入(似乎这里只能手动填入)。此外,还需要搜索“管理计算机证书”或运行certlm.msc
,在“个人”-“证书”下找到导入的证书,“右键”>“所有任务”>“管理私钥”,在”组或用户名“一栏下选择”添加“,在“输入对象名称来选择”中输入NETWORK SERVICE
,并选择检查名称,NETWORK SERVICE
出现下划线后点击确定,选择NETWORK SERVICE
的权限为仅允许读取。
完成
若连接RDP时没有出现证书警告,并且状态栏出现小锁说明SSL证书安装成功,单击小锁可以查看证书信息。