マシン証明書を使って PowerShell で IKEv2 VPN を構築する
証明書の配置、ルートプレフィックス、EAP 資格情報は、IKEv2 スクリプトが失敗する場所です。PowerShell でトンネルを構築し、各段階を個別に検証してください。
Windows には PowerShell が端から端まで制御できる IKEv2 クライアントが含まれているため、動作するトンネルに GUI もサードパーティ製ソフトウェアも要りません。失敗のほとんどは三つの場所から来ます。証明書がどこに置かれたか、ルートプレフィックスをどう書いたか、選択した EAP 方式が何を期待しているかです。この順に処理してください。それぞれ次の段階が始まる前に確認でき、後から出るエラーが前のエラーを覆い隠すからです。
マシン証明書のトンネルは、誰かがサインインする前に開始するために存在します。そのため識別情報は通常、ユーザーのストアではなくコンピューターのストアに置く必要があります。
まず証明書、次にトンネル
重要なインポートは二つです。クライアント識別情報は Import-PfxCertificate で Cert:\LocalMachine\My に入り、発行元 CA は Import-Certificate で Cert:\LocalMachine\Root に入ります。リーフ証明書だけではどの連鎖も証明できないため、二つ目のインポートを飛ばすと検証は拠り所を失います。存在だけでなく、秘密キーが添付され、コンピューター アカウントに読み取りが許可されている必要があります。Get-ChildItem Cert:\LocalMachine\My は何が届いたかを一覧します。ほぼ同じサブジェクトはよくあるため、サブジェクトではなく拇印を比較してください。
展開する前に拡張キー使用法を確認してください。IKEv2 マシン識別情報には通常クライアント認証が必要で、相手側はそれに署名した CA を信頼している必要があります。ユーザーのストアにある識別情報は、コンピューター コンテキストの接続には存在しないのと同じです。
プロファイルとそのルートを作成する
Add-VpnConnection -Name "Office IKEv2" -ServerAddress vpn.example.com -TunnelType Ikev2 -EncryptionLevel Required -AuthenticationMethod MachineCertificate -AllUserConnection がプロファイルを書き込みます。-AllUserConnection スイッチはそれをグローバル電話帳に公開し、共有またはサービス管理のマシンに適しています。単一ユーザーなら省略します。渡すアドレスは サーバーの証明書にある DNS 名と一致していなければなりません、そうでなければトンネルが確立した後に失敗が現れます。続いて Add-VpnConnectionRoute でプレフィックスを一つずつ追加し、設計に本当に必要なものだけを加えます。
IPv6 には癖があります。Windows は ::/0 を VPN ルートとして拒否するため、::/1 と 8000::/1 を合わせて同じアドレス空間を覆います。プレフィックスをルーティングしてもリモート ファイアウォールでは何も許可されないため、プレフィックス一覧とファイアウォール ポリシーは別々の文書のままです。
資格情報は認証方式に属する
マシン証明書のプロファイルはユーザーのシークレットをまったく必要としませんが、EAP-MSCHAPv2 のプロファイルは必要とします。後者の場合、VPNCredentialsHelper モジュールが Set-VpnConnectionUsernamePassword を提供し、それはプレーン テキストを求めます。$cred.Password は SecureString なので、先に GetNetworkCredential().Password で展開してください。モジュールはコマンドを実行するすべての場所にインストールし、作成したワークステーションだけに入れないでください。EAP-TLS やカスタム方式はこのコマンドレットをまったく使わず、代わりに EAP 構成 XML を取ります。
rasdial "Office IKEv2" はシェルから接続を開始します。イベント ログではなく前面で結果を見る最速の方法です。
接続済みトンネルが証明しないもの
接続済みの状態が覆うのは IKE 交換と認証の段階だけで、それ以上ではありません。DNS の挙動、プライベート ホストへの経路、リモート ファイアウォールはいずれもまだ証明されていません。外側へ向かって進めてください。トンネル アダプター、次にプライベート アドレスへのルート参照、次に使用を許可されているサービスです。最初に失敗する観察が調査すべき層を示します。
プロファイルを変更するときは、作り直す前に Remove-VpnConnection -Name "Office IKEv2" -Force で以前のものを削除してください。そうしないと、編集を経ても古い設定とルートが残ります。それでも接続しない場合は、プロファイルに記録された拇印をストアにある拇印と比較してください。Windows は、変更されていないサブジェクトのまま途中で置き換えられた識別情報への参照を保持することがあるからです。
拇印、EAP 方式、ルート一覧をプロファイルのそばに置いてください。これらが合わされば、後で起きる問題の大半を説明できます。