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 证书管理器
- 按下
Win + R
键,输入mmc
打开控制台。 - 点击 文件 > 添加/删除管理单元。
- 选择左侧 证书,点击 添加。
- 选择 计算机账户,点击下一步,选择 本地计算机。
- 点击 完成 > 确定。
- 在左侧导航栏找到 证书(本地计算机) > 个人 > 证书。
- 右键点击 所有任务 > 导入。
- 浏览并选择你的
.pfx
文件,按照向导完成导入操作。
✅ 注意:证书存储建议选择“根据证书类型自动选择”。
🔒 第四步:分配证书权限
为了确保远程桌面服务可以访问该证书的私钥:
- 回到已导入的证书上,右键选择 所有任务 > 管理私钥。(刚导入后没有看到证书可以右键刷新下)
- 点击 添加,输入用户
NETWORK SERVICE
。 - 赋予 读取 权限。
- 点击确定完成权限配置。
🧬 第五步:配置注册表绑定 SSL 证书
-
按下
Win + R
,输入regedit
打开注册表编辑器。 -
定位路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
-
右侧空白处点击右键 > 新建 > REG_BINARY 类型项。
-
名称设为:
SSLCertificateSHA1Hash
-
双击打开该项,在数据值中填入证书指纹(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
已添加成功。