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は2ラウンドトリップではなく1ラウンドトリップで完了します。
ゼロ設定
デフォルトでセキュア——プロトコルを明示的に選択する必要がありません。
旧来のアプローチ
手動のTLS設定
モダンなアプローチ
TLS 1.3デフォルト
JDKバージョン
11
難易度
中級
JDKサポート
TLS 1.3がデフォルト
利用可能
JDK 11(2018年9月)以降、広く利用可能
仕組み
Java 11でTLS 1.3サポートが追加され、優先プロトコルとなりました。HttpClientは自動的にTLS 1.3を使用します。セキュアな接続にプロトコルバージョンを手動で指定する必要はもうありません。
関連ドキュメント