RDP 在远程桌面连接服务中使用自定义证书加密
如果不使用可信任证书,RDP 服务器会使用自己的证书,由于客户端没有这个证书,我们进行远程桌面连接的时候往往会看到这样的警告:
由于安全证书存在问题,因此远程计算机无法通过身份验证。继续操作可能不安全。
这在家里的局域网内没什么问题,但是如果服务器暴露在外网,则容易受到中间人攻击。
在远程桌面服务器上使用了可信任的证书(.p12
文件)加密后,可以使用该证书对 RDP 服务器进行更安全的加密通信。
提示:下列操作都是在RDP服务端进行的。TL;DR
参考:
1. 生成证书¶
2. 安装证书¶
-
Win+R 运行
mmc
,打开控制台(这里不使用certmgr.msc
,因为它只能管理当前用户的证书,我们要操作系统证书) -
在【控制台根节点】点击**文件** -> 添加/删除管理单元 -> 在左侧 可用的管理单元 找到 证书 添加到右侧,选择**计算机账户** -> 选择 本地计算机 -> 完成 -> 确定
-
在 证书(本地计算机) -> 个人 -> 证书 -> 所有任务 -> 导入
-
右击导入的证书,在**所有任务**中选择**管理私钥**,添加
NETWORK SERVICE
组的权限
- 双击刚添加的证书,将【详细信息-指纹】复制以便后续使用
3. 在注册表指定证书¶
我写了一段 js 用来快速分割指纹字符串,将下面 js 代码粘贴到 Chrome 控制台,替换 fff...
为上面步骤复制的指纹,回车,可以输出每两位用逗号隔开的 SSLCertificateSHA1Hash
新建一个 .reg
注册表文件,粘贴以下内容,将 ff,ff,...
替换成控制台输出的结果,保存后双击执行即可导入注册表
Text Only | |
---|---|
完成后,再次进行远程桌面的效果:使用服务器证书已验证远程计算机的身份。