微軟在 Windows Server 2003 SP1 中針對終端服務提供了SSL加密功能,它可以基於SSL(TLS 1.0)來實現以下兩個功能:
對RDP客戶端提供終端服務器的服務器身份驗證;
加密和RDP客戶端的通信。
在啟用終端服務器的SSL加密功能時,當RDP客戶向終端服務器發起連接時,終端服務器會向RDP客戶出示配置使用的服務器證書,而RDP客戶會檢查頒發此服務器證書的CA是否位於自己受信任的根證書頒發機構列表中,如果存在則使用此服務器證書進行後續的RDP加密通訊,如果不存在則根據RDP客戶的配置進行處理,你可以選擇繼續和終端服務器進行連接或者拒絕連接。
要使用終端服務器的SSL加密功能,對於終端服務器具有以下要求:
終端服務器組件的版本必須是 RDP 5.2 或以上,即所運行的操作系統必須是 Windows Server 2003 SP1 或其後版本;
必須具有一個有效的服務器身份驗證證書;
而對於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加密連接,單擊它可以查看終端服務器所配置使用的服務器身份驗證證書。