# System-Stammzertifikat installieren

Diese Schnittstelle wird verwendet, um ein Stammzertifikat auf Systemebene in Ihrem Android-System zu installieren und ist mit allen Android-Versionen kompatibel.
Es könnte zu Verwirrung kommen, was das hier erwähnte Stammzertifikat und das FIRERPA-Dienstzertifikat sind. Das FIRERPA-Dienstzertifikat wird verwendet, um den Kommunikationsverkehr zwischen FIRERPA und Ihnen zu verschlüsseln. Das hier erwähnte Stammzertifikat bezieht sich auf das im Android-System integrierte Stammzertifikat, das für die Ver- und Entschlüsselung von HTTPS- und ähnlichem Datenverkehr im System verwendet wird. Wenn Sie mit dem Abfangen von Paketen (Packet Sniffing) vertraut sind, ist das hier erwähnte Stammzertifikat das Zertifikat, das für das Sniffing verwendet wird. Sie können die Schnittstelle in diesem Kapitel zusammen mit der Schnittstelle zum Einstellen des Proxys verwenden, um Man-in-the-Middle-Angriffe (Packet Sniffing) durchzuführen. Natürlich können Sie auch unser gekapseltes Skript `startmitm.py` verwenden. Wir möchten Ihnen hier nur die grundlegende Implementierung dieser Funktion vorstellen.

## Vorbereitung

Bitte stellen Sie sicher, dass Sie das Zertifikat von Fiddler oder mitmproxy bereit haben. Für mitmproxy sollten Sie das Zertifikat `mitmproxy-ca-cert.pem` verwenden. Für Fiddler ist es möglicherweise im CRT-Format. Sie sollten diese Datei aus Fiddler exportieren können. Geben Sie einfach den Dateipfad als Parameter an, ohne sich um Dateinamenkonvertierungen kümmern zu müssen. Um unnötige Zeitverschwendung zu vermeiden, empfehlen wir hier die Verwendung von `mitmproxy`. Wenn Sie `Charles` oder ähnliche Tools verwenden, können wir nicht garantieren, dass Sie die Einrichtung auf Anhieb abschließen können, da die Konfiguration solcher Anwendungen komplexer ist und Sie möglicherweise verschiedene Konzepte verstehen müssen, um einen HTTPS-Man-in-the-Middle-Proxy korrekt zu konfigurieren. Wenn Sie es dennoch verwenden müssen, wird empfohlen, das SOCKS5-Protokoll von Charles als Proxy-Protokoll zu verwenden.


## Stammzertifikat installieren

Sobald Sie den Pfad zu Ihrer vorbereiteten Zertifikatsdatei haben, können Sie die folgende Schnittstelle direkt verwenden, um das Stammzertifikat von mitmproxy zu installieren. Nach einer einmaligen Installation bleibt es dauerhaft bestehen und muss nicht erneut installiert werden.


```python
d.install_ca_certificate(cert_path)
```

## Stammzertifikat deinstallieren

Sie können den folgenden Code aufrufen, um das auf dem Gerät installierte benutzerdefinierte Stammzertifikat zu entfernen. Wir empfehlen nicht, es häufig zu installieren und zu deinstallieren. Wenn es nicht notwendig ist, muss diese Schnittstelle nicht aufgerufen werden.

```python
d.uninstall_ca_certificate(cert_path)
```

Der vollständige Code lautet wie folgt (wir instanziieren die Geräteinstanz `d` nicht erneut):

```python
import os

# Pfad zur Datei mitmproxy-ca-cert.pem zusammensetzen
HOME = os.path.expanduser("~")
cert_path = os.path.join(HOME, ".mitmproxy", "mitmproxy-ca-cert.pem")
# Am Beispiel von mitmproxy, verwenden Sie den folgenden Code, um das Man-in-the-Middle-Zertifikat zu installieren
d.install_ca_certificate(cert_path)

# Verwenden Sie den folgenden Code, um das Zertifikat zu deinstallieren
d.uninstall_ca_certificate(cert_path)
```

Diese Schnittstelle zum Installieren und Deinstallieren von Zertifikaten ist universell. Sie können sie verwenden, um jedes Zertifikat zu installieren, das von einer Anwendung verlangt wird. Sie können sie ebenfalls verwenden, um die von Fiddler/Charles geforderten Zertifikate zu installieren; Sie müssen lediglich den Dateipfad angeben. Wenn Sie Pakete abfangen möchten, können Sie anschließend das Kapitel `Proxy einstellen` konsultieren und den Proxy auf die Adresse einstellen, auf der die Man-in-the-Middle-Anwendung lauscht.