Memperbarui aplikasi untuk terhubung ke instans Postgre SQL DB menggunakan sertifikat/baru SSL TLS - Layanan Basis Data Relasional Amazon

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

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. sslmodeMode 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 dokumentasi Postgre. SQL

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.