Verwendung benutzerdefinierter Zertifikate

Für einzelne Entwickler, die kein Enterprise-Zertifikat besitzen und die von ApiCatcher bereitgestellten Zertifikate nicht verwenden möchten, können Sie die Enterprise-Zertifikatsfunktion von ApiCatcher nutzen, um Ihre eigenen Zertifikate zu importieren.

Ein Anwendungsfall zur Verwendung

Vorbereitung

Umgebung: Lokales Netzwerk (LAN) Geräte: Mac, iPhone Installierte Software auf dem Mac: OpenSSL

Schritte

  1. Generieren Sie auf Ihrem Computer: eine selbstsignierte Root-CA + ein Serverzertifikat für den Zugriff (Zertifikat + privater Schlüssel).
  2. Installieren Sie die Root-CA auf Ihrem iPhone und vertrauen Sie ihr vollständig (ähnlich wie bei der Installation des ApiCatcher-Root-Zertifikats).
  3. Verwenden Sie dieses Serverzertifikat in Ihrem lokalen HTTPS-Dienst.
  4. Importieren Sie in ApiCatcher auf der Seite Enterprise-Zertifikat - Zertifikat hinzufügen das Zertifikat (PEM) + den privaten Schlüssel (PEM) und geben Sie im Feld „Domäne“ den Host aus der CONNECT-Anfrage ein (in diesem Beispiel wird eine LAN-IP verwendet).
  5. Verbinden Sie Ihr iPhone mit demselben WLAN und aktivieren Sie das ApiCatcher-VPN.
  6. Besuchen Sie https://<Ihre IP>:8443 in Safari und überprüfen Sie die Aufzeichnungsprotokolle, um zu sehen, ob der HTTPS-Verkehr entschlüsselt wird.

1. Zertifikate auf dem Mac vorbereiten (OpenSSL)

Arbeitsverzeichnis:

mkdir -p ~/apicatcher-enterprise-test && cd ~/apicatcher-enterprise-test

Ersetzen Sie unten 192.168.1.75 durch die LAN-IP Ihres Macs (zu finden unter Systemeinstellungen → Netzwerk).


# Selbstsignierte Root-CA erstellen
openssl req -x509 -newkey rsa:2048 -sha256 -days 3650 \
  -keyout ca-key.pem -out ca-cert.pem -nodes \
  -subj "/CN=ApiCatcher Local Test CA"

# Privater Schlüssel für das Serverzertifikat
openssl genrsa -out server-key.pem 2048

# Konfiguration mit SAN (CN und IP.1 an Ihre IP anpassen)
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 + Serverzertifikat mit CA ausstellen
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

Sie erhalten Folgendes:

DateiZweck
server-cert.pemIn der App bei Zertifikat (PEM) einfügen
server-key.pemIn der App bei Privater Schlüssel (PEM) einfügen
ca-cert.pemAn das iPhone senden, um es zu installieren und zu vertrauen

2. Root-CA auf dem iPhone installieren

  1. Senden Sie ca-cert.pem an Ihr Telefon (über AirDrop, E-Mail oder Download von einem lokalen Webserver).
  2. Installieren Sie das Profil unter Einstellungen → Allgemein → VPN und Geräteverwaltung.
  3. Gehen Sie zu Einstellungen → Allgemein → Info → Zertifikatsvertrauenseinstellungen und aktivieren Sie das volle Vertrauen für diese Root-CA.

3. Einen lokalen HTTPS-Dienst auf dem Mac starten

Im selben Verzeichnis:

## Den integrierten https-Server von OpenSSL verwenden
openssl s_server -accept 8443 -www \
  -cert server-cert.pem -key server-key.pem

Lassen Sie das Terminal laufen.

4. Enterprise-Zertifikat in der App konfigurieren

  1. Stoppen Sie zuerst die VPN-Aufzeichnung.
  2. Einstellungen → Enterprise-Zertifikat → Zertifikat hinzufügen → PEM:
    • Zertifikat: Der vollständige Inhalt von server-cert.pem
    • Privater Schlüssel: Der vollständige Inhalt von server-key.pem
  3. Domänenmuster: Geben Sie 192.168.1.75 ein (muss exakt mit dem Host in der Adressleiste von Safari übereinstimmen, ohne Port).
  4. Speichern Sie und starten Sie die VPN-Aufzeichnung neu.

5. Zugriff vom iPhone

In Safari öffnen: https://192.168.1.75:8443
(Wenn eine Zertifikatswarnung angezeigt wird, stellen Sie sicher, dass der Root-CA "vollständig vertraut" wird und die Adresse mit der IP im Zertifikat übereinstimmt.)

Überprüfen Sie den Eintrag in ApiCatcher: HTTPS-Inhalte sollten entschlüsselt sein (zumindest Anzeige von Pfad/Methode der Anfrage anstelle eines reinen Tunnels).

6. Häufige Probleme

ProblemLösung
Keine VerbindungStellen Sie sicher, dass die Firewall 8443 zulässt; Mac und iPhone befinden sich im selben Subnetz.
Immer noch nicht entschlüsseltÜberprüfen Sie, ob die Domäne genau 192.168.1.75 lautet; Haben Sie die Aufzeichnung nach dem Import neu gestartet?
Safari-ZertifikatsfehlerRoot-CA wird nicht vertraut oder angeforderte IP fehlt im SAN.

7. Zugriff über einen Domänennamen

Sie müssen lediglich die IP im Beispiel (in allen Schritten) durch Ihren Domänennamen ersetzen, um über die Domäne darauf zuzugreifen.