фон
При използване на софтуер за улавяне на пакети (като пример Чарлз) за улавяне на https заявката на приложението, както Android, така и Charles са инсталирали сертификата правилно, но улавянето на пакети се проваля и се докладва грешка:
Клиентското SSL ръкостискане не успя: Възникна неизвестен проблем при обработката на сертификата (certificate_unknown)
Причина
След Android7.0, CA сертификатът, добавен в системата по подразбиране, не е доверен:
За да се осигури по-последователно и по-сигурно изживяване в цялата Android екосистема, започвайки с Android Nougat, съвместимите устройства се доверяват само на стандартизираните системни CA, поддържани в AOSP .
Линк към документацията:https://android-developers.googl ... ed-certificate.html
Това означава, че за приложения, базирани на SDK24 и по-високи, дори ако имате инсталиран сертификат от инструмента за улавяне на пакети на телефона си, няма да можете да улавяте https заявки.
решение
1. Официално решение (необходима е модификация на кода)
Официална документация:https://developer.android.google ... ecurity-config.html Подробна демонстрация:https://blog.csdn.net/mrxiagc/article/details/75329629
2. Инсталиране на сертификата на софтуера за улавяне на пакети като системен сертификат (изисква се ROOT)
Директория със системни сертификати: /system/etc/security/cacerts/
Конвенцията за именуване на всеки сертификат е следната:
<Certificate_Hash>. <Number> Името на файла е хеш стойност, докато суфиксът е число.
Името на файла може да се изчисли със следната команда:
Например, ако хеш стойността, изчислена от два сертификата, е една и съща, тогава номерът на суфикса на един сертификат може да бъде зададен на 0, а номерът на суфикса на другия сертификат на 1
Стъпки:
Използвайте горната команда, за да изчислите хеш стойността на сертификата на софтуера за улавяне на пакети, преименувайте го и копирайте в директорията със системни сертификати
В момента би трябвало да можете да видите новодобавения си сертификат в раздела System в раздел Настройки - > Security - > Encryption and Credentials - > Trusted Credentials
|