Основываясь на цепочке комментариев по устранению неполадок для OP, ответ состоит в том, чтобы установить только сертификат CA прокси-сервера как доверенный, а не его сертификат + закрытый ключ.
Проблема была вызвана двумя факторами:
Установка не только сертификата CA прокси-сервера MiTM, но и его закрытого ключа (что позволяет приложениям VPN на устройстве расшифровывать сетевой трафик MiTM из других приложений). Вам не нужен закрытый ключ прокси MiTM на устройстве.
Android Nougat изменяет поведение Settings -> Security -> Install from storage
потока для файлов, которые содержат закрытый ключ в дополнение к сертификату (-ам). Это изменение поведения разоблачило указанную выше проблему.
До Nougat Settings -> Security -> Install from storage
поток для файлов, содержащих закрытый ключ в дополнение к сертификатам, ошибочно устанавливал сертификаты как доверенные для аутентификации сервера (например, HTTPS, TLS, что обеспечивало успешную работу вашего MiTM), в дополнение к правильной установке в качестве клиентских сертификатов, используемых для аутентификация этого устройства Android на серверах. В Nougat ошибка была исправлена, и эти сертификаты больше не устанавливаются как доверенные для аутентификации сервера. Это не позволяет учетным данным для аутентификации клиента влиять (ослаблять) безопасность соединений с серверами. В вашем сценарии это препятствует успешной работе вашего MiTM.
Что усложняет ситуацию, так это то, что Settings -> Security -> Install from storage
не предоставляет пользователю явного способа указать, устанавливают ли они учетные данные аутентификации клиента (закрытый ключ + цепочка сертификатов) или якорь доверия аутентификации сервера (только сертификат CA - закрытый ключ не требуется) . В результате Settings -> Security -> Install from storage
поток догадывается, имеет ли он дело с учетными данными аутентификации клиента / пользователя или якорем доверия аутентификации сервера, предполагая, что, если указан закрытый ключ, он должен быть учетными данными аутентификации клиента / пользователя. В вашем случае неправильно предполагалось, что вы устанавливаете учетные данные аутентификации клиента / пользователя, а не якорь доверия аутентификации сервера.
PS Что касается конфигурации сетевой безопасности, вам, вероятно, следует настроить приложение так, чтобы оно также доверяло "системным" якорям доверия в режиме отладки (раздел отладки-переопределения). В противном случае отладочные сборки приложения не будут работать, если соединения не будут установлены через MiTM прокси-сервером, сертификат CA которого установлен как доверенный на устройстве Android.
user
в<base-config>
и посмотреть, изменится ли это. Этого не должно быть, но нужно всего лишь мгновение, чтобы попробовать.