使用自簽憑證

對於個人開發者,如果沒有企業憑證,也不想使用 ApiCatcher 提供的憑證,您可以藉助 ApiCatcher 的企業憑證功能匯入自己的憑證。

一個案例解釋如何使用

準備工作

環境:區域網路 (LAN) 設備:Mac、iPhone Mac上安裝軟體:OpenSSL

操作步驟

  1. 在電腦上產生:自建根 CA + 並簽發一張伺服器憑證(憑證 + 私鑰)。
  2. 根 CA 安裝到 iPhone 並設為完全信任(和安裝 ApiCatcher 根憑證一樣)。
  3. 在您的本地 HTTPS 服務 中,使用這張伺服器憑證。
  4. 在 ApiCatcher 的 企業憑證-添加憑證頁面,匯入 憑證 PEM + 私鑰 PEM,域名填寫 CONNECT 中出現的那個 Host(案例使用區域網路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 的區域網路 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 的設定(按你的 IP 改 CN 與 IP.1)
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貼進 App 憑證 PEM
server-key.pem貼進 App 私鑰 PEM
ca-cert.pem發給 iPhone 安裝並信任

2. 根 CA 安裝到 iPhone

  1. ca-cert.pem 發到手機(AirDrop、郵件、小網頁下載等)。
  2. 設定 → 一般 → VPN 與裝置管理 安裝描述檔。
  3. 設定 → 一般 → 關於本機 → 憑證信任設定 → 對該根 CA 開啟完全信任

3. Mac 本機起一個 HTTPS 服務

仍在同一目錄:

## 使用 OpenSSL 提供的 https server
openssl s_server -accept 8443 -www \
  -cert server-cert.pem -key server-key.pem

保持終端機不要關。

4. 在 App 裡設定企業憑證

  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(所有步驟)替換成域名就可以使用域名訪問了。