Remote-Desktop

如何在遠端桌面伺服器上生成和使用第三方證書?

  • January 23, 2020

我有一個新安裝的 Windows Server 2016 遠端桌面伺服器,我正在嘗試為其生成證書。具體來說,我認為我需要為“RD Connection Broker - Publishing”角色服務配置證書。

我能找到的所有 Microsoft 文件和大多數第三方內容似乎都假定證書將是自簽名的或使用 Microsoft 證書頒發機構服務在內部生成的。我想要的是一個由合適的第三方公共證書頒發機構簽名的證書,以便在所有 Windows 機器上預設信任它。

部署屬性嚮導無法生成證書請求,因此您需要使用證書 MMC 管理單元(或 IIS,但我沒有安裝它)。不幸的是,Certificates 管理單元對使用者不是很友好,如何進行也不明顯。

如何使用證書管理單元生成適合“RD 連接代理 - 發布”角色服務的證書請求?

這對我有用。但是,我將不勝感激任何可以擴展其中一些選擇的實際含義的評論或答案!

在要為其生成證書的遠端桌面伺服器上打開 MMC 控制台,然後添加證書管理單元,選擇“電腦帳戶”和“本地電腦”選項。轉到個人/證書,右鍵點擊並選擇所有任務 -> 高級操作 -> 創建自定義請求。

點擊下一步。選擇“在沒有註冊策略的情況下繼續”,然後再次點擊“下一步”。

對於模板,我選擇了“(無模板)CNG 密鑰”。我發現一些文章說您需要選擇 Legacy 選項,但我看不出有任何必要這樣做的理由,而且 CNG 選項確實按預期工作。

對於請求格式,我選擇了 PKCS #10。

在證書資訊對話框中,點擊詳細資訊,然後點擊屬性。

在“正常”選項卡中,添加友好名稱和描述。

在主題選項卡中,將伺服器(或伺服器場)的完全限定 DNS 名稱添加為“通用名稱”。請注意,具有不合格名稱(無論是作為主題還是作為替代名稱)的證書請求可能會被證書籤名機構拒絕。

我還添加了組織、地區、州和國家。如果伺服器有多個 DNS 名稱,您可能還希望此時添加備用名稱。

在擴展選項卡的擴展密鑰使用下,添加伺服器身份驗證。我沒有在此選項卡中進行任何其他更改。(有些文章說您還應該包括程式碼簽名,大概是為了您可以簽署 RDP 文件;這似乎不是必需的,因為我能夠使用rdpsign我的 RDP 文件簽名並且證書已被 Microsoft 客戶端接受。)

在“私鑰”選項卡的“密鑰選項”下,我將密鑰大小更改為 2048,並設置了“使私鑰可導出”的標誌。這是必要的,因為部署屬性對話框只允許您將證書作為文件導入,然後證書和私鑰將被傳輸到會話主機伺服器。我沒有在此選項卡下進行任何其他更改。

關閉“屬性”對話框後,點擊“下一步”。將請求保存為 Base64 格式的文件。點擊完成。向您的證書頒發機構送出請求,生成新證書後,將其下載到 .crt 文件中。

在 MMC 控制台中,右鍵點擊 Personal/Certificates 並選擇 All Tasks -> Import。選擇響應文件並點擊下一步。檢查是否選擇了個人商店,然後點擊下一步。點擊完成。當您收到提示導入成功的消息時,點擊“確定”。

點兩下新證書將其打開。檢查證書是否顯示為有效;如果沒有,您可能需要導入您的證書頒發機構提供的中間 CA 證書。還要檢查證書是否在“正常”選項卡上顯示消息“您有與此證書對應的私鑰”。

右鍵點擊新證書並選擇導出。點擊下一步。選擇導出私鑰的選項,然後點擊下一步。

在“導出文件格式”對話框中,PKCS#12 是唯一可用的選擇;我使用了預設設置,即,我選中了“如果可能的話,在證書路徑中包含所有證書”選項,並且未選中所有其他選項。點擊下一步。(*編輯:*在 Server 2019 中,預設情況下也啟用了“啟用證書隱私”選項,這在此處進行了描述,據我所知,您最好將其保持啟用狀態。)

選擇使用您的使用者帳戶保護私鑰的選項,然後點擊下一步。輸入文件名,然後點擊下一步。當您收到說明導出成功的消息時,點擊“確定”。(請注意,預設情況下,該文件將保存到您從中導入證書文件的同一位置。)

返回伺服器管理器和部署屬性嚮導,選擇“RD 連接代理 - 啟用單點登錄”選項並點擊“選擇現有證書”。選擇導出的 .pfx 文件並選擇強制性的“允許將證書添加到目標電腦上的受信任的根證書頒發機構證書儲存區”選項。點擊確定。點擊應用。

**注意:**為了在客戶端連接時使用證書,您必須為“啟用單點登錄”選項安裝它,而不是我最初假設的“發布”選項。(您不必實際使用SSO,您可以在客戶端通過組策略配置是否嘗試 SSO。)

如此處所述,您可以通過伺服器的 IP 地址而不是名稱進行連接,從而最輕鬆地檢查向客戶端提供的證書。


附加參考:

配置證書和單點登錄,特別是標題為“創建證書的常見錯誤”的部分。

使用證書保護 RDS

引用自:https://serverfault.com/questions/984340