カスタム証明書の使用

エンタープライズ証明書をお持ちでない個人開発者や、ApiCatcher が提供するデフォルトの証明書を使用しない場合は、ApiCatcher のエンタープライズ証明書機能を使用して独自の証明書をインポートできます。

使用方法の例

準備

環境:ローカルエリアネットワーク(LAN) デバイス:Mac、iPhone Macにインストールするソフトウェア:OpenSSL

手順

  1. パソコンで以下を生成します:自己署名のルート CA + アクセス用のサーバー証明書(証明書 + 秘密鍵)。
  2. ルート CA を iPhone にインストールし、完全に信頼するように設定します(ApiCatcher のルート証明書をインストールする手順と同じです)。
  3. ローカルの HTTPS サービス で、このサーバー証明書を使用します。
  4. ApiCatcher の エンタープライズ証明書 - 証明書の追加 ページで、証明書 PEM + 秘密鍵 PEM をインポートし、ドメイン名には CONNECT に表示される Host を入力します(この例ではLAN IPを使用)。
  5. iPhone を 同じ Wi-Fi に接続し、ApiCatcher VPN をオンにします。
  6. 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.pemiPhone に送信し、インストールして信頼する

2. iPhone にルート CA をインストール

  1. ca-cert.pem をスマホに送信します(AirDrop、メール、または簡易サーバーでダウンロードなど)。
  2. 設定 → 一般 → VPNとデバイス管理 でプロファイルをインストールします。
  3. 設定 → 一般 → 情報 → 証明書信頼設定 に進み、このルート CA に対して 完全に信頼する をオンにします。

3. Mac で HTTPS サービスを起動

同じディレクトリ内で実行:

## OpenSSL 付属の https サーバーを使用
openssl s_server -accept 8443 -www \
  -cert server-cert.pem -key server-key.pem

ターミナルは閉じずにそのままにしてください。

4. アプリ内でエンタープライズ証明書を設定

  1. まず、VPN キャプチャを 停止 します。
  2. 設定 → エンタープライズ証明書 → 証明書の追加 → PEM
    • 証明書:server-cert.pem の全文
    • 秘密鍵:server-key.pem の全文
  3. ドメインパターンに入力:192.168.1.75(Safariのアドレスバーにある Host と完全に一致させる必要があります。ポート番号は含めません)。
  4. 保存後、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(すべての手順において)をドメイン名に置き換えるだけで、ドメインでのアクセスが可能になります。