RDS 证书到期更换:wildcard 证书导入 RD 部署的完整路径(和三个坑)
RDS(Remote Desktop Services)的 SSL 证书临近到期,用户连接时马上就要开始弹证书警告。手上有公司的 wildcard 证书(*.example.com),任务就是把它换到 RDS 部署里。听起来五分钟的事,实际有几个环节值得记录。
坑一:pfx 在哪里?私钥在哪里?
买证书时的 CSR 是在另一台服务器(当年做证书申请的 IIS 机器)上生成的——这意味着私钥在那台机器上,别处下载的证书文件都不带私钥,导不进 RDS。
正确路径:到当年生成 CSR 的那台服务器上,从 IIS / 证书管理器把证书连私钥一起导出成 .pfx(设导出密码),拿着这个 pfx 才能去配 RDS。
经验法则:找不到私钥时,回忆「CSR 是在哪台机器上生成的」,私钥永远在那里。
坑二:证书名必须匹配外部 FQDN
动手前顺手做了一张自签证书当 Plan B,结果它是签给内部名称(rds.<内部域>.local)的,而用户实际连接用的是公网 FQDN(rds.example.com)——名称不匹配的证书配上去也白配,浏览器和 RDP 客户端照样报警。wildcard 证书 *.example.com 覆盖公网名,才是正解。
换证书的完整位置清单
五处配置点全图——右上角那个虚线框就是最容易漏的
Server Manager → Remote Desktop Services → Overview → TASKS → Edit Deployment Properties → Certificates,里面有四个角色要逐一换:
- RD Connection Broker - Enable Single Sign On
- RD Connection Broker - Publishing
- RD Web Access
- RD Gateway
每一项选 Select existing certificate → 指向 pfx → 输密码 → Apply。四项全绿才算完。
坑三:还有一个漏网之鱼。 Deployment Properties 全换完,还有一处独立的配置点:
Administrative Tools → Remote Desktop Services → RD Gateway Manager → 服务器右键 Properties → SSL Certificate 标签
这里的证书不会跟着 Deployment Properties 联动,要单独再导一次。漏掉它的症状是:Web 和 Broker 都正常了,走 Gateway 的外部连接还在报证书错误。
教训
- 证书资产要有台账:哪张证书、哪里生成的 CSR、私钥在哪台机器、到期日——到期前手忙脚乱翻服务器找 pfx 的时间,比维护台账贵得多;
- RDS 换证书 = Deployment Properties 四项 + RD Gateway Manager 一项,共五处,列成 checklist 逐项打勾;
- 换完的验证要覆盖三条路径:内网直连 RDP、RD Web 登录、经 Gateway 的外部连接——每条路走一遍才算收工。