配置Windows远程桌面的证书

2024 年 8 月 13 日 星期二(已编辑)
/ , ,
58
AI 生成的摘要
这篇文章上次修改于 2024 年 8 月 13 日 星期二,可能部分内容已经不适用,如有疑问可询问作者。

0x00 背景

在使用RDP(Windows Remote Desktop)时,无论是输入IP地址还是域名都会提示无法验证远程计算机的身份,是否仍要连接?

而在macOS设备上,会弹出如下的提示,与Windows的提示大意相同,都是在表明将要连接的计算机所使用的是不被信任的证书。

证书异常提示

证书异常提示

这个证书是在Windows安装的过程中以计算机名称为域名的证书,不被信任也是合理的。虽然在Windows下点了不再提示后便再也不见,但在macOS客户端上仍会有此提示。故要想完整的解决这个证书问题,只能修改被连接计算机系统中的RDP所使用的SSL证书文件。

在正式进入下列步骤之前,确保已经拥有了域名与相应的证书文件。

0x01 前提准备

若使用的国内云厂商(如阿里云、腾讯云等)提供的证书,可以选择PFX证书下载以作备用。而使用acme.sh 进行申请所得到的证书有your.domain.keyyour.domain.crt。需要注意的是,Windows并不能直接使用此类证书,而是采用了PKCS#12标准证书,样式通常为上述所提到的your.domain.pfx

转换证书可以使用OpenSSL操作。假使已经完成了OpenSSL的安装与证书的申请,便开始进行证书的转换。

openssl pkcs12 -export -in your.domain.pem -inkey your.domain.key -out your.domain.pfx

执行上述命令后会提示键入私钥密码,记住此密码,稍后添加证书时需要使用。完成后将在当前工作目录下找到需要的your.domain.pfx文件。

0x02 添加证书

将上一步得到的证书上传到Windows计算机中,并双击打开,会弹出证书导入向导。

  • 存储位置:本地计算机
  • 要导入的文件:直接点击下一步即可
  • 私钥保护:此处输入上一步中键入的密码
  • 证书存储位置:个人

点击完成后即可导入成功。此时已将上一步中的pfx证书文件导入到Windows中。但只导入证书还不能达到使用此证书作为RDP证书的效果。

使用快捷键Win+R ,输入certlm.msc ,打开本地计算机证书管理器。在个人→证书列中可以发现刚刚导入的证书。右键此证书→所有任务→管理私钥,在打开的对话框中点击添加,输入NETWORK SERVICE 并点击确定。给NETWORK SERVICE以允许读取的权限。

搜索NETWORK SERVICE用户

搜索NETWORK SERVICE用户
赋予可读权限

赋予可读权限

点击确定即可保存权限。

再次双击此证书,点击详细信息,在字段中找到指纹字段项,点击后将对应的值复制作备用。

0x03 配置SSL证书

此时需要将证书指纹配置到注册表中。

假使上述得到的指纹为yourprivatefingerprint 。右键Windows菜单,以管理员身份运行PowerShell,并输入

$fingerprint = "yourprivatefingerprint"
$path = (Get-WmiObject -Namespace root\cimv2\TerminalServices -Class Win32_TSGeneralSetting -Filter 'TerminalName="RDP-Tcp"').__path
Set-WmiInstance -Path $path -argument @{SSLCertificateSHA1Hash="$fingerprint"}

到此处已经配置完成了Windows RDP的证书。若证书对应的域名已经解析到此Windows计算机上,再次远程桌面时将不再提示证书问题。

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...