使用自簽憑證
對於個人開發者,如果沒有企業憑證,也不想使用 ApiCatcher 提供的憑證,您可以藉助 ApiCatcher 的企業憑證功能匯入自己的憑證。
一個案例解釋如何使用
準備工作
環境:區域網路 (LAN) 設備:Mac、iPhone Mac上安裝軟體:OpenSSL
操作步驟
- 在電腦上產生:自建根 CA + 並簽發一張伺服器憑證(憑證 + 私鑰)。
- 將根 CA 安裝到 iPhone 並設為完全信任(和安裝 ApiCatcher 根憑證一樣)。
- 在您的本地 HTTPS 服務 中,使用這張伺服器憑證。
- 在 ApiCatcher 的 企業憑證-添加憑證頁面,匯入 憑證 PEM + 私鑰 PEM,域名填寫 CONNECT 中出現的那個 Host(案例使用區域網路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 的區域網路 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
- 把
ca-cert.pem發到手機(AirDrop、郵件、小網頁下載等)。 - 設定 → 一般 → VPN 與裝置管理 安裝描述檔。
- 設定 → 一般 → 關於本機 → 憑證信任設定 → 對該根 CA 開啟完全信任。
3. Mac 本機起一個 HTTPS 服務
仍在同一目錄:
## 使用 OpenSSL 提供的 https server
openssl s_server -accept 8443 -www \
-cert server-cert.pem -key server-key.pem
保持終端機不要關。
4. 在 App 裡設定企業憑證
- 先停止 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(所有步驟)替換成域名就可以使用域名訪問了。