Обработка SSLHandshakeException для двухсторонней конечной точки SSL - PullRequest
0 голосов
/ 26 сентября 2018

Я подключаюсь к конечной точке с двумя SSL, я могу подключиться через telnet, но при ответе на почтовый запрос от http-клиента я получаю

javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure

Я пытаюсь сделать это из локальной системы, кто ipуже занесен в белый список.

Я скопировал файл certificate.jks и cacerts с одного из промежуточных серверов, на котором правильно работают запросы

то, что я узнал в двухстороннем сервере назначения SSL-квитирования, также проверяет нашсертификат.который используется как предварительное условие

Я пробовал разные вещи, такие как

Настройка аргументов vm

-Djavax.net.ssl.keyStore=/home/****/certificateNew.jks
-Djavax.net.ssl.keyStorePassword=*****

Настройка через системное свойство

    System.setProperty("javax.net.ssl.keyStore", "*****/certificateNew.jks");
    System.setProperty("javax.net.ssl.keyStorePassword", "*****");
    System.setProperty("javax.net.ssl.keyStoreType", "JKS")

загрузка через контекст ssl, подобный этому

    SSLContextBuilder builder = SSLContexts.custom();
    KeyStore trustStore = KeyStore.getInstance("JKS");
    try (InputStream is = Files.newInputStream(Paths.get("/*****/certificateNew.jks"))) {
        trustStore.load(is, "****".toCharArray());
    }

    builder.loadTrustMaterial(trustStore);
    SSLContext sslContext = builder.build();
    httpClient = HttpClients.custom()
            .setSSLContext(sslContext)
            .setKeepAliveStrategy(keepAliveStrategy)
            .setConnectionManager(connManager)

            .setDefaultRequestConfig(config).build();

Я также пытался

    SSLContext sslContext = new SSLContextBuilder()
              .loadTrustMaterial(null, (certificate, authType) -> true).build()

Я использую SpringBoot и он использует внутренний tomcat.

Я пробовал несколько возможныхпути, но ни один из них не может решить эту проблему.Я получаю то же исключение.

Если это не помогает, как я могу получить сертификат из серверной коробки.И добавьте эти сертификаты при оформлении запроса.

Любая помощь приветствуется

...