Windows 遠程桌面添加 SSL 證書指南

Windows 遠程桌面添加 SSL 證書指南

    • 🧾 準備工作
    • 🔐 第一步:使用 Certbot 申請 SSL 證書
    • 📦 第二步:生成 PFX 格式證書文件
    • 📁 第三步:導入證書到 Windows 證書管理器
    • 🔒 第四步:分配證書權限
    • 🧬 第五步:配置注冊表綁定 SSL 證書
      • ?? 編輯注冊表數據值替代方式:使用 WMIC 設置證書指紋
    • ? 最后驗證
    • 📝 總結

在企業或個人遠程辦公場景中,使用 SSL 證書為 Windows 遠程桌面(RDP)服務加密通信是非常有必要的。本文將詳細介紹如何通過 Let’s Encrypt 獲取 SSL 證書,并將其配置到 Windows 遠程桌面服務中。


🧾 準備工作

  • 已啟用遠程桌面功能的 Windows 系統(如 Win10 Pro、Win Server)
  • 具備域名解析能力(用于申請 Let’s Encrypt 證書)
  • 安裝 Docker 環境(用于運行 Certbot)

🔐 第一步:使用 Certbot 申請 SSL 證書

我們使用 certbot 的 DNS 手動驗證方式申請通配符證書(支持泛域名):

docker run -it --rm \-v /home/docker-nginx/cert:/etc/letsencrypt \-v /home/docker-nginx/log:/var/log/letsencrypt \certbot/certbot certonly \--manual \--preferred-challenges=dns \--server https://acme-v02.api.letsencrypt.org/directory \-d "*.你的域名" -d "你的域名" \--agree-tos \--email 你的郵箱

manual模式執行過程中需要在DNS處手動添加 TXT 記錄完成域名所有權驗證。


📦 第二步:生成 PFX 格式證書文件

Let’s Encrypt 默認提供的是 PEM 格式的私鑰和證書文件,我們需要將其轉換為 Windows 可用的 .pfx 格式:

openssl pkcs12 -export -out 自定義名稱.pfx -inkey privkey.pem -in fullchain.pem -name "Certificate"

系統會提示你設置一個密碼,請妥善保存。


📁 第三步:導入證書到 Windows 證書管理器

  1. 按下 Win + R 鍵,輸入 mmc 打開控制臺。
  2. 點擊 文件 > 添加/刪除管理單元
  3. 選擇左側 證書,點擊 添加
  4. 選擇 計算機賬戶,點擊下一步,選擇 本地計算機
  5. 點擊 完成 > 確定
  6. 在左側導航欄找到 證書(本地計算機) > 個人 > 證書
  7. 右鍵點擊 所有任務 > 導入
  8. 瀏覽并選擇你的 .pfx 文件,按照向導完成導入操作。

? 注意:證書存儲建議選擇“根據證書類型自動選擇”。


🔒 第四步:分配證書權限

為了確保遠程桌面服務可以訪問該證書的私鑰:

  1. 回到已導入的證書上,右鍵選擇 所有任務 > 管理私鑰。(剛導入后沒有看到證書可以右鍵刷新下)
  2. 點擊 添加,輸入用戶 NETWORK SERVICE
  3. 賦予 讀取 權限。
  4. 點擊確定完成權限配置。

🧬 第五步:配置注冊表綁定 SSL 證書

  1. 按下 Win + R,輸入 regedit 打開注冊表編輯器。

  2. 定位路徑:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
    
  3. 右側空白處點擊右鍵 > 新建 > REG_BINARY 類型項。

  4. 名稱設為:SSLCertificateSHA1Hash

  5. 雙擊打開該項,在數據值中填入證書指紋(SHA1 值)。

💡 提示:指紋可在證書詳細信息頁查看,注意去除空格。


?? 編輯注冊表數據值替代方式:使用 WMIC 設置證書指紋

如果第五步無法編輯SSLCertificateSHA1Hash的值,可以在管理員權限的 CMD 或 PowerShell 中運行以下命令:

wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="證書指紋"

?? 注意:

  • 必須以管理員身份運行
  • 確保遠程桌面服務已啟用
  • SHA1 指紋必須為 40 位十六進制字符串,無空格

? 最后驗證

重啟系統或遠程桌面服務使配置生效:

Restart-Service TermService -Force

嘗試使用新的 SSL 加密連接遠程桌面,確認證書是否正常加載。正常加載后遠程桌面上會顯示一個小鎖。


📝 總結

