SSLHandshakeException: CertPathValidatorException: доверенная привязка для пути сертификации не найдена. с действующим сертификатом - PullRequest
0 голосов
/ 15 февраля 2020

У меня есть приложение android, которое использует API. Базовый URL моего API: «akazemib.rahkaran.ir». Я использую клиент OkHttp напрямую с этим кодом:

new OkHttpClient.Builder()
            .cookieJar(cookieJar)
            .connectTimeout(CONNECTION_TIMEOUT, TimeUnit.MICROSECONDS)
            .build();

Но я получил SSLHandshake: CertPathValidatorException. используемый нами сертификат действителен и получен от Certum Trusted Network CA, как показано ниже:

enter image description here

Я пробовал настраиваемый Trust Manager и SslFactory и добавляю строку сертификата вручную и проблема решена

new OkHttpClient.Builder() .cookieJar(cookieJar) .connectTimeout(CONNECTION_TIMEOUT, TimeUnit.MICROSECONDS) .sslSocketFactory(sslSocketFactory, trustManager) .hostnameVerifier(OkHostnameVerifier.INSTANCE) .build();

String certString = ""
            + "-----BEGIN CERTIFICATE-----\n" +
            "MIIF0jCCBLqgAwIBAgIQaoGIm2LXLNbBk72jLNf5LTANBgkqhkiG9w0BAQsFADCB\n" +
            "hTELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu\n" +
            "QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEpMCcG\n" +
            "A1UEAxMgQ2VydHVtIERvbWFpbiBWYWxpZGF0aW9uIENBIFNIQTIwHhcNMTcxMDEx\n" +......

Но как я могу исправить эту ошибку SSLHandshake без добавления сертификата вручную? что-то не так с CA? или промежуточный сертификат на стороне сервера?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...