Di ApsaraDB RDS for PostgreSQL, enkripsi SSL mendukung sertifikat yang dikelola oleh Alibaba Cloud dan sertifikat kustom. Topik ini menjelaskan cara mengonfigurasi sertifikat kustom untuk mengaktifkan enkripsi SSL.
Prasyarat
Instans RDS harus menjalankan PostgreSQL 10 atau versi lebih baru dan menggunakan disk cloud.
CatatanInstans RDS tanpa server tidak didukung.
OpenSSL telah diinstal.
CatatanSistem operasi Linux disertai dengan OpenSSL. Jika Anda menggunakan sistem operasi Linux, Anda tidak perlu menginstal OpenSSL. Jika Anda menggunakan sistem operasi Windows, unduh paket perangkat lunak OpenSSL dan instal OpenSSL. Untuk informasi lebih lanjut, lihat halaman Win32/Win64 OpenSSL.
Catatan penggunaan
Setelah enkripsi SSL diaktifkan, pemanfaatan CPU dan latensi baca-tulis akan meningkat.
Setelah enkripsi SSL diaktifkan, Anda harus menutup koneksi yang ada dan membuat koneksi baru agar enkripsi SSL berlaku.
Saat mengonfigurasi sertifikat kustom, memodifikasi konten sertifikat kustom yang telah dikonfigurasi, atau menonaktifkan enkripsi SSL, instans RDS akan restart. Proses restart membutuhkan waktu sekitar 3 menit. Kami menyarankan Anda melakukan operasi ini selama jam-jam sepi.
Langkah 1: Buat sertifikat kustom
Saat membuat kunci privat untuk sertifikat server atau sertifikat tanda tangan sendiri, jangan aktifkan enkripsi kata sandi. Jika Anda mengaktifkan enkripsi kata sandi, enkripsi SSL tidak dapat diaktifkan.
Dalam contoh ini, Community Enterprise Operating System (CentOS) digunakan. Jika Anda menggunakan sistem operasi Windows, Anda dapat menjalankan perintah openssl berikut dengan cara yang sama seperti pada sistem operasi CentOS. Selain itu, Anda harus menyalin atau mengedit perintah secara manual alih-alih menggunakan perintah cp dan vim.
Buat sertifikat tanda tangan sendiri dan kunci privat untuk sertifikat tersebut. Sertifikat tanda tangan sendiri disimpan dalam file bernama server-ca.crt. Kunci privat disimpan dalam file bernama server-ca.key.
openssl req -new -x509 -days 365 -nodes -out server-ca.crt -keyout server-ca.key -subj "/CN=root-server-ca"Buat file permintaan penandatanganan sertifikat (CSR) dan kunci privat untuk sertifikat server. File CSR diberi nama server.csr. Kunci privat disimpan dalam file bernama server.key.
Setiap sertifikat kustom dapat melindungi satu atau beberapa titik akhir. Anda dapat menggunakan salah satu metode berikut untuk menghasilkan file CSR:
Jika Anda ingin melindungi satu titik akhir, jalankan perintah berikut:
openssl req -new -nodes -text -out server.csr -keyout server.key -subj "/CN=pgm-bpxxxxx.pg.rds.aliyuncs.com"CatatanGanti
pgm-bpxxxxx.pg.rds.aliyuncs.comdengan titik akhir yang ingin Anda lindungi. Untuk informasi lebih lanjut tentang cara melihat titik akhir, lihat Lihat dan Ubah Titik Akhir dan Nomor Port dari Instans ApsaraDB RDS for PostgreSQL.Jika Anda ingin melindungi beberapa titik akhir, jalankan perintah berikut:
Salin file openssl.cnf untuk penggunaan sementara.
cp /etc/pki/tls/openssl.cnf /tmp/openssl.cnfCatatanJika Anda menggunakan sistem operasi Windows, file openssl.cnf disimpan di direktori Direktori instalasi OpenSSL\bin\cnf. Anda dapat menyalin file openssl.cnf ke direktori lain di komputer Anda.
Jalankan perintah berikut untuk membuka file openssl.cnf:
vim /tmp/openssl.cnfMasukkan
iuntuk mengaktifkan mode edit. Kemudian, tambahkan konten berikut ke file openssl.cnf:# Tambahkan konten berikut di akhir elemen [ req ]. req_extensions = v3_req # Tambahkan elemen [ v3_req ]. [ v3_req ] basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names # Tambahkan elemen [ alt_names ]. Lalu, masukkan titik akhir yang ingin Anda lindungi setelah setiap catatan Sistem Nama Domain (DNS). [ alt_names ] DNS.1 = pgm-bpxxxxx.pg.rds.aliyuncs.com DNS.2 = pgm-bpxxxxx.pg.rds.aliyuncs.comTekan
Escuntuk keluar dari mode edit. Lalu, masukkan:wquntuk menyimpan file dan keluar.Buat file permintaan penandatanganan sertifikat (CSR) dan kunci privat untuk sertifikat server. File CSR diberi nama server.csr. Kunci privat disimpan dalam file bernama server.key.
openssl req -new -nodes -text -out server.csr -keyout server.key -config /tmp/openssl.cnfSaat file server.csr sedang dibuat, Anda diminta untuk mengonfigurasi parameter berikut berdasarkan kebutuhan bisnis Anda.
Parameter
Deskripsi
Nilai contoh
Nama Negara
Kode negara. Tentukan kode negara dua huruf yang ditentukan oleh Organisasi Internasional untuk Standardisasi (ISO).
CN
Nama Negara Bagian atau Provinsi
Provinsi.
ZheJiang
Nama Lokalitas
Kota.
HangZhou
Nama Organisasi
Nama perusahaan.
Alibaba
Nama Unit Organisasi
Nama departemen.
Aliyun
Nama Umum
Nama domain yang ingin Anda lindungi menggunakan sertifikat. Nama domain ditentukan dalam file openssl.cnf. Anda tidak perlu mengonfigurasi parameter ini.
-
Alamat Email
Anda tidak perlu mengonfigurasi parameter ini.
-
Kata sandi tantangan
Anda tidak perlu mengonfigurasi parameter ini.
-
Nama perusahaan opsional
Anda tidak perlu mengonfigurasi parameter ini.
-
Buat sertifikat server. Sertifikat server disimpan dalam file bernama server.crt.
Jika Anda ingin melindungi satu titik akhir, jalankan perintah berikut:
openssl x509 -req -in server.csr -text -days 365 -CA server-ca.crt -CAkey server-ca.key -CAcreateserial -out server.crtJika Anda ingin melindungi beberapa titik akhir, jalankan perintah berikut:
openssl x509 -req -in server.csr -text -days 365 -CA server-ca.crt -CAkey server-ca.key -CAcreateserial -out server.crt -extensions v3_req -extfile /tmp/openssl.cnf
Setelah menyelesaikan konfigurasi sebelumnya, jalankan perintah ls untuk melihat file yang dihasilkan:
# ls
server-ca.crt server-ca.key ca.srl server.crt server.csr server.keyDaftar berikut menjelaskan file tersebut:
server.crt: file yang berisi sertifikat server
server.key: file yang berisi kunci privat dari sertifikat server
server-ca.crt: file yang berisi sertifikat tanda tangan sendiri
server-ca.key: file yang berisi kunci privat dari sertifikat tanda tangan sendiri
Langkah 2: Gunakan sertifikat kustom yang dibuat untuk mengaktifkan enkripsi SSL
Setelah sertifikat kustom dikonfigurasi, status instans RDS berubah dari Running menjadi Modifying SSL. Setelah sekitar 3 menit, status berubah kembali menjadi Running.
Pergi ke halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS dan klik ID instans tersebut.
Masuk ke konsol ApsaraDB RDS. Temukan instans RDS dan klik ID instans tersebut. Di panel navigasi di sebelah kiri, klik . Pada halaman yang muncul, klik tab SSL.
Atur parameter Select Certificate Source ke Custom Certificate. Klik Configuration di sebelah Configure Database Certificate (to Prevent Database Disguise). Dalam kotak dialog yang muncul, konfigurasikan parameter Server Certificate dan Private Key of Server Certificate dan klik OK.

