TLS 1.3 по умолчанию
TLS 1.3 включён по умолчанию — явная настройка протокола не требуется.
Сравнение кода
✕ Java 8
SSLContext ctx =
SSLContext.getInstance("TLSv1.2");
ctx.init(null, trustManagers, null);
SSLSocketFactory factory =
ctx.getSocketFactory();
// Must specify protocol version
✓ Java 11+
// TLS 1.3 is the default!
var client = HttpClient.newBuilder()
.sslContext(SSLContext.getDefault())
.build();
// Already using TLS 1.3
Заметили проблему в этом коде? Сообщите нам.
Почему современный подход лучше
Более безопасный
TLS 1.3 удаляет устаревшие наборы шифров и шаблоны рукопожатия.
Более быстрое рукопожатие
TLS 1.3 завершается за один обмен вместо двух.
Без конфигурации
Безопасен по умолчанию — явный выбор протокола не требуется.
Старый подход
Ручная настройка TLS
Современный подход
TLS 1.3 по умолчанию
Начиная с JDK
11
Сложность
Средний
Поддержка JDK
TLS 1.3 по умолчанию
Доступно
Широко доступно с JDK 11 (сент. 2018)
Как это работает
Java 11 добавила поддержку TLS 1.3 и сделала его предпочтительным протоколом. HttpClient использует его автоматически. Больше не нужно вручную указывать версии протокола для защищённых соединений.
Связанная документация
Доказательство