

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Bekerja dengan TLS di SDK for Java
<a name="security-java-tls"></a>

 AWS SDK untuk Java Menggunakan kemampuan TLS dari platform Java yang mendasarinya. [Dalam topik ini, kami menunjukkan contoh menggunakan implementasi OpenJDK yang digunakan oleh Amazon Corretto 17.](https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/index.html) 

Untuk bekerja dengan Layanan AWS, JDK yang mendasarinya harus mendukung versi minimum TLS 1.2, tetapi TLS 1.3 direkomendasikan.

TLS 1.3 adalah prasyarat untuk mengaktifkan kriptografi pasca-kuantum, yang mungkin memerlukan tindakan atau konfigurasi tambahan. Untuk mempelajari lebih lanjut, lihat [Mengaktifkan TLS pasca-kuantum hibrida](https://docs.aws.amazon.com/sdkref/latest/guide/pqtls-details.html). 

Pengguna harus berkonsultasi dengan dokumentasi platform Java yang mereka gunakan dengan SDK untuk mengetahui versi TLS mana yang diaktifkan secara default serta cara mengaktifkan dan menonaktifkan versi TLS tertentu.

## Cara memeriksa informasi versi TLS
<a name="how-to-check-the-tls-version"></a>

Menggunakan OpenJDK, kode berikut menunjukkan penggunaan SSLContext untuk mencetak versi [mana yang](https://devdocs.io/openjdk~17/java.base/javax/net/ssl/sslcontext#getSupportedSSLParameters()) didukung. TLS/SSL 

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

Misalnya, Amazon Corretto 17 (OpenJDK) menghasilkan output berikut.

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

**Untuk melihat jabat tangan SSL beraksi dan versi TLS apa yang digunakan, Anda dapat menggunakan properti sistem javax.net.debug.**

Misalnya, jalankan aplikasi Java yang menggunakan TLS.

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

Aplikasi mencatat jabat tangan SSL yang mirip dengan yang berikut ini.

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

## Menerapkan versi TLS minimum
<a name="enforce-minimum-tls-version"></a>

SDK for Java selalu lebih menyukai versi TLS terbaru yang didukung oleh platform dan layanan. Jika Anda ingin menerapkan versi TLS minimum tertentu, lihat dokumentasi platform Java Anda.

Untuk OpenJDK-based JVM, Anda dapat menggunakan properti sistem. `jdk.tls.client.protocols`

Misalnya, jika Anda ingin klien layanan SDK dalam aplikasi Anda menggunakan TLS 1.2, meskipun TLS 1.3 tersedia, berikan properti sistem berikut. 

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

## AWS Upgrade titik akhir API ke TLS 1.2
<a name="tls-more-info"></a>

Lihat [posting blog](https://aws.amazon.com/blogs//security/tls-1-2-required-for-aws-endpoints/) ini untuk informasi tentang titik akhir AWS API yang pindah ke TLS 1.2 untuk versi minimum.