До Android KitKat вам необходимо выполнить рутирование вашего устройства для установки новых сертификатов.
От Android KitKat (4.0) до Nougat (7.0) это возможно и просто. Мне удалось установить сертификат Charles Web Debbuging Proxy на моем нерутированном устройстве и успешно прослушивать трафик SSL.
Выписка из http://wiki.cacert.org/FAQ/ImportRootCert
До версии Android 4.0 с версией Android Gingerbread & Froyo существовал единственный файл только для чтения (/system/etc/security/cacerts.bks), содержащий хранилище доверенных сертификатов со всеми доверенными сертификатами CA («системы»). по умолчанию на Android. Это можно использовать как для системных приложений, так и для всех приложений, разработанных с помощью Android SDK. Используйте эти инструкции по установке сертификатов CAcert на Android Gingerbread, Froyo, ...
Начиная с Android 4.0 (Android ICS / «Ice Cream Sandwich», Android 4.3 «Jelly Bean» и Android 4.4 «KitKat»), системные доверенные сертификаты находятся в системном разделе (только для чтения) в папке '/ system / etc / security / 'как отдельные файлы. Однако пользователи теперь могут легко добавлять свои собственные «пользовательские» сертификаты, которые будут храниться в /data/misc/keychain/certs-added'.
.
Системными сертификатами можно управлять на устройстве Android в разделе «Настройки» -> «Безопасность» -> «Сертификаты» -> «Система», тогда как доверенные сертификаты пользователей находятся в разделе «Пользователь». При использовании доверенных сертификатов пользователя Android заставит пользователя устройства Android принять дополнительные меры безопасности: использование PIN-кода, блокировки шаблона или пароля для разблокировки устройства является обязательным при использовании предоставленных пользователем сертификатов.
Установить сертификаты CAcert в качестве пользовательских доверенных сертификатов очень просто. Установка новых сертификатов как системных доверенных сертификатов требует больше работы (и требует корневого доступа), но имеет преимущество в том, что избегает требования блокировки экрана Android.
Начиная с Android N становится все труднее, см. Этот отрывок с веб-сайта Charles прокси :
Начиная с Android N, вам нужно добавить конфигурацию в ваше приложение, чтобы
пусть он доверяет SSL-сертификатам, сгенерированным Charles SSL Proxying.
Это означает, что вы можете использовать SSL Proxying только с приложениями, которые вы
управление.
Чтобы настроить приложение на доверие Чарльзу, вам нужно добавить
Файл конфигурации сетевой безопасности для вашего приложения. Этот файл может
переопределить систему по умолчанию, позволяя вашему приложению доверять установленному пользователю
Сертификаты CA (например, Сертификат Charles Root). Вы можете указать
что это применимо только в отладочных сборках вашего приложения, так что
производственные сборки используют профиль доверия по умолчанию.
Добавьте файл res / xml / network_security_config.xml в свое приложение:
<network-security-config>
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
Затем добавьте ссылку на этот файл в манифест вашего приложения следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<manifest>
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>