使用免费SSL证书为Windows Server或(非Server)操作系统远程桌面(3389))RDP连接加密
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
这两天淘宝来了一个老铁,说是因为一个远程3389的漏洞出了问题,用的是啥深信服的安全软件,对此软件具体不详,提示错误;错误如下:“此服务的 X.509 证书链未经公认证书颁发机构签名。如果远程主机为生产环境中的公共主机,这样会使 SSL 的使用无效,因为任何人都可以建立针对远程主机的中间人攻击。请注意,此插件不会检查以非自签名、而经未公认证书颁发机构签名的证书结尾的证书链。”如下图:
出现这个问题,是跟“非信任机构”有关系,具体看图;
出现这个问题的原理:
导致这个问题的原因实际是系统使用了一个自签名的默认证书,而这个自签名证书对于客户端来说是不可信的,也就是说无法用于证明服务端的身份,客户端自然就会报告其不安全,那相对应的安全软件也会给予提示不安全,应该是这么个原理;那么解决的思路就有了,那就是我们为服务端添加一个可信的证书,并在远程桌面连接中让系统使用这个证书。首先获得一个这样的证书并不难,只要你已经有至少一个可用的域名,阿里云、腾讯云等各种云可以免费为提供;然后导入这个证书也不难,只要参照配置https服务的方法,直接导入就行了;
具体操作流程:分五部分;
第一部分,修改计算机名称:
我们的PC或者服务器默认的计算机名称是随机的,远程桌面连接时,会提示证书有错误。先修改计算机名,如本例,设置为 yuancheng.laoliang.fun ,重启系统后,新计算机名生效;
第二部分、申请SSL证书、以及设置SLL证书;
已经用证书配置好https的可以跳过第一步。我之前已经申请好证书了,在这里就不演示申请过程了,关于阿里云,腾讯云等云免费证书的教程很多,可以自行百度之。申请到证书后,在我们手中的应该是一个 *.p12 的证书文件, 放在一边备用。如果手上只有 私钥 *.key 和 证书 *.crt ,熟悉linux的也可以用openssl命令行大法搞定。
首先按下‘Win + R’,进入“运行”,键入“mmc”,打开“管理控制台”。
在 文件 中选择 添加/删除管理单元 。
在左侧选中 证书 后点击 添加 。在弹出的对话框中选择 计算机账户,点击 下一步 。之后选择 本地计算机(保持默认) 然后点击 完成 ,再然后点击 确定 。
在 证书-个人 上点击 右键 ,选择 所有任务-导入 。
按照向导点击 下一步 ,之后选择你的 证书文件 (p12格式的证书文件选择时需要更改文件类型才可以找到),之后需要输入之前设置的密码,证书存储 选择 根据证书类型,自动选择证书存储 ,然后点击下一步即可。
导入完成后如下图所示:
第三部分、 分配权限;
首先在已经导入的证书上点击 右键 ,选择 所有任务-管理私钥 。
之后添加 NETWORK SERVICE 用户。至少要将 读取 权限分配给 NETWORK SERVICE ,然后确定。
第四部分、编辑注册表
首先是按下‘Win + R’,进入“运行”,键入“regedit”,打开“管理控制台”。
展开路径 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp ,然后添加如下项:
名称: SSLCertificateSHA1Hash 类型: REG_BINARY
之后回到之前的证书管理,双击打开已经导入的证书,在 详细信息 中选择 指纹 ,并记录下方的值。
最后将记录的值填入之前新建注册表项的 数据 位置。
添加成功如下图:
按照此操作,用IP链接,依然显示下面的错误,具体请看; 因为我用的是域名的证书,应该用域名链接即可;
第五部分、内网设置HOST;
那如果是内网呢?做一下host喽,在自己以及所在服务器里都做一下host,具体路径为 C:\Windows\System32\drivers\etc 然后基本打开hosts 编辑此文件;(注意,是客户端以及服务器都这么设置才可以);
按照以上的操作,就基本大功告成喽;
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!