SDK for Java TLSでの の使用 - AWS SDK for Java 2.x

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

SDK for Java TLSでの の使用

は、基盤となる Java プラットフォームTLSの機能 AWS SDK for Java を使用します。このトピックでは、Amazon Corretto 17 で使用される OpenJDK 実装を使用した例を示します。

を使用するには AWS サービス、基盤となる が 1.2 TLS の最小バージョンをサポートJDKしている必要がありますが、1.3 TLS が推奨されます。

ユーザーは、 で使用している Java プラットフォームのドキュメントを参照してSDK、デフォルトで有効になっているTLSバージョンと、特定のTLSバージョンを有効または無効にする方法を確認する必要があります。

TLS バージョン情報を確認する方法

Open を使用するとJDK、次のコードは、 を使用してサポートされている TLS/SSL バージョンをSSLContext出力する方法を示しています。

System.out.println(Arrays.toString(SSLContext.getDefault().getSupportedSSLParameters().getProtocols()));

例えば、Amazon Corretto 17 (Open JDK) は次の出力を生成します。

[TLSv1.3, TLSv1.2, TLSv1.1, TLSv1, SSLv3, SSLv2Hello]

SSL ハンドシェイクが実行中で、どのバージョンの TLSが使用されているかを確認するには、システムプロパティ javax.net.debug を使用できます。

例えば、 を使用する Java アプリケーションを実行しますTLS。

java app.jar -Djavax.net.debug=ssl:handshake

アプリケーションは、次のようなSSLハンドシェイクを記録します。

... javax.net.ssl|DEBUG|10|main|2022-12-23 13:53:12.221 EST|ClientHello.java:641|Produced ClientHello handshake message ( "ClientHello": { "client version" : "TLSv1.2", ... javax.net.ssl|DEBUG|10|main|2022-12-23 13:53:12.295 EST|ServerHello.java:888|Consuming ServerHello handshake message ( "ServerHello": { "server version" : "TLSv1.2", ...

最小TLSバージョンを適用する

SDK for Java は、常にプラットフォームとサービスでサポートされているTLS最新バージョンを優先します。特定の最小TLSバージョンを適用する場合は、Java プラットフォームのドキュメントを参照してください。

Open JDKベースの ではJVMs、システムプロパティ を使用できますjdk.tls.client.protocols

例えば、1.3 が使用可能であっても、アプリケーション内のSDKサービスクライアントで TLS 1.2 TLS を使用する場合は、次のシステムプロパティを指定します。

java app.jar -Djdk.tls.client.protocols=TLSv1.2

AWS API エンドポイントを 1.2 TLS にアップグレード

最小バージョンの 1.2 TLS に移行するエンドポイントについては AWS API、このブログ記事を参照してください。