

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

# Memperbarui aplikasi untuk terhubung ke instance MariaDB menggunakan sertifikat baru SSL/TLS
<a name="ssl-certificate-rotation-mariadb"></a>

Mulai 13 Januari 2023, Amazon RDS telah menerbitkan sertifikat Certificate Authority (CA) baru untuk menghubungkan ke instans RDS DB Anda menggunakan Secure Socket Layer atau Transport Layer Security (). SSL/TLS Setelah itu, Anda dapat menemukan informasi tentang pembaruan aplikasi untuk menggunakan sertifikat baru.

Topik ini dapat membantu menentukan apakah aplikasi Anda memerlukan verifikasi sertifikat untuk terhubung ke instans DB Anda. 

**catatan**  
Beberapa aplikasi dikonfigurasi untuk terhubung ke MariaDB hanya jika aplikasi tersebut berhasil memverifikasi sertifikat pada server. Untuk aplikasi tersebut, Anda harus memperbarui penyimpanan kepercayaan aplikasi klien untuk menyertakan sertifikat CA baru.   
Anda dapat menentukan mode SSL berikut: `disabled`, `preferred`, dan `required`. Saat Anda menggunakan mode SSL `preferred` dan sertifikat CA tidak ada atau tidak diperbarui, koneksi kembali tidak menggunakan SSL dan masih berhasil terhubung.  
Sebaiknya hindari mode `preferred`. Dalam mode `preferred`, jika koneksi menghadapi sertifikat yang tidak valid, koneksi berhenti menggunakan enkripsi dan melanjutkan tanpa enkripsi.

Setelah Anda memperbarui sertifikat CA di penyimpanan kepercayaan aplikasi klien, Anda dapat merotasi sertifikat di instans DB Anda. Sebaiknya Anda menguji prosedur ini di lingkungan pengembangan dan pementasan sebelum menerapkannya di lingkungan produksi Anda.

Untuk informasi selengkapnya tentang rotasi sertifikat, lihat [Memutar sertifikat Anda SSL/TLS](UsingWithRDS.SSL-certificate-rotation.md). Untuk informasi selengkapnya tentang mengunduh sertifikat, lihat [](UsingWithRDS.SSL.md). Untuk informasi tentang penggunaan SSL/TLS dengan instance MariaDB DB, lihat. [SSL/TLS dukungan untuk instance MariaDB DB di Amazon RDS](MariaDB.Concepts.SSLSupport.md)