步驟內容
1??使用 Certbot 申請 SSL 證書(DNS 驗證)
2??使用 OpenSSL 將證書轉換為 .pfx 格式
3??導入證書到 Windows 證書管理器
4??分配 NETWORK SERVICE 用戶對私鑰的讀取權限
5??修改注冊表或使用 WMIC 綁定證書指紋
6??重啟服務并測試 SSL 連接

📌 提示:

  • 如果你使用的是cloudflare、aliyun、google等域名,也可以結合腳本實現自動更新 TXT 解析記錄。
    –dns-cloudflare(Cloudflare)
    –dns-aliyunsdk(阿里云)
    –dns-google(Google Cloud)
  • 若替代方式遇到 Invalid parameter 報錯,請檢查是否以管理員身份運行命令以及SSLCertificateSHA1Hash已添加成功。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/85170.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/85170.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/85170.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

項目實訓技術實現——核心關鍵:基于二叉分割的布局生成算法

核心關鍵:基于二叉分割的布局生成算法 上一篇針對llava這種為每個元素分別預測每個元素的框的方法進行了分析,已經證實這條路難以行得通。因此,我們考慮直接按照板塊劃分整個背景布局,然后在板塊內,進一步劃分出我們需…

uniapp 配置devserver代理

在uniapp項目中配置devserver代理,需要先檢查用的vue版本。 vue3不能在manifest.json配置代理。 1.先檢查項目用的vue版本 找到manifest.json文件查看vue的版本。 2.vue2在manifest.json內配置 "h5" : { "devServer": { …

移動端 WebView 頁面性能調試實戰:WebDebugX等工具協同與優化

隨著移動互聯網的發展,越來越多的應用開始使用 WebView 加載網頁內容。然而,這種方式雖然能快速實現跨平臺開發,但也帶來了很多性能瓶頸,尤其是在移動端設備上。WebView 本身的性能限制、頁面加載慢、JS 執行阻塞等問題時常成為開…

臨時文件夾大量0字節xml問題排查

某天偶然打開我的c:\users\我的用戶名\AppData\Local\Temp 目錄,發現有很多0字節的.xml文件,你刪除以后一會還會大量產生,如下圖: 下載了ProcessMonitor,記錄了一會日志,查找*.xml發現是資源管理器在創建這…

突破微小目標檢測瓶頸:智能無人機在藍莓產量估算中的解決方案

【導讀】 本文提出了一種使用搭載計算機視覺的智能無人機估算藍莓產量的方法。系統利用兩個YOLO模型:一個檢測灌木叢,另一個檢測漿果。它們協同工作,智能控制無人機位置和角度,安全獲取灌木近景圖,實現精準的漿果計數…

API 管理系統實踐指南:監控、安全、性能全覆蓋

在數字化轉型和云原生架構全面普及的當下,API(應用編程接口) 已成為現代技術和業務架構的核心基石。從移動應用到智能硬件,從企業后端系統到 AI 模型調用,幾乎所有系統都在通過 API 實現互聯互通。API 這個詞聽起來有點…

Leetcode-?930. 和相同的二元子數組?

Problem: 930. 和相同的二元子數組 思路 滑動窗口 解題過程 我們可以通過計算 和大于等于 goal 的子數組數目 與 和大于等于 goal1 的子數組數目 的差值&#xff0c;來得到 和恰好等于 goal 的子數組數目。 Code c class Solution { public:int at_most(vector<int>&…

『大模型筆記』第1篇:高效請求排隊:優化大語言模型(LLM)性能

『大模型筆記』高效請求排隊:優化大語言模型(LLM)性能 文章目錄 一. 起點:基礎的推理引擎二. 問題:“重度用戶”會阻塞其他用戶三. 解決方案:公平調度3.1. 擴展思路四. 問題:后端隊列沒有“反壓”機制五. 解決方案:獲取后端指標5.1 擴展思路六. 替代方案:后端優先級調…

Docker Docker Compose 一鍵安裝

目錄 獲取安裝腳本文件執行安裝腳本文件文章結束?? 注意事項&#xff1a;Docker V1 與 V2 的區別 一行命令裝 docker 和 docker compose。 你是否厭倦了在不同的 Linux 系統上一遍又一遍地手動安裝 Docker 和 Docker Compose&#xff1f;&#x1f914; 不論你是 Ubuntu 、Deb…

Java 單例模式實現方式

Java 單例模式實現方式 單例模式是確保一個類只有一個實例&#xff0c;并提供一個全局訪問點的設計模式。以下是 Java 中實現單例模式的幾種常見方式&#xff1a; 1. 餓漢式&#xff08;Eager Initialization&#xff09; public class EagerSingleton {// 類加載時就初始化p…

數字化零售如何全面優化顧客體驗

一、引言 數字化零售是互聯網、大數據、人工智能等技術在零售業中的應用&#xff0c;是現代零售業發展的必然趨勢。隨著線上購物、移動支付和全渠道銷售的普及&#xff0c;零售行業發生了顛覆性的變化。數字化零售不僅提高了企業運營效率&#xff0c;更為顧客提供了便捷、個性化…

rabbitmq 交換機、隊列和消息概念

RabbitMQ 是一個功能強大的消息中間件&#xff0c;它采用發布-訂閱模式進行消息傳遞。下面為你詳細介紹 RabbitMQ 中交換機、隊列和消息的核心概念。 交換機&#xff08;Exchange&#xff09; 交換機在 RabbitMQ 中扮演著接收生產者發送消息的角色&#xff0c;它會根據特定的…

記錄一次jenkins slave因為本地安裝多個java版本導致的問題

今天&#xff0c;使用jenkins打包&#xff0c;發現slave掉線&#xff0c;上對應機器一看&#xff0c;好家伙&#xff0c;slave運行不起來了。命令行&#xff0c;java -vesion. 沒反應&#xff0c;不會是哪個天殺的把java 給卸載了吧&#xff01; 趕緊 where java看下。 還好 ja…

Java中Redis常用的API及其對應的原始API

相信大家寫redis的時候經常忘記一些指令吧[狗頭][狗頭]&#xff0c;這里整理了一下 一、 String&#xff08;字符串類型&#xff09; 1.代碼塊 // 設置字符串值 stringRedisTemplate.opsForValue().set("key", "value"); // Redis: SET key value// 設置…

C#使用ExcelDataReader高效讀取excel文件寫入數據庫

分享一個庫ExcelDataReader &#xff0c;它專注讀取、支持 .xls/.xlsx、內存優化。 首先安裝NuGet 包 dotnet add package ExcelDataReader dotnet add package System.Text.Encoding.CodePages 編碼 內存優化??&#xff1a;每次僅讀取一行&#xff0c;適合處理百萬級數據…

雪豹速清APP:高效清理,暢享流暢手機體驗

在智能手機的日常使用中&#xff0c;隨著時間的推移&#xff0c;手機中會積累大量的垃圾文件&#xff0c;如臨時文件、緩存數據、無用的安裝包等。這些垃圾文件不僅會占用寶貴的存儲空間&#xff0c;還會導致手機運行緩慢&#xff0c;甚至出現卡頓現象。為了解決這一問題&#…

關于使用v-bind綁定多個屬性值的問題

背景。自定義表單開發。屬性值過多&#xff0c;都寫死很臃腫而且不方便維護。通過v-bind綁定非常方便。但是問題又來了。改以怎樣的方式處理呢。返回值的格式需要注意 下面是兩張動態處理v-bind屬性的方法。第一張是寫在了方法里面&#xff0c;第二張使用了虛擬屬性。使用虛擬…

基于CNN的FashionMNIST數據集識別6——DenseNet模型

源碼 import torch from torch import nn from torchsummary import summary""" DenseNet的核心組件&#xff1a;稠密層(DenseLayer) 實現特征復用機制&#xff0c;每個層的輸出會與所有前序層的輸出在通道維度拼接 """class DenseLayer(nn.Mod…

MySQL 中 INSERT ... ON DUPLICATE KEY UPDATE 為什么會導致主鍵自增失效?

最近開發的過程中&#xff0c;使用ai生成代碼&#xff0c;寫了一條這樣的SQL&#xff1a;INSERT … ON DUPLICATE KEY UPDATE&#xff0c;然后發現一個奇怪的現象&#xff1a; 為什么使用這個語法后&#xff0c;自增主鍵&#xff08;AUTO_INCREMENT&#xff09;的值會跳躍甚至…

jenkins流水線打包vue無權限

jenkins在使用npm命令進行拉取依賴時,創建目錄會報錯無權限&#xff0c;如下如所示 這是因為npm 出于安全考慮不支持以 root 用戶運行&#xff0c;即使你用 root 用戶身份運行了&#xff0c;npm 會自動轉成一個叫 nobody 的用戶來運行&#xff0c;而這個用戶權限非常低 若需要…