До Android KitKat вам нужно получить root права на ваше устройство для установки новых сертификатов.
От 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 / безопасность / 'как отдельные файлы. Однако пользователи теперь могут легко добавлять свои собственные «пользовательские» сертификаты, которые будут храниться в «/ data / misc / keychain / certs-Added».
Системными сертификатами можно управлять на устройстве Android в разделе «Настройки» -> «Безопасность» -> «Сертификаты» -> «Система», тогда как доверенные сертификаты пользователей находятся в разделе «Пользователь». При использовании пользовательских доверенных сертификатов Android заставит пользователя устройства Android принять дополнительные меры безопасности: использование PIN-кода, блокировки шаблона или пароля для разблокировки устройства обязательно при использовании пользовательских сертификатов.
Установить сертификаты CAcert в качестве пользовательских доверенных сертификатов очень просто. Установка новых сертификатов как системных доверенных сертификатов требует больше работы (и требует корневого доступа), но имеет преимущество в том, что избегает требования блокировки экрана Android.
Начиная с Android N, становится все сложнее, посмотрите на этот фрагмент с сайта прокси Чарльза :
Начиная с 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>