Установка MITM-сертификата

В этой главе рассказывается, как установить системный корневой сертификат в вашей системе Android. Этот способ совместим со всеми версиями Android. Вы можете использовать интерфейсы из этой главы вместе с интерфейсами из раздела Настройка прокси для перехвата HTTPS-трафика. Конечно, вы также можете воспользоваться нашим готовым скриптом startmitm.py. Здесь же мы лишь рассказываем, как использовать эту возможность.

Подготовка

Убедитесь, что у вас уже есть сертификат, предоставленный Fiddler или mitmproxy. Для mitmproxy следует использовать сертификат mitmproxy-ca-cert.pem. Для Fiddler это может быть файл формата crt — вы можете экспортировать его в Fiddler и просто передать путь к файлу в качестве параметра, не заботясь об имени файла или преобразовании формата. Чтобы не тратить время напрасно, здесь рекомендуется использовать mitmproxy. Если вы используете Charles или подобные инструменты, мы не можем гарантировать, что у вас получится настроить всё с первого раза, поскольку такие приложения имеют сложную конфигурацию, и вам, возможно, потребуется разбираться в различных типах прокси, чтобы правильно настроить HTTPS-перехват. Если вы всё же хотите использовать именно Charles, рекомендуется использовать SOCKS5 в качестве протокола прокси.

Установка корневого сертификата

Устанавливает системный корневой сертификат для MITM. cert_path — путь к файлу сертификата. Установка выполняется один раз и сохраняется навсегда, повторная установка после перезагрузки не требуется.

d.install_ca_certificate(cert_path)

Подсказка

Интерфейсы установки и удаления сертификатов универсальны: с их помощью можно установить сертификат, который требует любое приложение, а также сертификат, предоставленный Fiddler/Charles. Достаточно указать путь к файлу.

Удаление корневого сертификата

Удаляет пользовательский корневой сертификат, установленный на устройстве. Не рекомендуется часто устанавливать и удалять сертификаты.

d.uninstall_ca_certificate(cert_path)

Полный пример кода для установки системного MITM-сертификата mitmproxy:

import os

# Формируем путь к файлу mitmproxy-ca-cert.pem
HOME = os.path.expanduser("~")
cert_path = os.path.join(HOME, ".mitmproxy", "mitmproxy-ca-cert.pem")
# На примере mitmproxy используем следующий код для установки MITM-сертификата
d.install_ca_certificate(cert_path)

# Используем следующий код для удаления сертификата
d.uninstall_ca_certificate(cert_path)