Java 7 com TLSv1.2 se conecta à falha do handshake LDAPS
Atualmente, estou usando o Java 7 e não consigo me conectar ao LDAPS. Eu tentei com o código abaixo, mas ainda não consigo conectar:
SSLContext ctx = SSLContext.getInstance("TLSv1.2");
ctx.init(null, null, null);
SSLContext.setDefault(ctx);
Abaixo está o erro que recebo do meu programa:
2018-04-10 15: 21: 23,446 INFO [stdout] (padrão EJB - 1) padrão EJB - 1, WRITE: TLSv1.2 Handshake, comprimento = 221
2018-04-10 15: 21: 23,446 INFO [stdout] (padrão EJB - 1) padrão EJB - 1, LEIA: TLSv1.2 Alert, length = 2
2018-04-10 15: 21: 23,446 INFO [stdout] (padrão do EJB - 1) padrão do EJB - 1, ALERTA RECV TLSv1: fatal, handshake_failure
2018-04-10 15: 21: 23,446 INFO [stdout] (padrão EJB - 1) padrão EJB - 1, chamado closeSocket ()
2018-04-10 15: 21: 23,446 INFO [stdout] (padrão EJB - 1) EJB padrão - 1, manipulando exceção: javax.net.ssl.SSLHandshakeException: Recebido alerta fatal: handshake_failure
Depois disso, tentei executar o Teste de protocolo para verificar os protocolos suportados:
Supported Protocols: 5
SSLv2Hello
SSLv3
TLSv1
TLSv1.1
TLSv1.2
Enabled Protocols: 1
TLSv1
Adicionei a linha abaixo para desativar o TLSv1 e ativar o TLSv1.2 emjava.security
:
jdk.tls.disabledAlgorithms= SSLv3, SSLv2Hello, TLSv1, TLSv1.1
E execute novamente o Teste de Protocolo e o resultado é:
Supported Protocols: 5
SSLv2Hello
SSLv3
TLSv1
TLSv1.1
TLSv1.2
Enabled Protocols: 0
Confirmei que meu servidor LDAPS é suportado e usa TLSv1.2. Também habilitei o TLS1.2 no Java Control Panel porque, sempre que eu tentava usar o TLSv1, ele causavaprotocol_version
erro
Minhas perguntas são:
O que éRECV TLSv1 ALERT: fatal, handshake_failure
?Como habilitar o TLSv1.2 nos protocolos suportados?Editar O Java 7 ou 8 suporta o conjunto de criptografia:ECDHE-ECDSA-AES256-GCM-SHA384
?Estou usando o Java 1.7_80.