本文最后更新于 2023-01-27 14:31

前言

在 Windows Server 下可以通过配置远程桌面服务为RDP连接提供有效的数字证书以便提高安全性。

可是个人用户或并没有部署域控制器的用户是无法通过这种途径修改RDP所使用的数字证书,在不安全的环境中很容易遭受攻击,同时每次通过RDP协议连接主机都弹出一个危险警告窗口,让人看着觉得很不好:

警告窗口

在这里推荐使用 https://freessl.cn/ 申请免费数字证书,为 RDP 服务提供有效可靠的数字证书。

准备

首先你需要拥有一个域名,你需要拥有域名的 DNS 解析权。在申请数字证书时需要通过 TEXT/CNAME 进行验证。验证通过后等待 CA 检测并向你颁发有效的数字证书,然后下载证书打包文件或适用于IIS格式的证书(一般包含一个密码文件)

导入

1、双击证书文件通过向导导入。

1-1、开始导入向导,选择存储位置为 本地计算机,然后点击 下一步

选择存储位置

1-2、确认导入的证书文件,直接点击 下一步

确认导入的证书文件

1-3、输入证书文件的导入密码,然后点击 下一步,没有密码的直接 下一步

输入证书文件的导入密码

1-4、证书存储的系统区域让向导 根据证书类型,自动选择证书存储 类型,直接点击 下一步

根据证书类型,自动选择证书存储

1.5、导入向导执行完毕,点击 完成 即可完成证书导入。

完成证书导入

1.6、成功导入证书。

导入成功

2、通过 MMC 控制管理单元导入。

2-1、使用运行窗口(WIN+R)输入 MMC 打开控制台。

运行窗口

2-2、单击 文件 > 添加/删除管理单元

添加/删除管理单元

2-3、添加 计算机账户 的证书服务到控制台。

选择 计算机账户证书管理单元
选择管理 本地计算机
确认管理单元

2-4、在个人证书中将 pfx 文件导入。

选择个人证书导入

2-5、证书导入流程与 1、双击证书文件通过向导导入 类似。

设置证书私钥权限

1、在上节第2点的 MMC 控制管理单元中找到导入的证书。

2、右击添加的证书 > 所有任务 > 管理私钥

查看证书私钥

3、为 NETWORK SERVICE 服务添加读取密钥的权限。

添加网络服务读取权限

4、最后双击刚添加的证书,将证书详细信息中的指纹信息记录备用。

查看证书指纹

注册表

1、使用运行窗口(WIN+R)输入 regedit 打开注册表编辑器,并展开到以下路径:

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

2、然后新建以下内容的项:

名称: SSLCertificateSHA1Hash
类型: REG_BINARY

新建注册表键

3、然后右键修改刚才新建的项的二进制数据并手动输入证书指纹。

修改注册表项(菜单)

完成所有步骤后即可再次通过RDP协议连接,再也不会出现那烦人的警告信息了。

验证结果

结语

其实默认情况下也是用数字证书来保护我们数据的,只是这张证书是由 Windows系统 自动生成的,因为在系统中找不到与之相关的CA信息,所以不被信任而导致弹出警告框。使用不被信任的数字证书很容易受到攻击,尤其是中间人攻击。

如果你一般在内网中使用 RDP协议 连接远程桌面,那么大可放心;如果你的 RDP协议 是暴露在公网中,则需要在安全方面多加注意。

本站公开内容由 Vicanent 编辑整理发布,均采用 CC BY-SA 4.0 共享协议,您可自由地使用和转载。