使用SSL证书作为Windows远程桌面RDP连接加密

2019年3月1日17:44:45 发表评论 2,071

前言

每次远程Windows登陆都会提示“无法验证此远程计算机的身份”,作为一个轻度强迫症,要把这个倒腾倒腾。

原理分析

从万能的互联网得知:不知道从哪一个版本开始,微软开始为远程桌面加入了SSL加密功能,并且是默认开启。 导致这个问题的原因实际是系统使用了一个自签名的默认证书,而这个自签名证书对于客户端来说是不可信的,也就是说无法用于证明服务端的身份,客户端自然就会报告其不安全。 那么解决的思路就有了,那就是我们为服务端添加一个可信的证书,并在远程桌面连接中让系统使用这个证书。

首先获得一个这样的证书并不难,只要你已经有至少一个可用的域名,那么腾讯云/阿里云都可以免费为你提供; 然后导入这个证书也不难,只要参照配置https服务的方法,直接导入就行了; 那么问题在哪儿呢?那就是证书导进去了,系统却不使用。 这个问题在Server版当中据说有专门的工具解决,但桌面版却并没有,所以最后就只好修改注册表,将要用的证书的指纹填进去,告诉系统该用哪个证书,然后问题就解决了。

倒腾步骤(图文教程)

已经用证书配置好https的可以跳过第一步。 我之前已经申请好证书了,在这里就不演示申请过程了,关于SSL免费证书的教程很多,可以自行百度之。 申请到证书后,在我们手中的应该是一个 *.p12 的证书文件, 放在一边备用。 如果手上只有 私钥 *.key 和 证书 *.crt ,请使用服务商的工具,按照操作提示,生成所有类型证书文件。

熟悉linux的也可以用openssl命令行大法搞定。

展开

使用SSL证书作为Windows远程桌面RDP连接加密

至此便大功告成!服务器重启后,再次连接就没有这个提示了。

注意事项

这个是在有域名的基础下,对于IP的话,可能部分服务商不提供,这里建议使用域名方式访问,因为比较好记呦。

注册表:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

添加项:名称: SSLCertificateSHA1Hash    类型: REG_BINARY   

参考文章

使用StartSSL(Let's Encrypt)的免费SSL证书为Windows远程桌面RDS服务指定受信任的证书

weinxin
微信公众号
博客微信公众号,欢迎关注。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: