2015-04-24 3 views
8

В моем коде Java я создаю один экземпляр SSL контекста с помощью командыБудет ли SSLContext.getInstance («TLS») также поддерживать TLS v1.1 и TLS v1.2?

SSLContext ctx = SSLContext.getInstance("TLS"); 

Но в моем TOMCAT сервере я ставлю TLSv1.2 и я получаю сообщение об ошибке рукопожатия.

Как мы можем поддерживать все протоколы TLS с помощью этого метода, как в cpp, у нас есть клиентский метод SSLV23, который будет поддерживать все протоколы.

+1

Какую версию Java вы используете? –

+4

SSLContext ctx = SSLContext.getInstance ("TLSv1.2"); поддерживает все протоколы :) – mahan07

+2

* 'SSLContext ctx = SSLContext.getInstance (" TLS ");' * - он ухудшается. На Java 8 и ниже вы также получаете SSLv3. Отчет об ошибке был подан в Oracle, но он был закрыт, поскольку «не будет исправлять», потому что он по дизайну. Также см. [Какие Cipher Suites для включения SSL-сокета?] (Http://stackoverflow.com/a/23365536/608639) – jww

ответ

6

Чтобы использовать TLSv1.2 попытаться использовать ниже код:

SSLContext sslContext = SSLContext.getInstance("TLSv1.2"); 
sslContext.init(null, null, null);