Возможно, он все еще помогает ОП или кому-то еще, спотыкаясь над этим вопросом: я хотел получить доступ к API нашей компании, использующему сертификат, выданный доверенной Сторонней организацией, через Samsung S7 (Android 8), подключенный к нашему серверу Blackberry.На самом устройстве было установлено необходимое свидетельство, но я все еще получал исключение Trust Failure, пока я не переключил HTTPS-реализацию, как OP сказал:
Щелкните правой кнопкой мыши на проекте Android -> Настройки -> Android-Параметры ->Advanced
Измените реализацию HTTPClient на Android, а реализацию SSL / TLS на Native TLS 1.2 +
Тогда я получил следующую ошибку:
java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
Так что, похоже, вынужно указать Android на собственные хранилища сертификатов.Для этого выполните следующие действия:
Создайте подкаталог xml в своем каталоге ресурсов
Внутри создайте файл network_security_config.xml со следующим содержимым
<?xml version="1.0" encoding="utf-8" ?>
<network-security-config>
<base-config>
<trust-anchors>
<!-- Trust preinstalled CAs -->
<certificates src="system" />
<!-- Additionally trust user added CAs -->
<certificates src="user" />
</trust-anchors>
</base-config>
</network-security-config>
Откройте AndroidManifest.xml и добавьте следующий атрибут в тег приложения
<application [...] android:networkSecurityConfig="@xml/network_security_config">
В моем случае после этого все работало без ошибок.