Windows 远程桌面添加 SSL 证书指南

发布于:2025-06-15 ⋅ 阅读:(16) ⋅ 点赞:(0)

在企业或个人远程办公场景中,使用 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已添加成功。

网站公告

今日签到

点亮在社区的每一天
去签到