0x00 背景#
在使用 RDP(Windows Remote Desktop)時,無論是輸入 IP 地址還是域名都會提示無法驗證遠程計算機的身份,是否仍要連接?
而在 macOS 設備上,會彈出如下的提示,與 Windows 的提示大意相同,都是在表明將要連接的計算機所使用的是不被信任的證書。
這個證書是在 Windows 安裝的過程中以計算機名稱為域名的證書,不被信任也是合理的。雖然在 Windows 下點了不再提示後便再也不見,但在 macOS 客戶端上仍會有此提示。故要想完整的解決這個證書問題,只能修改被連接計算機系統中的 RDP 所使用的 SSL 證書文件。
在正式進入下列步驟之前,確保已經擁有了域名與相應的證書文件。
0x01 前提準備#
若使用的國內雲廠商(如阿里雲、騰訊雲等)提供的證書,可以選擇 PFX 證書下載以作備用。而使用acme.sh
進行申請所得到的證書有your.domain.key
和your.domain.crt
。需要注意的是,Windows 並不能直接使用此類證書,而是採用了PKCS#12標準證書,樣式通常為上述所提到的your.domain.pfx
。
轉換證書可以使用OpenSSL操作。假使已經完成了 OpenSSL 的安裝與證書的申請,便開始進行證書的轉換。
openssl pkcs12 -export -in your.domain.pem -inkey your.domain.key -out your.domain.pfx
執行上述命令後會提示鍵入私鑰密碼,記住此密碼,稍後添加證書時需要使用。完成後將在當前工作目錄下找到需要的your.domain.pfx
文件。
0x02 添加證書#
將上一步得到的證書上傳到 Windows 計算機中,並雙擊打開,會彈出證書導入嚮導。
- 存儲位置:本地計算機
- 要導入的文件:直接點擊下一步即可
- 私鑰保護:此處輸入上一步中鍵入的密碼
- 證書存儲位置:個人
點擊完成後即可導入成功。此時已將上一步中的 pfx 證書文件導入到 Windows 中。但只導入證書還不能達到使用此證書作為 RDP 證書的效果。
使用快捷鍵Win+R
,輸入certlm.msc
,打開本地計算機證書管理器。在個人→證書列中可以發現剛剛導入的證書。右鍵此證書→所有任務→管理私鑰,在打開的對話框中點擊添加,輸入NETWORK SERVICE
並點擊確定。給NETWORK SERVICE
以允許讀取的權限。
點擊確定即可保存權限。
再次雙擊此證書,點擊詳細信息,在字段中找到指紋字段項,點擊後將對應的值複製作備用。
0x03 配置 SSL 證書#
此時需要將證書指紋配置到註冊表中。
假使上述得到的指紋為yourprivatefingerprint
。右鍵 Windows 菜單,以管理員身份運行 PowerShell,並輸入
$fingerprint = "yourprivatefingerprint"
$path = (Get-WmiObject -Namespace root\cimv2\TerminalServices -Class Win32_TSGeneralSetting -Filter 'TerminalName="RDP-Tcp"').__path
Set-WmiInstance -Path $path -argument @{SSLCertificateSHA1Hash="$fingerprint"}
到此處已經配置完成了 Windows RDP 的證書。若證書對應的域名已經解析到此 Windows 計算機上,再次遠程桌面時將不再提示證書問題。
此文由 Mix Space 同步更新至 xLog
原始鏈接為 https://blog.allieqian.com/posts/tech/8EandzDrRKcdQn