# Installation du certificat racine du système

Cette interface est utilisée pour installer un certificat racine au niveau du système sur votre appareil Android, et elle est compatible avec toutes les versions d'Android.
Vous pourriez être confus quant à la différence entre le certificat racine mentionné ici et le certificat de service de FIRERPA. Le certificat de service de FIRERPA est utilisé pour chiffrer le trafic de communication entre FIRERPA et vous. Le certificat racine dont il est question ici fait référence au certificat racine intégré au système Android, qui est utilisé pour le chiffrement et le déchiffrement du trafic HTTPS et autre trafic connexe dans le système. Si vous êtes familier avec la capture de paquets (packet sniffing), le certificat racine ici est le certificat utilisé pour cette capture. Vous pouvez utiliser l'interface de ce chapitre ainsi que l'interface de configuration du proxy pour réaliser une interception de type homme du milieu (Man-in-the-Middle). Bien sûr, vous pouvez également choisir d'utiliser notre script encapsulé `startmitm.py`. Nous ne faisons ici que vous présenter l'implémentation de cette fonctionnalité de base.

## Préparation

Veuillez vous assurer que vous avez préparé le certificat fourni par Fiddler ou mitmproxy. Pour mitmproxy, le certificat que vous devez utiliser est `mitmproxy-ca-cert.pem`. Pour Fiddler, il peut être au format CRT. Vous devriez pouvoir exporter ce fichier depuis Fiddler. Fournissez simplement le chemin de ce fichier en tant que paramètre, sans vous soucier des problèmes de conversion de nom de fichier. Pour éviter de perdre du temps inutilement, nous recommandons d'utiliser `mitmproxy`. Si vous utilisez `Charles` ou un autre outil similaire, nous ne pouvons pas garantir que vous réussirez la configuration du premier coup, car les options de configuration de ces applications sont plus complexes et vous pourriez avoir besoin de comprendre divers concepts pour configurer correctement l'interception HTTPS (homme du milieu). Si vous insistez pour l'utiliser, il est conseillé d'utiliser le protocole proxy SOCKS5 de Charles.


## Installation du certificat racine

Une fois que vous avez le chemin du fichier de certificat que vous avez préparé, vous pouvez directement utiliser l'interface suivante pour installer le certificat racine de mitmproxy. Une fois installé, il sera permanent et n'aura pas besoin d'être réinstallé.


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

## Désinstallation du certificat racine

Vous pouvez appeler le code suivant pour supprimer le certificat racine personnalisé installé sur l'appareil. Nous ne recommandons pas de l'installer et de le désinstaller fréquemment. Si ce n'est pas nécessaire, vous pouvez éviter d'appeler cette interface.

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

Le code complet est le suivant (nous ne répéterons pas l'instanciation de l'objet de l'appareil `d`)

```python
import os

# Concaténer le chemin du fichier mitmproxy-ca-cert.pem
HOME = os.path.expanduser("~")
cert_path = os.path.join(HOME, ".mitmproxy", "mitmproxy-ca-cert.pem")
# En prenant mitmproxy comme exemple, utilisez le code suivant pour installer le certificat de l'homme du milieu
d.install_ca_certificate(cert_path)

# Utilisez le code suivant pour désinstaller le certificat
d.uninstall_ca_certificate(cert_path)
```

Cette interface d'installation et de désinstallation de certificat est générique. Vous pouvez l'utiliser pour installer n'importe quel certificat requis par une application. Vous pouvez également l'utiliser pour installer les certificats requis par Fiddler/Charles, il suffit de fournir le chemin du fichier. Si votre objectif est la capture de paquets, vous pouvez ensuite vous référer au chapitre `Configuration du proxy` pour définir le proxy à l'adresse d'écoute de l'application d'interception (homme du milieu).