Спасибо за ответ на мой вопрос
тоящее время я использую Java 7 и не могу подключиться к LDAPS. Я попытался с кодом ниже, но я все еще не могу подключиться:
SSLContext ctx = SSLContext.getInstance("TLSv1.2");
ctx.init(null, null, null);
SSLContext.setDefault(ctx);
Ниже приведена ошибка, которую я получаю из моей программы:
2018-04-10 15: 21: 23,446 INFO [stdout] (EJB по умолчанию - 1) EJB по умолчанию - 1, WRITE: TLSv1.2 Handshake, длина = 221
2018-04-10 15: 21: 23,446 INFO [stdout] (EJB по умолчанию - 1) EJB по умолчанию - 1, READ: TLSv1.2 Alert, длина = 2
2018-04-10 15: 21: 23,446 INFO [stdout] (EJB по умолчанию - 1) EJB по умолчанию - 1, RECV TLSv1 ALERT: смертельно, handshake_failure
2018-04-10 15: 21: 23,446 INFO [stdout] (EJB по умолчанию - 1) EJB по умолчанию - 1, называется closeSocket ()
2018-04-10 15: 21: 23,446 ИНФОРМАЦИЯ [stdout] (EJB по умолчанию - 1) EJB по умолчанию - 1, обработка исключения: javax.net.ssl.SSLHandshakeException: получено фатальное предупреждение: handshake_failure
После этого я попытался запустить Protocol Test, чтобы проверить поддерживаемые протоколы:
Supported Protocols: 5
SSLv2Hello
SSLv3
TLSv1
TLSv1.1
TLSv1.2
Enabled Protocols: 1
TLSv1
Я добавил строку ниже, чтобы отключить TLSv1 и включить TLSv1.2 вjava.security
:
jdk.tls.disabledAlgorithms= SSLv3, SSLv2Hello, TLSv1, TLSv1.1
И снова запустите протокол теста, и в результате:
Supported Protocols: 5
SSLv2Hello
SSLv3
TLSv1
TLSv1.1
TLSv1.2
Enabled Protocols: 0
Я подтвердил, что мой сервер LDAPS поддерживается и использует TLSv1.2. Я также включил TLS1.2 в панели управления Java, потому что всякий раз, когда я пытался использовать TLSv1, это вызываетprotocol_version
ошибка
Мои вопросы:
Что такоеRECV TLSv1 ALERT: fatal, handshake_failure
?Как включить TLSv1.2 в поддерживаемых протоколах?редактировать Поддерживает ли Java 7 или 8 набор шифров:ECDHE-ECDSA-AES256-GCM-SHA384
?Я использую Java 1.7_80.