Назад | Перейти на главную страницу

Tomcat8 не может обновить версию TLS

У меня есть экземпляр Tomcat8, работающий за сервером Apache, который занимается разгрузкой SSL. Веб-приложение Java, развернутое на Tomcat, должно подключаться к внешней службе, которая поддерживает только TLSv1.2.

Я добавил -Dhttps.protocols = TLSv1.2 в setenv.sh Tomcat. Но все же я вижу, как Tomcat пытается согласовать [2] с TLSv1 как с самой высокой поддерживаемой версией TLS при подключении к внешней службе. Итак, я получаю сообщение об ошибке [1] при подключении.

Как мне заставить это работать? Нужно ли мне изменять какую-либо конфигурацию на веб-сервере Apache?

PS: Добавление вышеуказанного флага работает (TLS обновляется до версии 1.2) на моем локальном компьютере, где у меня есть только Tomcat8.

[1]

Caused by: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
        at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:421)
        at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
        at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572)
        at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
        at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
        at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:641)
        at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1066)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1044)
        at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:1035)

[2]

%% No cached client session
*** ClientHello, TLSv1
....
....
ajp-nio-8009-exec-10, READ: TLSv1.2 Alert, length = 2
ajp-nio-8009-exec-10, RECV TLSv1 ALERT:  fatal, protocol_version
ajp-nio-8009-exec-10, called closeSocket()
ajp-nio-8009-exec-10, handling exception: javax.net.ssl.SSLException: Received fatal alert: protocol_version
ajp-nio-8009-exec-10, IOException in getSession():  javax.net.ssl.SSLException: Received fatal alert: protocol_version