基于Microsoft Server 2016的VPN证书过期修复步骤咨询
基于Microsoft Server 2016的VPN证书过期修复步骤咨询
别慌,证书过期是运维里很常见的问题,跟着下面的步骤一步步来就能搞定:
第一步:先理清证书来源环境
先搞明白你们的VPN证书是怎么来的,这决定了后续操作方向:
- 打开VPN服务器的
服务器管理器,看看有没有安装**Active Directory Certificate Services(AD CS)**角色(也就是内部企业CA)。如果有,说明证书是内部CA签发的;如果没有,大概率是之前用的自签证书或者第三方证书。 - 打开
certlm.msc(本地计算机证书管理器),展开个人→证书,找到标注为“VPN服务器”或“远程访问”用途的过期证书,记下它的「颁发者」信息,这能帮你快速确认证书类型。
第二步:给VPN服务器申请并配置新证书
情况1:内部企业CA签发的证书
- 在VPN服务器上打开
certlm.msc,右键个人→证书,选择所有任务→申请新证书 - 跟着证书申请向导走,根据VPN类型选对应模板:L2TP/IPsec VPN选「计算机」模板,SSTP VPN选「Web服务器」模板,填写证书通用名称(建议和VPN服务器主机名一致)
- 提交申请后,若CA开了自动批准,很快就能在证书管理器里看到新的有效证书;没开自动批准的话,得登录CA服务器手动批准
- 打开
路由和远程访问控制台,右键你的VPN服务器→属性→切换到安全选项卡,在「SSL证书」下拉框里选刚申请的新证书,点击确定 - 重启远程访问服务:打开管理员权限的命令提示符,执行
net stop remoteaccess,等服务停稳后再执行net start remoteaccess
情况2:自签证书(非企业CA环境)
- 打开管理员权限的PowerShell,执行以下命令生成自签证书(把
VPN-SERVER替换成你的服务器主机名):
New-SelfSignedCertificate -DnsName "VPN-SERVER" -CertStoreLocation "Cert:\LocalMachine\My" -KeyUsage DigitalSignature, KeyEncipherment -Type SSLServerAuthentication
- 同样在
路由和远程访问控制台里切换到新证书,然后重启远程访问服务
第三步:处理客户端证书更新
客户端这边分两种场景处理:
- 域内客户端:如果是域环境且之前用的是企业CA证书,只要组策略里配置了自动申请计算机证书,客户端一般会自动获取新证书。可以让用户重启电脑,或者在客户端执行
gpupdate /force刷新组策略,之后用certmgr.msc检查个人证书里有没有新的有效证书。 - 非域客户端/手动分发证书:先把VPN服务器新证书的公钥导出(在
certlm.msc里右键新证书→所有任务→导出,选择导出公钥,保存为.cer文件),把这个文件发给所有客户端,让他们双击导入到「受信任的根证书颁发机构」存储里。如果之前客户端需要用自己的证书连接(不是仅信任服务器证书),还得让客户端重新申请新的客户端证书(从企业CA申请或生成自签客户端证书)。
额外要注意的排查点
- 确认服务器和所有客户端的系统时间完全同步,哪怕差个几分钟都可能导致证书验证失败
- 如果是内部CA环境,别忘了检查CA的根证书有没有过期,要是根CA证书也过期了,得先更新根CA证书再处理VPN证书
备注:内容来源于stack exchange,提问作者Brian Karabinchak




