Azure Point-to-Site のクライアント証明書を失効させる方法
ルートを削除するのではなく、クライアント一つの拇印をゲートウェイの失効リストに追加します。その後、拒否されたクライアントと正常なピアを二つのテストで証明します。
Azure Point-to-Site のクライアントを一つ失効させるとは、その拇印をゲートウェイの失効リストに追加することです。信頼されたルートを削除することではありません。ルートは、これまでに発行したすべてのクライアント証明書の発行元であり、削除すると影響範囲がはるかに大きい別の操作になります。ここでの失効の単位は単一の証明書です。
手順 1: 対象の証明書を特定する
表示名ではなく証明書レコードから始めます。Azure には自分で入力したフレンドリ名が表示されますが、そのラベルはサブジェクトや発行先のデバイスと一致している必要はありません。
失効の前にもう一つ確認してください。それは、その証明書を提示するデバイスがいくつあるかであり、複数のノート PC が同じ 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: すでに確立しているセッション
文書化された結果は新しい接続に関するものです。リストが保存された瞬間に既存のトンネルがすべて切断されるという約束にまで広げないでください。即時の削除が重要なら、展開した構成が実際に提供する制御を使用し、推測するのではなく特定のセッションを確認してください。
これは、両者が異なる場所で失敗し異なる証拠を残すため、認証とは別にテストしてください。
ロールバックと避けるべき近道
ロールバックとは、失効リストから拇印を削除し、同じ更新が完了するのを待つことです。間違ったエントリを失効させた場合は安全ですが、証明書が本当に侵害されている場合は危険なので、まずどちらのケースかを判断してください。信頼されたルートを削除することは、失われたノート PC 一台の近道ではありません。一台のマシンでローカル VPN プロファイルを削除しても、どのゲートウェイが受け入れるかは変わりません。
ID が二つ目のゲートウェイでも認証される場合、両方に同じ対処が必要です。失効リストはサブスクリプションではなくゲートウェイに属します。