

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 cluster Aurora PostgreSQL DB menggunakan sertifikat baru SSL/TLS
<a name="ssl-certificate-rotation-aurora-postgresql"></a>

Mulai 13 Januari 2023, Amazon RDS telah menerbitkan sertifikat Certificate Authority (CA) baru untuk menghubungkan ke cluster Aurora 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 Anda menentukan apakah ada aplikasi klien yang digunakan SSL/TLS untuk terhubung ke cluster DB Anda. Jika demikian, Anda dapat memeriksa lebih lanjut apakah aplikasi tersebut memerlukan verifikasi sertifikat untuk terhubung. 

**catatan**  
Beberapa aplikasi dikonfigurasi untuk terhubung ke klaster DB Aurora PostgreSQL hanya jika aplikasi tersebut berhasil memverifikasi sertifikat pada server.   
Untuk aplikasi tersebut, Anda harus memperbarui penyimpanan kepercayaan aplikasi klien untuk menyertakan sertifikat CA baru. 

Setelah memperbarui sertifikat CA di penyimpanan kepercayaan aplikasi klien, Anda dapat merotasi sertifikat di klaster 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 [Menggunakan SSL/TLS untuk mengenkripsi koneksi ke ](UsingWithRDS.SSL.md). Untuk informasi tentang penggunaan SSL/TLS dengan cluster PostgreSQL DB, lihat. [Mengamankan data PostgreSQL Aurora dengan SSL/TLS](AuroraPostgreSQL.Security.md#AuroraPostgreSQL.Security.SSL)

**Topics**
+ [Menentukan apakah aplikasi terhubung ke klaster DB Aurora PostgreSQL menggunakan SSL](#ssl-certificate-rotation-aurora-postgresql.determining-server)
+ [Menentukan apakah klien memerlukan verifikasi sertifikat agar dapat terhubung](#ssl-certificate-rotation-aurora-postgresql.determining-client)
+ [Memperbarui penyimpanan kepercayaan aplikasi Anda](#ssl-certificate-rotation-aurora-postgresql.updating-trust-store)
+ [Menggunakan SSL/TLS koneksi untuk berbagai jenis aplikasi](#ssl-certificate-rotation-aurora-postgresql.applications)

## Menentukan apakah aplikasi terhubung ke klaster DB Aurora PostgreSQL menggunakan SSL
<a name="ssl-certificate-rotation-aurora-postgresql.determining-server"></a>

Periksa konfigurasi klaster DB untuk nilai parameter `rds.force_ssl`. Secara default, parameter `rds.force_ssl` diatur ke `0` (nonaktif). Jika `rds.force_ssl` parameter diatur ke `1` (on), klien diharuskan untuk menggunakan SSL/TLS untuk koneksi. Untuk informasi selengkapnya tentang grup parameter, lihat [](USER_WorkingWithParamGroups.md).

Jika `rds.force_ssl` tidak diatur ke `1` (aktif), buat kueri ke tampilan `pg_stat_ssl` untuk memeriksa koneksi menggunakan SSL. Misalnya, kueri berikut hanya menampilkan koneksi SSL dan informasi tentang klien menggunakan SSL.

```
select datname, usename, ssl, client_addr from pg_stat_ssl inner join pg_stat_activity on pg_stat_ssl.pid = pg_stat_activity.pid where ssl is true and usename<>'rdsadmin';
```

Hanya baris yang menggunakan SSL/TLS koneksi yang ditampilkan dengan informasi tentang koneksi. Berikut ini adalah contoh output-nya.

```
 datname  | usename | ssl | client_addr
----------+---------+-----+-------------
 benchdb  | pgadmin | t   | 53.95.6.13
 postgres | pgadmin | t   | 53.95.6.13
(2 rows)
```

Kueri sebelumnya hanya menampilkan koneksi saat ini pada waktu kueri. Tidak adanya hasil tidak menunjukkan bahwa tidak ada aplikasi yang menggunakan koneksi SSL. Koneksi SSL lainnya mungkin dibangun pada waktu yang lain.

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

Ketika klien, seperti psql atau JDBC, dikonfigurasikan dengan dukungan SSL, klien pertama kali mencoba untuk terhubung ke basis data dengan SSL secara default. Jika klien tidak dapat terhubung dengan SSL, maka akan kembali ke koneksi tanpa SSL. `sslmode`Mode default yang digunakan untuk klien berbasis libpq (seperti psql) dan JDBC diatur ke. `prefer` Sertifikat di server diverifikasi hanya jika `sslrootcert` disediakan dengan `sslmode` diatur ke `verify-ca` atau `verify-full`. Kesalahan akan muncul jika sertifikat tidak valid.

Gunakan `PGSSLROOTCERT` untuk memverifikasi sertifikat dengan variabel lingkungan `PGSSLMODE`, dengan `PGSSLMODE` diatur ke `verify-ca` atau `verify-full`. 

```
PGSSLMODE=verify-full PGSSLROOTCERT=/fullpath/{{ssl-cert.pem}} psql -h pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com -U primaryuser -d postgres
```

Gunakan argumen `sslrootcert` untuk memverifikasi sertifikat dengan `sslmode` dalam format string koneksi, dengan `sslmode` diatur ke `verify-ca` atau `verify-full`. 

```
psql "host=pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com sslmode=verify-full sslrootcert=/full/path/{{ssl-cert.pem}} user=primaryuser dbname=postgres"
```

Misalnya, dalam kasus sebelumnya, jika Anda menggunakan sertifikat root yang tidak valid, Anda akan melihat kesalahan yang serupa dengan yang berikut pada klien Anda.

```
psql: SSL error: certificate verify failed
```

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

Untuk informasi tentang memperbarui toko kepercayaan untuk aplikasi PostgreSQL, [lihat Koneksi TCP/IP aman dengan SSL](https://www.postgresql.org/docs/current/ssl-tcp.html) di dokumentasi PostgreSQL.

**catatan**  
Saat memperbarui penyimpanan disetujui, Anda dapat menyimpan sertifikat lama selain untuk menambahkan sertifikat baru.

### Memperbarui penyimpanan kepercayaan aplikasi Anda untuk JDBC
<a name="ssl-certificate-rotation-aurora-postgresql.updating-trust-store.jdbc"></a>

Anda dapat memperbarui toko kepercayaan untuk aplikasi yang menggunakan JDBC untuk SSL/TLS koneksi.

Untuk informasi tentang cara mengunduh sertifikat root, lihat [Menggunakan SSL/TLS untuk mengenkripsi koneksi ke ](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).

## Menggunakan SSL/TLS koneksi untuk berbagai jenis aplikasi
<a name="ssl-certificate-rotation-aurora-postgresql.applications"></a>

Berikut ini memberikan informasi tentang penggunaan SSL/TLS koneksi untuk berbagai jenis aplikasi:
+ **psql**

  Klien diinvokasi dari baris perintah dengan menentukan opsi sebagai string koneksi atau sebagai variabel lingkungan. Untuk SSL/TLS koneksi, opsi yang relevan adalah `sslmode` (variabel lingkungan`PGSSLMODE`), `sslrootcert` (variabel lingkungan`PGSSLROOTCERT`).

  Untuk daftar lengkap opsi, lihat [Parameter key words](https://www.postgresql.org/docs/11/libpq-connect.html#LIBPQ-PARAMKEYWORDS) dalam dokumentasi PostgreSQL. Untuk daftar lengkap variabel lingkungan, lihat [Environment variables](https://www.postgresql.org/docs/current/libpq-envars.html) dalam dokumentasi PostgreSQL.
+ **pgAdmin**

  Klien berbasis browser ini adalah antarmuka yang lebih mudah untuk terhubung ke basis data PostgreSQL.

  Untuk informasi tentang cara mengonfigurasi koneksi, lihat [dokumentasi pgAdmin](https://www.pgadmin.org/docs/pgadmin4/latest/server_dialog.html).
+ **JDBC**

  JDBC memungkinkan koneksi basis data dengan aplikasi Java.

  Untuk informasi umum tentang cara terhubung ke basis data PostgreSQL dengan JDBC, lihat [Connecting to the database](https://jdbc.postgresql.org/documentation/use/) dalam dokumentasi PostgreSQL. Untuk informasi tentang menghubungkan dengan SSL/TLS, lihat [Mengkonfigurasi klien dalam dokumentasi](https://jdbc.postgresql.org/documentation/ssl/) PostgreSQL. 
+ **Python**

  Pustaka Python yang populer untuk terhubung ke basis data PostgreSQL adalah `psycopg2`.

  Untuk informasi tentang cara menggunakan `psycopg2`, lihat [dokumentasi psycopg2](https://pypi.org/project/psycopg2/). Untuk tutorial singkat tentang cara terhubung ke basis data PostgreSQL, lihat [Tutorial Psycopg2](https://wiki.postgresql.org/wiki/Psycopg2_Tutorial). Anda dapat menemukan informasi tentang opsi penerimaan perintah koneksi di [Konten modul psycopg2](https://www.psycopg.org/docs/module.html).

**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 petunjuk, lihat langkah 3 dalam [Memperbarui sertifikat CA Anda dengan memodifikasi instans cluster DB Anda](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-updating).