微软在 Windows Server 2003 SP1 中针对终端服务提供了SSL加密功能,它可以基于SSL(TLS 1.0)来实现以下两个功能:
-
对RDP客户端提供终端服务器的服务器身份验证;
-
加密和RDP客户端的通信。
在启用终端服务器的SSL加密功能时,当RDP客户向终端服务器发起连接时,终端服务器会向RDP客户出示配置使用的服务器证书,而RDP客户会检查颁发此服务器证书的CA是否位于自己受信任的根证书颁发机构列表中,如果存在则使用此服务器证书进行后续的RDP加密通讯,如果不存在则根据RDP客户的配置进行处理,你可以选择继续和终端服务器进行连接或者拒绝连接。
要使用终端服务器的SSL加密功能,对于终端服务器具有以下要求:
而对于RDP客户端具有以下要求:
-
客户端操作系统必须是 Windows 2000、Windows XP 或 Windows Server 2003;
-
客户端的RDP客户端连接组件版本必须为 RDP 5.2 以上,即必须为 Windows Server 2003 SP1 及其后版本中所带的RDP客户端连接组件;如果终端服务器要求SSL加密而客户端的RDP客户端连接组件版本低于 RDP 5.2,则RDP客户端无法进行连接;
-
如果颁发终端服务器使用的服务器证书的CA不在RDP客户端所信任的CA列表中,那么RDP客户端在连接终端服务器时会出现错误提示,不过你可以选择是否继续进行连接。
配置终端服务器使用SSL加密
首先,我们需要在终端服务器上申请一个有效的(即颁发此证书的CA必须位于终端服务器的受信任的根证书颁发机构列表中)服务器身份验证证书,在此具体的申请过程我就不详细进行描述了,下面配置终端服务器。
点击开始,指向所有程序,点击管理工具中的终端服务配置,
在弹出的终端服务配置连接对话框,右击右边详细面板中的RDP-Tcp,选择属性;
然后在弹出的RDP-Tcp属性对话框上,点击常规页中的编辑按钮;
在选择证书对话框上,选择对应的服务器身份验证证书,然后点击确定;
在配置使用服务器身份验证证书后,就可以使用SSL加密功能了。在安全层栏选择SSL,然后点击确定;
此时终端服务器的配置已经完成,将使用SSL(TLS 1.0)来进行加密通讯。
配置RDP客户端使用SSL加密
对于操作系统为 Windows Server 2003 SP1 之前的客户端而言,要使用SSL加密的RDP通讯,首先必须安装 RDP 5.2 版本的RDP客户端连接组件。此组件的安装文件位于 Windows Server 2003 SP1 操作系统中的 %systemdrivesystem32clientstsclientwin32 目录下,你只需要将 msrdpcli.msi 文件复制到RDP客户端上再运行安装即可,也可以点此链接下载此文件。
在安装完成以后,点击开始,选择所有程序中的远程桌面连接,然后在安全标签选择是否使用基于SSL(TLS 1.0)的服务器身份验证:
-
无身份验证:RDP客户端不要求终端服务器进行服务器身份验证,当使用这个选项时,RDP客户端连接组件的行为和更低版本的RDP客户端连接组件的行为一致,适用于终端服务器没有使用SSL加密的场景,如果终端服务器已经配置为使用SSL加密,则终端服务器会拒绝进行连接;
-
试图身份验证:RDP客户端试图要求但不是必须要求终端服务器进行服务器身份验证,如果终端服务器并未配置为使用SSL加密或者颁发终端服务器所使用的服务器身份验证证书的CA并不位于RDP客户端计算机的受信任的根证书颁发机构列表中,RDP客户端连接组件会进行提示,但是你同样可以选择继续进行连接;
-
要求身份验证:RDP客户端必须要求终端服务器进行服务器身份验证,如果终端服务器并未配置为使用SSL加密或者颁发终端服务器所使用的服务器身份验证证书的CA并不位于RDP客户端计算机的受信任的根证书颁发机构列表中,RDP客户端连接组件会拒绝进行连接。需要注意的是,如果RDP客户端所连接的目的地(服务器名或IP地址)和终端服务器上配置使用的服务器身份验证证书的公共名称不一致,则RDP客户端组件会认为所连接的终端服务器无法通过身份验证,从而会拒绝进行连接。
当成功使用SSL进行RDP连接后,在全屏模式下,屏幕顶部的提示栏上会具有一个小锁标志,代表使用的是SSL加密连接,单击它可以查看终端服务器所配置使用的服务器身份验证证书。