Android 7.1 и выше больше не позволяют использовать сертификаты, добавленные пользователем вручную, но если у вас есть телефон с правами суперпользователя, вы можете заставить его работать через ADB.
Android хранит свои системные сертификаты в /system/etc/security/cacerts/
. Если вы посмотрите на свое устройство, вы увидите, что сертификаты имеют хешированные имена, например. а1234b0d.0. Для перехвата трафика приложений вам необходимо узнать хеш вашего сертификата
openssl x509 -inform PEM -subject_hash_old -in mitmproxy-ca-cert.pem | head -1
Затем переименуйте свой сертификат соответственно
mv mitmproxy-ca-cert.pem <your_hash_value_in_here_without_carets>.0
И, наконец, переместите его туда, где находятся системные сертификаты вашего устройства. Однако для этого вам нужно сначала перемонтировать системный каталог, чтобы получить доступ для записи.
adb shell su -c "mount -o rw,remount,rw /system"
adb push your_certificate /sdcard/your_certificate
adb shell su -c "mv /sdcard/your_certificate /system/etc/security/cacerts/your_certificate"
adb shell su -c "chmod 644 /system/etc/security/cacerts/your_certificate"
adb reboot
Если это не сработает, я могу вспомнить (хотя и не источник), что читал об Android Nougat, а также не касался сертификатов, срок действия которых истекает более чем через 2 года. Сертификаты, созданные mitmproxy, должны быть в порядке. Однако Burpsuite или Fiddler мне не подошли.
person
Jogogoloboy
schedule
06.05.2020