# WatchGuard Firebox の IKEv2 プロファイルを macOS 26 に読み込ませる

2026-10-08

別拠点のネットワークに、手元の Mac から入りたくなりました。
別拠点のルーターは WatchGuard Firebox で、こちらに管理権限はありません。
Firebox には Mobile VPN with IKEv2 が設定されていて、接続用のユーザーアカウントを 1 つもらっています。

ところが、受け取った構成プロファイルを macOS 26 に読み込ませると、インストールの段階で失敗しました。
この記事では、その原因と、クライアント側だけで直す方法を書きます。

## macOS が IKEv2 プロファイルを拒否する

WatchGuard の IKEv2 では、Firebox の管理者が書き出したファイル一式に `.mobileconfig`（構成プロファイル）が入っていて、利用者はそれを macOS や iOS に読み込ませます。
受け取ったプロファイルをダブルクリックしてインストールしようとしたところ、macOS 26 は次のエラーだけを出して失敗しました。

```
"VPN サービス" ペイロードをインストールできませんでした。VPN サービスを作成できませんでした。
```

GUI はエラーをこの一文に丸めてしまいます。
原因を知るには、インストールを試みた直後にシステムログを直接見ます。

```sh
sudo log show --last 5m --info --debug \
  --predicate 'process == "mdmclient" OR process == "neagent"'
```

`mdmclient` と `neagent` の行に、丸められる前の理由が出ています。
ログには接続先やユーザー名も含まれるので、人に見せるときは伏せてから渡します。

```
Failed to save configuration ... because it is invalid:
Invalid integrity algorithm (SHA1-96), valid values are SHA2-256, SHA2-384, and SHA2-512
```

インストールに失敗した原因は証明書ではなく、IPsec の完全性アルゴリズム（integrity algorithm）でした。
手元の Firebox が書き出したプロファイルは、Child SA（Phase 2）の完全性アルゴリズムに SHA1-96 を指定していました。
macOS 26 では、IKEv2 の構成プロファイルの Child SA に SHA1-96 を指定できなくなり、SHA2-256・SHA2-384・SHA2-512 のいずれかが必要です[^apple-ikev2]。
IKE SA（Phase 1）のほうは SHA2-256 だったので、このプロファイルで macOS 26 に拒否された値は Child SA の SHA1-96 だけでした。

[^apple-ikev2]: Apple の Device Management の仕様で、`ChildSecurityAssociationParameters` の `IntegrityAlgorithm` に SHA1-96 と SHA1-160 は macOS 26 以降で使えないとされています。

直すには、プロファイルの SHA1-96 を SHA2-256 に書き換えてから読み込ませます。
置換する前に、`grep -n SHA1-96 profile.mobileconfig` で出現箇所が Child SA の 1 箇所だけであることを確かめておきます。

```sh
sed -i.bak 's|<string>SHA1-96</string>|<string>SHA2-256</string>|g' profile.mobileconfig
plutil -lint profile.mobileconfig
```

`plutil -lint` で、plist の構文が壊れていないことを確かめます（VPN の設定値の妥当性までは調べません）。
書き換え前の `profile.mobileconfig.bak` には接続先などの構成情報が入っているので、動作を確かめたら消しておきます。
次に、インストールに失敗した古いプロファイルを「ダウンロード済みのプロファイル」から削除し、書き換えた側を開き直します。
インストールが通れば、システム設定のネットワークに VPN が現れ、ユーザー名とパスワード（EAP-MSCHAPv2）を入れて接続できます。

Firebox 側がセットアップウィザードの既定値のままなら、サーバー側（Firebox）の設定を変える必要はありません。
Mobile VPN with IKEv2 を有効にしたときの既定の Phase 2 proposal は、ESP-AES-SHA1 と ESP-AES256-SHA256 の 2 本です[^wg-phase2]。
プロファイルの暗号方式（AES-256）はそのままで、Child SA の完全性アルゴリズムだけを SHA2-256 にすれば、2 本目の `ESP-AES256-SHA256` と一致します。
Firebox に管理権限がなくても、クライアント側の 1 行の書き換えだけで接続できるのはこのためです。

[^wg-phase2]: WatchGuard の IKEv2 セットアップウィザードを実行すると、Phase 2 proposal として ESP-AES-SHA1 と ESP-AES256-SHA256 が既定で入り、PFS は無効になります。管理者が proposal を変えていれば、この限りではありません。

プロファイルを取り直したときは、まず `grep -nE 'SHA1-(96|160)' profile.mobileconfig` を実行し、何か出力されたら同じ書き換えをします。