Parameter
Deskripsi
Server Certificate
Konten file server.crt yang Anda buat. Untuk informasi lebih lanjut, lihat Langkah 1: Buat sertifikat kustom. Pastikan semua konten dari -----BEGIN CERTIFICATE----- hingga -----END CERTIFICATE----- disalin ke bidang ini.
Private Key of Server Certificate
Konten file server.key yang Anda buat. Untuk informasi lebih lanjut, lihat Langkah 1: Buat sertifikat kustom. Pastikan semua konten dari -----BEGIN PRIVATE KEY----- hingga -----END PRIVATE KEY----- disalin ke bidang ini.
Saat meminta sertifikat kustom, Anda dapat memilih beberapa titik akhir yang ingin dilindungi. Jika Anda memilih beberapa titik akhir, Anda dapat menemukan beberapa catatan di parameter Protected Host.

Langkah 3: Hubungkan ke instans RDS dari klien database
Anda dapat menghubungkan ke instans RDS dari klien melalui SSL. Untuk informasi lebih lanjut, lihat Hubungkan ke Instans ApsaraDB RDS for PostgreSQL melalui SSL.
Langkah 4: (Opsional) Perbarui sertifikat kustom yang dibuat
Operasi ini memicu restart instans RDS. Lanjutkan dengan hati-hati.
Di tab SSL, klik Modify di sebelah Configure Database Certificate (to Prevent Database Disguise). Dalam kotak dialog yang muncul, masukkan sertifikat server baru yang ingin Anda gunakan dan kunci privat dari sertifikat server baru.
Langkah 5: (Opsional) Nonaktifkan enkripsi SSL
Operasi ini memicu restart instans RDS Anda. Lanjutkan dengan hati-hati.
Di tab SSL, klik Disable SSL.