Windows RDP Service 使用正式憑證
Windows RDP Service using Signed Certificate
步驟
- 產生憑證
$openssl req -new -newkey rsa:4096 -nodes -sha256 -out FQDN.sha256.csr -keyout FQDN.key
- PS1: 我習慣在非 Windows 的機器上產憑證,所以這部分請自行想辦法找 openssl 來執行
- PS2: 注意!請不要使用任何線上網站來進行產生 Key 的步驟!
- 簽署憑證
- 使用 Let's Encrypt(90天) or Comodo Trial SSL(90天) or Buy One.
- 拿到正式憑證的 FQDN.crt 及 CA_bundle.crt (中繼憑證)
- 將 PEM 格式換成 pkcs12 以便餵入 Windows
$openssl pkcs12 -export -out FQDN.pfx -inkey FQDN.key -in FQDN.crt -certfile CA_bundle.crt
- 輸入個密碼保護一下
- 放置憑證至 Windows
- 開始 → cmd → mmc → 新增/移除嵌入式管理單元 → 憑證 → 新增
- 電腦帳戶 → 本機電腦 → 完成 → 確定
- 憑證(本機電腦) → 個人 → 憑證
- 動作 → 所有工作 → 匯入
- 匯入成功後 → FQDN 點二下打開憑證內容 → 憑證指紋 → 複製該值 (EX: ec 97 5c c9 95 4a 45 2b 1f 03 0d b3 32 18 b2 ae 86 0d ca 22)
- 清除所有空格後待用(ec975cc9954a452b1f030db33218b2ae860dca22)
- 註冊憑證至 RDP 服務
- 開始 → 搜尋 → cmd → 命令提示字元 → 使用管理員身分執行
C:\WINDOWS\system32>wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="ec975cc9954a452b1f030db33218b2ae860dca22"
- 完成註冊後應該會顯示
正在更新 '\\PCNAME\root\cimv2\TerminalServices:Win32_TSGeneralSetting.TerminalName="RDP-Tcp"' 的屬性 屬性更新成功。
- 接下來甚麼事都不用做 RDP 就會使用新憑證了。惱人的憑證問題視窗就再也不會出現了。
Step
- Create a CSR (also including private key)
$openssl req -new -newkey rsa:4096 -nodes -sha256 -out FQDN.sha256.csr -keyout FQDN.key
- PS: I usually generate key using unix-like os to do that. Please find the openssl to do so.
- PS2: Caution! DO NOT USED ANY ONLINE WEB SITE TO DO THIS SETP!
- Sign the Certificate
- Using Let's Encrypt(90 days) or Comodo Trial SSL(90 days) or Buy One.
- Get the signed certificate file: FQDN.crt and CA_bundle.crt (Intermediate Certificate)
- Change certificate format from PEM to pkcs12 for feeding to Windows
$openssl pkcs12 -export -out FQDN.pfx -inkey FQDN.key -in FQDN.crt -certfile CA_bundle.crt
- Enter password for protect file
- Put certificate into Windows
- Start → Search → cmd → mmc → Add/Remove Snap-in → Certificates → Add >
- Computer account → Local Computer → Finish → OK
- Certificates(Local Computer) → Personal → Certificates
- All task → Import…
- After import → FQDN Double-click to open certificate → Thumbprint → Copy value (EX: ec 97 5c c9 95 4a 45 2b 1f 03 0d b3 32 18 b2 ae 86 0d ca 22)
- Remove all spaces (ec975cc9954a452b1f030db33218b2ae860dca22)
- Register Certificate to RDP Service
- Start → Search → cmd → Command Prompt → Run as administrator
C:\WINDOWS\system32>wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="ec975cc9954a452b1f030db33218b2ae860dca22"
- After success registered
Updating '\\PCNAME\root\cimv2\TerminalServices:Win32_TSGeneralSetting.TerminalName="RDP-Tcp"' Attribute Attributes update success.
- You do not do anything in following. RDP already using new certificate to serve. No annoying message anymore.