カスタム証明書の使用
エンタープライズ証明書をお持ちでない個人開発者や、ApiCatcher が提供するデフォルトの証明書を使用しない場合は、ApiCatcher のエンタープライズ証明書機能を使用して独自の証明書をインポートできます。
使用方法の例
準備
環境:ローカルエリアネットワーク(LAN) デバイス:Mac、iPhone Macにインストールするソフトウェア:OpenSSL
手順
- パソコンで以下を生成します:自己署名のルート CA + アクセス用のサーバー証明書(証明書 + 秘密鍵)。
- ルート CA を iPhone にインストールし、完全に信頼するように設定します(ApiCatcher のルート証明書をインストールする手順と同じです)。
- ローカルの HTTPS サービス で、このサーバー証明書を使用します。
- ApiCatcher の エンタープライズ証明書 - 証明書の追加 ページで、証明書 PEM + 秘密鍵 PEM をインポートし、ドメイン名には CONNECT に表示される Host を入力します(この例ではLAN IPを使用)。
- iPhone を 同じ Wi-Fi に接続し、ApiCatcher VPN をオンにします。
- Safari で
https://<あなたのIP>:8443にアクセスし、キャプチャ履歴で HTTPS が復号化されているか 確認します。
1. Mac での証明書の準備(OpenSSL)
作業ディレクトリを準備:
mkdir -p ~/apicatcher-enterprise-test && cd ~/apicatcher-enterprise-test
以下の 192.168.1.75 をご自身の Mac の LAN IP(システム設定 → ネットワークで確認可能)に変更してください。
# 自己署名ルート CA の作成
openssl req -x509 -newkey rsa:2048 -sha256 -days 3650 \
-keyout ca-key.pem -out ca-cert.pem -nodes \
-subj "/CN=ApiCatcher Local Test CA"
# サーバー証明書用の秘密鍵
openssl genrsa -out server-key.pem 2048
# SAN付きの設定(CNとIP.1を自身のIPに変更)
cat > server.cnf <<'EOF'
[req]
distinguished_name = dn
req_extensions = v3_req
prompt = no
[dn]
CN = 192.168.1.75
[v3_req]
subjectAltName = @alt_names
basicConstraints = CA:FALSE
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth
[alt_names]
IP.1 = 192.168.1.75
EOF
# CSR + CAを使用してサーバー証明書を発行
openssl req -new -key server-key.pem -out server.csr -config server.cnf
openssl x509 -req -in server.csr -CA ca-cert.pem -CAkey ca-key.pem \
-CAcreateserial -out server-cert.pem -days 825 -sha256 \
-extensions v3_req -extfile server.cnf
次のファイルが生成されます:
| ファイル | 用途 |
|---|---|
server-cert.pem | アプリの 証明書 PEM に貼り付け |
server-key.pem | アプリの 秘密鍵 PEM に貼り付け |
ca-cert.pem | iPhone に送信し、インストールして信頼する |
2. iPhone にルート CA をインストール
ca-cert.pemをスマホに送信します(AirDrop、メール、または簡易サーバーでダウンロードなど)。- 設定 → 一般 → VPNとデバイス管理 でプロファイルをインストールします。
- 設定 → 一般 → 情報 → 証明書信頼設定 に進み、このルート CA に対して 完全に信頼する をオンにします。
3. Mac で HTTPS サービスを起動
同じディレクトリ内で実行:
## OpenSSL 付属の https サーバーを使用
openssl s_server -accept 8443 -www \
-cert server-cert.pem -key server-key.pem
ターミナルは閉じずにそのままにしてください。
4. アプリ内でエンタープライズ証明書を設定
- まず、VPN キャプチャを 停止 します。
- 設定 → エンタープライズ証明書 → 証明書の追加 → PEM:
- 証明書:
server-cert.pemの全文 - 秘密鍵:
server-key.pemの全文
- 証明書:
- ドメインパターンに入力:
192.168.1.75(Safariのアドレスバーにある Host と完全に一致させる必要があります。ポート番号は含めません)。 - 保存後、VPNキャプチャを再開します。
5. iPhone からアクセス
Safari で開く:https://192.168.1.75:8443
(証明書のエラーが表示される場合は、ルート CA が「完全に信頼」されていること、およびアドレスが証明書のIPと一致していることを確認してください。)
ApiCatcher で記録を確認します:HTTPS コンテンツが復号化されているはずです(単なるトンネルではなく、少なくともリクエストのパスやメソッドなどが表示されます)。
6. よくある問題
| 現象 | 対処法 |
|---|---|
| 接続できない | ファイアウォールで 8443 を許可しているか確認;Mac と iPhone が同じネットワークにいるか。 |
| 復号化されない | ドメインが 正確に 192.168.1.75 であるか;インポート後にキャプチャを 再起動 したか。 |
| Safari で証明書エラー | ルートが信頼されていない、または SAN にアクセス中の IP が含まれていない。 |
7. ドメイン名でのアクセス
上記の例にある IP(すべての手順において)をドメイン名に置き換えるだけで、ドメインでのアクセスが可能になります。