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 instans Postgre SQL DB menggunakan sertifikat/baru SSL TLS
Sertifikat yang digunakan untuk Secure Socket Layer atau Transport Layer Security (SSL/TLS) biasanya memiliki masa pakai yang ditetapkan. Ketika penyedia layanan memperbarui sertifikat Certificate Authority (CA) mereka, klien harus memperbarui aplikasi mereka untuk menggunakan sertifikat baru. Berikut ini, Anda dapat menemukan informasi tentang cara menentukan apakah aplikasi klien Anda SSL TLS menggunakan/untuk terhubung ke Amazon RDS Anda untuk instans Postgre SQL DB. Anda juga menemukan informasi tentang cara memeriksa apakah aplikasi tersebut memverifikasi sertifikat server saat aplikasi terhubung.
catatan
Aplikasi klien yang dikonfigurasi untuk memverifikasi sertifikat server sebelumSSL/TLSkoneksi harus memiliki sertifikat CA yang valid di toko kepercayaan klien. Perbarui penyimpanan kepercayaan klien bila diperlukan untuk sertifikat baru.
Setelah Anda memperbarui sertifikat CA di penyimpanan kepercayaan aplikasi klien, Anda dapat merotasi sertifikat di instans DB Anda. Kami sangat menyarankan Anda menguji prosedur ini di lingkungan non-produksi sebelum menerapkannya di lingkungan produksi Anda.
Untuk informasi selengkapnya tentang rotasi sertifikat, lihat Memutar sertifikat SSL TLS /Anda. Untuk informasi selengkapnya tentang mengunduh sertifikat, lihat . Untuk informasi tentang menggunakanSSL/TLSdengan instans Postgre SQL DB, lihat. Menggunakan SSL dengan instance Postgre DB SQL
Topik
Menentukan apakah aplikasi terhubung ke instans Postgre SQL DB menggunakan SSL
Periksa konfigurasi instans DB untuk nilai parameter rds.force_ssl
. Secara default, rds.force_ssl
parameter diatur ke 0
(off) untuk instance DB menggunakan versi Postgre sebelum SQL versi 15. Secara default, rds.force_ssl
diatur ke 1
(on) untuk instans DB menggunakan Postgre SQL versi 15 dan versi utama yang lebih baru. Jika rds.force_ssl
parameter diatur ke 1
(on), klien diharuskan menggunakanSSL/TLSuntuk koneksi. Untuk informasi selengkapnya tentang grup parameter, lihat Grup parameter untuk RDS.
Jika Anda menggunakan RDS Postgre SQL versi 9.5 atau versi mayor yang lebih baru dan tidak rds.force_ssl
disetel ke 1
(on), kueri pg_stat_ssl
tampilan untuk memeriksa koneksi menggunakan. SSL Misalnya, query berikut hanya mengembalikan SSL koneksi dan informasi tentang klien yang menggunakanSSL.
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 menggunakanSSL/TLSkoneksi 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 ini hanya menampilkan koneksi saat ini pada waktu kueri. Tidak adanya hasil tidak menunjukkan bahwa tidak ada aplikasi yang menggunakan SSL koneksi. SSLKoneksi lain mungkin dibuat pada waktu yang berbeda.
Menentukan apakah klien memerlukan verifikasi sertifikat agar dapat terhubung
Ketika klien, seperti psql atauJDBC, dikonfigurasi dengan SSL dukungan, klien pertama mencoba untuk terhubung ke database dengan secara SSL default. Jika klien tidak dapat terhubungSSL, itu kembali ke koneksi tanpaSSL. sslmode
Mode default yang digunakan untuk kedua klien berbasis libpq (seperti psql) dan diatur ke. JDBC 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 masteruser -d postgres
Gunakan argumen sslrootcert
untuk memverifikasi sertifikat dengan sslmode
dalam menghubungkan format string, dengan sslmode
diatur ke verify-ca
atau verify-full
untuk memverifikasi sertifikat.
psql "host=pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com sslmode=verify-full sslrootcert=/full/path/
ssl-cert.pem
user=masteruser dbname=postgres"
Misalnya, dalam kasus sebelumnya, jika Anda menggunakan sertifikat root yang tidak valid, maka Anda akan melihat kesalahan yang serupa dengan yang berikut pada klien Anda.
psql: SSL error: certificate verify failed
Memperbarui penyimpanan kepercayaan aplikasi Anda
Untuk informasi tentang memperbarui toko kepercayaan untuk SQL aplikasi Postgre, lihat Koneksi TCP Aman/IP dengan SSL
Untuk informasi tentang cara mengunduh sertifikat root, lihat .
Untuk contoh skrip yang mengimpor sertifikat, lihat Contoh skrip untuk mengimpor sertifikat ke trust store Anda.
catatan
Saat memperbarui penyimpanan kepercayaan, Anda dapat mempertahankan sertifikat lama selain menambahkan sertifikat baru.
MenggunakanSSL/TLSkoneksi untuk berbagai jenis aplikasi
Berikut ini memberikan informasi tentang SSL TLS penggunaan/koneksi untuk berbagai jenis aplikasi:
-
psql
Klien diinvokasi dari baris perintah dengan menentukan opsi sebagai string koneksi atau sebagai variabel lingkungan. SSLTLSUntuk/koneksi, opsi yang relevan adalah
sslmode
(variabel lingkunganPGSSLMODE
),sslrootcert
(variabel lingkunganPGSSLROOTCERT
).Untuk daftar lengkap opsi, lihat Parameter kata kunci dalam dokumentasi
PostgreSQL. Untuk daftar lengkap variabel lingkungan, lihat Variabel lingkungan dalam dokumentasi PostgreSQL. -
pgAdmin
Klien berbasis browser ini adalah antarmuka yang lebih ramah pengguna untuk menghubungkan ke database Postgre. SQL
Untuk informasi tentang mengonfigurasi koneksi, lihat pgAdmin dokumentasi
. -
JDBC
JDBCmemungkinkan koneksi database dengan aplikasi Java.
Untuk informasi umum tentang menghubungkan ke SQL database Postgre denganJDBC, lihat Menghubungkan ke database dalam dokumentasi
driver SQL JDBC Postgre. Untuk informasi tentang menghubungkan denganSSL/TLS, lihat Mengkonfigurasi klien dalam dokumentasi driver Postgre SQLJDBC. -
Python
Pustaka Python yang populer untuk menghubungkan ke database Postgre SQL adalah.
psycopg2
Untuk informasi tentang cara menggunakan
psycopg2
, lihat dokumentasi psycopg2. Untuk tutorial singkat tentang cara menghubungkan ke SQL database Postgre, lihat tutorial Psycopg2 . Anda dapat menemukan informasi tentang opsi penerimaan perintah koneksi di Konten modul psycopg2 .
penting
Setelah Anda menentukan bahwa koneksi database Anda menggunakanSSL/TLSdan telah memperbarui toko kepercayaan aplikasi Anda, Anda dapat memperbarui database Anda untuk menggunakan sertifikat rds-ca-rsa 2048-g1. Untuk petunjuk, lihat langkah 3 dalam Memperbarui sertifikat CA Anda dengan memodifikasi instans atau cluster DB.