Аутентификация API по ssl через okhttpclient 3

Помогите, пожалуйста! Я пытаюсь получить доступ к API с помощью SSL-сертификата *.jks SslContext работает, но аутентификация все еще не удалось

public void setKeyStore(OkHttpClient client, String path, String keystorePWD) {
LinkedList<Protocol> protocols = new LinkedList<>();
protocols.add(Protocol.HTTP_1_1);
OkHttpClient.Builder builder = new OkHttpClient().newBuilder();
builder.followRedirects(true).followSslRedirects(true).retryOnConnectionFailure(true).connectTimeout(5, TimeUnit.SECONDS).protocols(protocols).readTimeout(10, TimeUnit.SECONDS).addInterceptor(new HttpRequestLogger()).build();
    KeyStore keyStore = readKeyStore(path, keystorePWD); //your method to obtain KeyStore
    SSLContext sslContext = SSLContext.getInstance("SSL");
    TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
    trustManagerFactory.init(keyStore);
    if (Trash.emptyValue(keystorePWD)) {
        throw new Exception();
    }
    KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
    keyManagerFactory.init(keyStore, keystorePWD.toCharArray());
    sslContext.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), new SecureRandom());
    builder.sslSocketFactory(sslContext.getSocketFactory(), new X509TrustManager() {
        @Override
        public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {
        }

        @Override
        public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException {
        }

        @Override
        public java.security.cert.X509Certificate[] getAcceptedIssuers() {
            return new java.security.cert.X509Certificate[]{};
        }
    });
client = builder.build();

}

Сертификат 100% действителен. В другом http клиент работал /

0 ответов

Другие вопросы по тегам