使用自签证书

对于个人开发者,如果没有企业证书,也不想使用ApiCatcher提供的证书,您可以借助ApiCatcher的企业证书功能导入自己的证书。

一个案例解释如何使用

准备工作

环境:局域网 设备: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 发到手机(隔空投送、邮件、小网页下载等)。
  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(所有步骤)替换成域名就可以使用域名访问了。