Windows 10/11系统的远程桌面默认使用的是一张自签的SSL证书来连接,当使用RDP远程桌面时,会提示“证书来自不信任的证书验证机构”。

导致这个问题的原因实际是系统使用了一个自签名的默认证书,而这个自签名证书对于客户端来说是不可信的,也就是说无法用于证明服务端的身份,客户端自然就会报告其不安全。

证书来自不信任的证书验证机构提示

获取证书

证书可以通过阿里云申请免费证书,下载证书时选择Tomcat服务器类型,这样就可以直接获得一张pfx证书。

当然,如果你通过Let‘s encrypt等其他方式获取到一个pem文件和一个key文件,可以通过openssl转换为pfx证书。

openssl pkcs12 -export -clcerts -in [your_domain_crt.pem] -inkey [your_domain_key.key] -out [your_domain.p12]

导入证书

首先按下Win + R,进入“运行”,键入mmc,打开“管理控制台”。

运行

文件 中选择 添加/删除管理单元

管理控制台

在左侧选中 证书 后点击 添加

添加或删除单元

在弹出的对话框中选择 计算机账户,点击 下一步

证书管理单元

之后选择 本地计算机(保持默认) 然后点击 完成 ,再然后点击 确定

选择计算机

证书-个人 上点击 右键 ,选择 所有任务-导入

右键

按照向导点击 下一步 ,之后选择你的 证书文件p12格式的证书文件选择时需要更改文件类型才可以找到),之后需要输入之前设置的密码,证书存储 选择 根据证书类型,自动选择证书存储 ,然后点击下一步即可。

选择证书文件

导入完成后如下图所示:

导入完成

分配权限

首先在已经导入的证书上点击 右键 ,选择 所有任务-管理私钥

右键

之后添加 NETWORK SERVICE 用户

添加用户

至少要将 读取 权限分配给 NETWORK SERVICE ,然后确定。

分配权限

更新远程桌面证书配置

双击证书管理右侧的证书可以看到证书的详细信息,获取其中的指纹

An example of the certificate thumbprint in the Certificate properties.

然后以管理员身份在Powershell中运行:

wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="<上面获取的证书指纹>"

如果更新成功,就不会提示证书有错误了

A successful example of running the wmic command together with the thumbprint value that you obtain in step 3.

参考

为Windows 2012系统远程桌面配置赛门铁克免费型DV SSL证书

使用SSL证书为Windows(非Server)远程桌面RDP连接加密

windows系统RDP远程桌面配置可信证书

Windows远程桌面使用Let‘s encrypt证书

Configure custom SSL certificate for RDP on Windows Server 2012 (and later) in Remote Administration mode?

Remote Desktop listener certificate configurations

Remote-desktop icons created by Freepik - Flaticon