okhttp - HTTP FAILED: javax.net.ssl.SSLPeerUnverifiedException: Неуспешно намиране на надежден сертификат, който е подписан Сертификат:

Здравейте, получавам това изключение всеки път, когато извиквам конкретна Rest крайна точка, но съм заседнал на javax.net.ssl.SSLPeerUnverifiedException, получавам това изключение само в API ниво 21 (Android 5.0).

ние също внедряваме в нашето приложение персонализиран мениджър на доверие за http клиент

fun OkHttpClient.Builder.ignoreAllSSLErrors(): OkHttpClient.Builder {
    val naiveTrustManager = object : X509TrustManager {
        override fun getAcceptedIssuers(): Array<X509Certificate> = arrayOf()
        override fun checkClientTrusted(certs: Array<X509Certificate>, authType: String) = Unit
        override fun checkServerTrusted(certs: Array<X509Certificate>, authType: String) = Unit
    }

    val insecureSocketFactory = SSLContext.getInstance("TLSv1.2").apply {
        val trustAllCerts = arrayOf<TrustManager>(naiveTrustManager)
        init(null, trustAllCerts, SecureRandom())
    }.socketFactory

    sslSocketFactory(insecureSocketFactory, naiveTrustManager)
    hostnameVerifier(HostnameVerifier { _, _ -> true })
    return this
}

и това е stackTrace на изключението:

D/OkHttp: <-- HTTP FAILED: javax.net.ssl.SSLPeerUnverifiedException: Failed to find a trusted cert that signed Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
                13:ea:28:70:5b:f4:ec:ed:0c:36:63:09:80:61:43:36
        Signature Algorithm: sha384WithRSAEncryption
            Issuer: C=SE, O=AddTrust AB, OU=AddTrust External TTP Network, CN=AddTrust External CA Root
            Validity
                Not Before: May 30 10:48:38 2000 GMT
                Not After : May 30 10:48:38 2020 GMT
            Subject: C=US, ST=New Jersey, L=Jersey City, O=The USERTRUST Network, CN=USERTrust RSA Certification Authority

Мога да добавя повече подробности, ако е необходимо, благодаря


person Badr At    schedule 13.10.2020    source източник


Отговори (1)


Това е така, защото CA сертификатът е изтекъл на по-стари устройства. Вижте Как да се доверите на SSL сертификатите с кръстосано подписан root изтекъл на android ‹= 5

Но не е ясно защо несигурните ви настройки не работят. Не сте предоставили използваема репродукция, така че е трудно да направите нещо повече от това да предположите друго.

person Yuri Schimke    schedule 13.10.2020