吊销一台 Azure 点到站点客户端,意味着把它的指纹加入网关的吊销列表。这并不意味着删除受信任的根证书。根证书是你发放过的每一张客户端证书的签发者,因此移除它是另一种影响面大得多的操作。这里的吊销单位是单张证书。

步骤 1:确认你指的是哪张证书

从证书记录入手,而不是从显示名称入手。Azure 显示的是你自己输入的好记名称,而该标签不一定要与使用者或证书签发给的设备一致。

吊销前再检查一件事:弄清有多少台设备在用它。如果多台笔记本电脑是用同一个 PFX 的副本生成的,吊销该指纹会把它们全部锁在外面,而 Azure 无法区分丢失的那台和抽屉里的备用机。

在客户端上,Get-ChildItem Cert:\CurrentUser\My | Select-Object Subject, Thumbprint, NotAfter 会列出为该用户安装的证书,而 Cert:\LocalMachine\My 也值得检查,因为 VPN 客户端可能从这两个存储区中的任意一个进行选择。把指纹与你的注册清单核对。续期后的证书即使使用者相同,指纹也会不同。

读取公开证书的指纹,不需要客户端的私钥或受密码保护的 PFX。任何要求其中之一的流程都是从另一项任务里抄来的。

步骤 2:把它加入网关的吊销列表

在门户中打开虚拟网络网关,然后进入点到站点配置,再进入已吊销证书部分。添加一个半年后仍能认出的大记名称,并把去掉空格后的指纹粘贴为一个连续字符串。

保存前确认选中的是哪个网关,因为拥有多个网关的订阅正是出问题的地方。Microsoft 的 证书配置指南 指出,更新完成后,该证书就不能再用于连接。

随后请确认实际存储的值,而不是相信门户的弹出提示:az network vnet-gateway show --name gw-p2s --resource-group rg-vpn --query "vpnClientConfiguration.vpnClientRevokedCertificates" 会显示网关真正保存的内容。

步骤 3:双向验证

用被吊销的证书测试拒绝效果,然后测试同一根证书下的另一张证书仍能通过身份验证。第二项测试正是人们会跳过的,也是能发现误删根证书或无人提及的策略变更的那一项。使用一台能看出正在出示哪张证书的设备。持有多个证书的客户端可能悄悄使用可用的那一张,让你的吊销看起来失效了。

把两项结果都记录在工单里。只在拒绝方向验证过的吊销,只算验证了一半。

步骤 4:已经建立的会话

文档记录的结果针对的是新连接。不要把它延伸成“列表一保存,所有现有隧道立刻断开”的承诺。如果即时移除很重要,就使用你已部署的配置真正提供的控制手段,并检查具体会话,而不是想当然。

这一点要与身份验证分开测试,因为两者在不同环节失败,留下的证据也不同。

回滚,以及应当避免的捷径

回滚意味着从吊销列表中移除指纹,并等待同一次更新完成。当你吊销了错误的条目时这是安全的,而当证书确实已被泄露时这是危险的,所以先判断自己属于哪种情况。删除根证书并不是丢失一台笔记本电脑的捷径。在一台机器上删除本地 VPN 配置文件,并不会改变任何网关接受什么。

如果该身份还要在第二个网关上通过验证,两者需要同样处理。吊销列表属于网关,而不属于订阅。

相关文章