Eu tenho uma instância do Tomcat8 rodando atrás de um servidor Apache que cuida do descarregamento de SSL. O webapp Java implementado no Tomcat precisa se conectar a um serviço externo que suporta apenas o TLSv1.2.
Eu adicionei -Dhttps.protocols = TLSv1.2 ao setenv.sh do Tomcat. Mas ainda vejo o Tomcat tentando negociar [2] com o TLSv1 como a versão TLS mais suportada enquanto se conecta ao serviço externo. Então, eu acabo recebendo o erro [1] durante a conexão.
Como faço para que isso funcione? Preciso alterar alguma configuração no servidor web Apache?
PS: Adicionando o sinalizador acima funciona (o TLS é atualizado para a v1.2) na minha máquina local, onde eu tenho apenas o 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
Tags apache2 ssl tomcat web-applications