**Topics**
+ [Menentukan apakah klien memerlukan verifikasi sertifikat agar dapat terhubung](#ssl-certificate-rotation-mariadb.determining)
+ [Memperbarui penyimpanan kepercayaan aplikasi Anda](#ssl-certificate-rotation-mariadb.updating-trust-store)
+ [Contoh kode Java untuk membangun koneksi SSL](#ssl-certificate-rotation-mariadb.java-example)

## Menentukan apakah klien memerlukan verifikasi sertifikat agar dapat terhubung
<a name="ssl-certificate-rotation-mariadb.determining"></a>

Anda dapat memeriksa apakah klien JDBC dan klien MySQL memerlukan verifikasi sertifikat untuk terhubung.

### JDBC
<a name="ssl-certificate-rotation-mysql.determining-client.jdbc"></a>

Contoh berikut dengan Connector/J MySQL 8.0 menunjukkan salah satu cara untuk memeriksa properti koneksi JDBC aplikasi untuk menentukan apakah koneksi yang berhasil memerlukan sertifikat yang valid. Untuk informasi selengkapnya tentang semua opsi koneksi JDBC untuk MySQL, lihat [Configuration properties](https://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html) di dokumentasi MySQL.

Saat menggunakan Connector/J MySQL 8.0, koneksi SSL memerlukan verifikasi terhadap sertifikat CA server jika properti koneksi Anda `sslMode` telah disetel `VERIFY_CA` ke `VERIFY_IDENTITY` atau, seperti pada contoh berikut.

```
Properties properties = new Properties();
properties.setProperty("sslMode", "VERIFY_IDENTITY");
properties.put("user", DB_USER);
properties.put("password", DB_PASSWORD);
```

**catatan**  
Jika Anda menggunakan MySQL Java Connector v5.1.38 atau yang lebih baru, atau MySQL Java Connector v8.0.9 atau yang lebih baru untuk terhubung ke database Anda, bahkan jika Anda belum secara eksplisit mengkonfigurasi aplikasi Anda untuk digunakan saat menghubungkan ke database Anda, driver klien ini default untuk menggunakan. SSL/TLS SSL/TLS Selain itu, saat menggunakan SSL/TLS, mereka melakukan verifikasi sertifikat sebagian dan gagal terhubung jika sertifikat server database kedaluwarsa.  
Tetapkan kata sandi selain penggugah (prompt) yang ditampilkan di sini sebagai praktik terbaik keamanan.

### MySQL
<a name="ssl-certificate-rotation-mysql.determining-client.mysql"></a>

Contoh Klien MySQL berikut menunjukkan dua cara untuk memeriksa koneksi MySQL skrip untuk menentukan apakah koneksi yang berhasil memerlukan sertifikat yang valid. Untuk informasi selengkapnya tentang semua opsi koneksi dengan Klien MySQL, [ Client-side lihat konfigurasi untuk koneksi terenkripsi](https://dev.mysql.com/doc/refman/en/using-encrypted-connections.html#using-encrypted-connections-client-side-configuration) dalam dokumentasi MySQL.

Saat menggunakan Klien MySQL 5.7 atau MySQL 8.0, koneksi SSL memerlukan verifikasi terhadap sertifikat CA server jika, untuk opsi `--ssl-mode`, Anda menentukan `VERIFY_CA` atau `VERIFY_IDENTITY`, seperti pada contoh berikut.

```
mysql -h mysql-database.rds.amazonaws.com -uadmin -ppassword --ssl-ca=/tmp/{{ssl-cert.pem}} --ssl-mode=VERIFY_CA                
```

Saat menggunakan Klien MySQL 5.6, koneksi SSL memerlukan verifikasi terhadap sertifikat CA server jika Anda menentukan opsi `--ssl-verify-server-cert`, seperti pada contoh berikut.

```
mysql -h mysql-database.rds.amazonaws.com -uadmin -ppassword --ssl-ca=/tmp/{{ssl-cert.pem}} --ssl-verify-server-cert            
```

## Memperbarui penyimpanan kepercayaan aplikasi Anda
<a name="ssl-certificate-rotation-mariadb.updating-trust-store"></a>

Untuk informasi tentang memperbarui toko kepercayaan untuk aplikasi MySQL, lihat [Menggunakan TLS/SSL dengan MariaDB dalam dokumentasi MariaDB Connector/J](https://mariadb.com/kb/en/library/using-tls-ssl-with-mariadb-java-connector/).

Untuk informasi tentang cara mengunduh sertifikat root, lihat [](UsingWithRDS.SSL.md).

Untuk contoh skrip yang mengimpor sertifikat, lihat [Contoh skrip untuk mengimpor sertifikat ke trust store Anda](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-sample-script).

**catatan**  
Saat memperbarui penyimpanan kepercayaan, Anda dapat mempertahankan sertifikat lama selain menambahkan sertifikat baru.

Jika Anda menggunakan driver Connector/J MariaDB JDBC dalam aplikasi, atur properti berikut dalam aplikasi.

```
System.setProperty("javax.net.ssl.trustStore", {{certs}});
System.setProperty("javax.net.ssl.trustStorePassword", "{{password}}");
```

Saat Anda memulai aplikasi, atur properti berikut.

```
java -Djavax.net.ssl.trustStore={{/path_to_truststore/MyTruststore.jks}} -Djavax.net.ssl.trustStorePassword={{my_truststore_password}} {{com.companyName.MyApplication}}        
```

**catatan**  
Tentukan kata sandi selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.

## Contoh kode Java untuk membangun koneksi SSL
<a name="ssl-certificate-rotation-mariadb.java-example"></a>

Contoh kode berikut menunjukkan cara menyiapkan koneksi SSL menggunakan JDBC.

```
private static final String DB_USER = "admin";

        private static final String DB_USER = "{{user name}}";
        private static final String DB_PASSWORD = "{{password}}";
        // This key store has only the prod root ca.
        private static final String KEY_STORE_FILE_PATH = "{{file-path-to-keystore}}";
        private static final String KEY_STORE_PASS = "{{keystore-password}}";
        
    public static void main(String[] args) throws Exception {
        Class.forName("org.mariadb.jdbc.Driver");

        System.setProperty("javax.net.ssl.trustStore", KEY_STORE_FILE_PATH);
        System.setProperty("javax.net.ssl.trustStorePassword", KEY_STORE_PASS);

        Properties properties = new Properties();
        properties.put("user", DB_USER);
        properties.put("password", DB_PASSWORD);


        Connection connection = DriverManager.getConnection("jdbc:mysql://ssl-mariadb-public.cni62e2e7kwh.us-east-1.rds.amazonaws.com:3306?useSSL=true",properties);
        Statement stmt=connection.createStatement();

        ResultSet rs=stmt.executeQuery("SELECT 1 from dual");

        return;
    }
```

**penting**  
Setelah Anda menentukan bahwa koneksi database Anda menggunakan SSL/TLS dan telah memperbarui toko kepercayaan aplikasi Anda, Anda dapat memperbarui database Anda untuk menggunakan sertifikat rds-ca-rsa2048-g1. Untuk mengetahui petunjuknya, lihat langkah 3 dalam [Memperbarui sertifikat CA Anda dengan memodifikasi instans atau cluster DB Anda](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-updating).  
Tentukan kata sandi selain prompt yang ditampilkan di sini sebagai praktik terbaik keamanan.