Невозможно установить соединение https с помощью IBM JDK 1.8. Это хорошо работает с оракулом JDK1.8 - PullRequest
0 голосов
/ 07 ноября 2019

Я пытаюсь установить соединение https с удаленным API, для подключения используется Spring RestTemplate. Это приложение с загрузочной пружиной

Я могу установить соединение на локальном компьютере (oracle JDK 1.8 и tomcat)

При развертывании в качестве войны в Jboss EAP 7.1.0 GA, в котором используется IBM JDK 1.8, время подключения истекает и происходит сбой. Журнал ниже

        SSLContextImpl:  Using X509ExtendedKeyManager com.ibm.jsse2.az
        SSLContextImpl:  Using X509TrustManager com.ibm.jsse2.aD
        JsseJCE:  Using SecureRandom SHA2DRBG from provider IBMJCE version1.8
        trigger seeding of SecureRandom
        done seeding SecureRandom

        Handling error: ResourceAccessException, I/O error on POST request for "https://example.com/auth": 
        A remote host did not respond within the timeout period. (Connection timed out); 
        nested exception is java.net.ConnectException: A remote host did not respond within the timeout period. (Connection timed out):

Тот же код, скомпилированный и упакованный с oracle JDK 1.8, прекрасно работает в вышеупомянутой среде Jboss.

Я думал, что это связано с рукопожатием ssl, и перепробовал все эти варианты, не решил мою проблему. Я зарегистрировал отладку SSL для других сред. В рабочей среде я вижу согласование Alogrithm и шифра между сервером и клиентом после завершения заполнения SecureRandom, но в Jboss IBM JDK 1.8 я ничего не вижу. через некоторое время происходит сбой с таймаутом

        #  JAVA_OPTS="$JAVA_OPTS -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2"
        #  JAVA_OPTS="$JAVA_OPTS -Djdk.tls.client.protocols=TLSv1.2"
        #  JAVA_OPTS="-Dcom.ibm.jsse2.renegotiate=DISABLED"
        #  JAVA_OPTS="-Djdk.tls.allowUnsafeServerCertChange=true"
        #  JAVA_OPTS="-Djdk.tls.disabledAlgorithms=SSLv3,TLSv1,TLSv1.1"
        #  JAVA_OPTS="$JAVA_OPTS -Dcom.ibm.jsse2.overrideDefaultTLS=true"
        #  JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=trustStore"*
...