Приложение перехвата https traffi c на устройстве Android - PullRequest
0 голосов
/ 11 апреля 2020

Я хотел бы просмотреть https traffi c из своего приложения.

Я установил fiddler на свой p c, загрузил сертификат на устройство и могу просматривать https traffi c из браузер.

Но когда я пробую свое приложение - я получаю javax. net .ssl.sslhandshakeexception java .secirity.cert.CertPathVelidatorException Не найден доверительный якорь для пути сертификации.

Я считаю, что настройка фиддлера верна, поскольку я могу просматривать https traffi c из браузера телефона.

Любая помощь?

или другие способы сделать то же самое.

Я знаю из запуска java приложений на рабочем столе - вы можете указать прокси ip + порт для java vm - возможно, что-то подобное нужно сделать на устройстве.

Мне удалось настроить эмулятор для http traffi c - но https не работает - я также установил сертификат эмулятора на эмуляторе. Использование Android 29.

1 Ответ

0 голосов
/ 12 апреля 2020

Для установки сертификата в системное хранилище доверенных сертификатов на устройстве под управлением Android 6 или более поздней версии требуются разрешения root для правильной работы во всех приложениях.

Без разрешений root вы можете установить сертификат только в «пользовательское» хранилище доверия, которое игнорируется приложениями, для которых targetSdkVersion имеет значение 23 и выше.

К счастью, в В вашем случае речь идет о вашем собственном приложении, которое открывает дверь для перехвата трафика c с помощью Fiddler без root разрешений:

В вашем приложении вы должны предоставить файл конфигурации Network Security .

В этом файле у вас есть две опции:

Явно доверяет хранилищу доверия пользователей:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config>
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </base-config>
</network-security-config>

Включите ваш Fiddler root Сертификат CA

Вы можете включить сертификат Fiddler root CA в свое приложение и определить, что ему следует доверять в отладочных сборках (добавьте файл сертификата Fiddler root CA в качестве необработанного ресурса debug_fiddler_root):

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <debug-overrides>
        <trust-anchors>
            <certificates src="@raw/debug_fiddler_root"/>
        </trust-anchors>
    </debug-overrides>
</network-security-config>
...