Arbeiten mit TLS im SDK for Java - AWS SDK for Java 2.x

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Arbeiten mit TLS im SDK for Java

Das AWS SDK for Java nutzt die TLS-Funktionen der zugrunde liegenden Java-Plattform. In diesem Thema zeigen wir Beispiele, die die von Amazon Corretto 17 verwendete OpenJDK-Implementierung verwenden.

Um damit arbeiten zu können AWS-Services, muss das zugrunde liegende JDK eine Mindestversion von TLS 1.2 unterstützen, TLS 1.3 wird jedoch empfohlen.

Benutzer sollten die Dokumentation der Java-Plattform, die sie zusammen mit dem SDK verwenden, nachlesen, um herauszufinden, welche TLS-Versionen standardmäßig aktiviert sind und wie bestimmte TLS-Versionen aktiviert und deaktiviert werden können.

Wie überprüft man die TLS-Versionsinformationen

Unter Verwendung von OpenJDK zeigt der folgende Code die Verwendung von SSLContext, um zu drucken, welche TLS/SSL-Versionen unterstützt werden.

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

Amazon Corretto 17 (OpenJDK) erzeugt beispielsweise die folgende Ausgabe.

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

Um den SSL-Handshake in Aktion zu sehen und welche Version von TLS verwendet wird, können Sie die Systemeigenschaft javax.net.debug verwenden.

Führen Sie beispielsweise eine Java-Anwendung aus, die TLS verwendet.

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

Die Anwendung protokolliert den SSL-Handshake ähnlich dem Folgenden.

... 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", ...

Erzwingen Sie eine TLS-Mindestversion

Das SDK for Java bevorzugt immer die neueste TLS-Version, die von der Plattform und dem Dienst unterstützt wird. Wenn Sie eine bestimmte TLS-Mindestversion erzwingen möchten, lesen Sie in der Dokumentation Ihrer Java-Plattform nach.

Für OpenJDK-basierte JVMs können Sie die Systemeigenschaft verwenden. jdk.tls.client.protocols

Wenn Sie beispielsweise möchten, dass SDK-Dienstclients in Ihrer Anwendung TLS 1.2 verwenden, obwohl TLS 1.3 verfügbar ist, geben Sie die folgende Systemeigenschaft an.

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

AWS API-Endpunkte werden auf TLS 1.2 aktualisiert

In diesem Blogbeitrag finden Sie Informationen zur Umstellung von AWS API-Endpunkten auf TLS 1.2 für die Mindestversion.