Saat mengonfigurasi enkripsi SSL untuk instans ApsaraDB RDS for PostgreSQL, Anda dapat menggunakan sertifikat yang dikelola Alibaba Cloud atau sertifikat kustom. Topik ini menjelaskan cara menggunakan sertifikat kustom.
Prasyarat
-
Instans ApsaraDB RDS for PostgreSQL harus menjalankan PostgreSQL 10 atau versi yang lebih baru dan menggunakan cloud disk.
CatatanInstans dengan metode penagihan Serverless tidak didukung.
-
OpenSSL telah diinstal.
CatatanDi Linux, OpenSSL diinstal secara default. Di Windows, Anda harus mengunduh dan menginstal paket OpenSSL.
Catatan penggunaan
-
Mengaktifkan enkripsi SSL meningkatkan pemanfaatan CPU dan latensi baca/tulis.
-
Setelah mengaktifkan enkripsi SSL, putuskan lalu sambungkan kembali koneksi yang ada agar enkripsi berlaku.
-
Mengonfigurasi atau memperbarui sertifikat kustom, atau menonaktifkan enkripsi SSL, akan me-restart instans database Anda. Proses ini memerlukan waktu sekitar tiga menit. Disarankan untuk melakukan operasi ini selama jam sepi.
Langkah 1: Dapatkan sertifikat kustom
Saat membuat kunci privat dari sertifikat server atau Sertifikat tanda tangan sendiri, jangan mengenkripsi kunci privat dengan kata sandi. Jika tidak, Anda tidak dapat mengaktifkan enkripsi SSL.
Topik ini menggunakan sistem CentOS sebagai contoh. Jika Anda menggunakan sistem operasi Windows, perintah openssl sama dengan perintah openssl pada sistem CentOS. Ganti perintah cp dengan menyalin file secara manual, dan ganti perintah vim dengan mengedit file secara manual.
-
Buat Sertifikat tanda tangan sendiri (server-ca.crt) dan kunci privatnya (server-ca.key).
openssl req -new -x509 -days 365 -nodes -out server-ca.crt -keyout server-ca.key -subj "/CN=root-server-ca" -
Hasilkan file permintaan penandatanganan sertifikat (CSR) (server.csr) dan file kunci privat server (server.key).
Sertifikat kustom dapat melindungi satu atau beberapa Titik akhir database. Pilih metode yang sesuai di bawah ini untuk menghasilkan file CSR server.
-
Untuk 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"CatatanDalam contoh ini,
pgm-bpxxxxx.pg.rds.aliyuncs.comadalah contoh Titik akhir database. Ganti dengan Titik akhir database yang ingin Anda lindungi. Untuk melihat Titik akhir database, lihat Lihat atau ubah Titik akhir database dan Port. -
Untuk melindungi beberapa endpoint, ikuti langkah-langkah berikut.
-
Salin file konfigurasi OpenSSL untuk penggunaan sementara.
cp /etc/pki/tls/openssl.cnf /tmp/openssl.cnfCatatanJika Anda menggunakan Windows, file openssl.cnf terletak di subdirektori \bin\cnf dari direktori instalasi OpenSSL. Anda dapat menyalin file tersebut ke lokasi mana pun.
-
Jalankan perintah berikut untuk mengedit file openssl.cnf sementara:
vim /tmp/openssl.cnf -
Tekan
iuntuk masuk ke mode edit dan konfigurasikan konten berikut.# Tambahkan baris berikut di akhir bagian [ req ]. req_extensions = v3_req # Tambahkan bagian baru [ v3_req ]. [ v3_req ] basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names # Tambahkan bagian baru [ alt_names ] dan tentukan Titik akhir database yang ingin dilindungi setelah DNS. [ alt_names ] DNS.1 = pgm-bpxxxxx.pg.rds.aliyuncs.com DNS.2 = pgm-bpxxxxx.pg.rds.aliyuncs.com -
Tekan tombol
Escuntuk keluar dari mode edit. Lalu, ketik:wquntuk menyimpan perubahan dan keluar. -
Hasilkan file CSR server (server.csr) dan file kunci privat server (server.key).
openssl req -new -nodes -text -out server.csr -keyout server.key -config /tmp/openssl.cnfSaat menghasilkan file CSR (server.csr), OpenSSL akan meminta parameter berikut.
Parameter
Deskripsi
Contoh
Country name
Kode negara ISO dua huruf.
CN
State or province name
Provinsi atau negara bagian.
Zhejiang
Locality name
Kota.
Hangzhou
Organization name
Nama perusahaan.
Alibaba
Organizational unit name
Nama departemen.
Aliyun
Common name
Nama domain tempat Anda meminta sertifikat SSL. Parameter ini telah dikonfigurasi sebelumnya dalam file openssl.cnf dan dapat dilewati.
-
Email address
Tidak wajib.
-
A challenge password
Tidak wajib.
-
An optional company name
Tidak wajib.
-
-
-
-
Hasilkan sertifikat server (server.crt).
-
Jika 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.crt -
Jika Anda ingin melindungi beberapa Titik akhir database, 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
-
Jalankan perintah ls untuk melihat file yang dihasilkan:
# ls
server-ca.crt server-ca.key ca.srl server.crt server.csr server.key
File kunci:
-
server.crt: Sertifikat server.
-
server.key: Kunci privat server.
-
server-ca.crt: Sertifikat tanda tangan sendiri.
-
server-ca.key: Kunci privat dari Sertifikat tanda tangan sendiri.
Langkah 2: Aktifkan SSL dengan sertifikat kustom
Setelah mengonfigurasi sertifikat kustom, Status berubah menjadi Modifying SSL Settings selama sekitar tiga menit. Tunggu hingga status berubah menjadi Running sebelum melanjutkan.
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS dan klik ID instans tersebut.
-
Di panel navigasi kiri, pilih > SSL.
-
Atur Custom Certificate ke Custom Certificate. Di samping Configure Database Certificate (to Prevent Database Disguise), klik Configuration. Masukkan sertifikat server dan kunci privatnya, lalu klik OK.
Catatan: Setelah memodifikasi sertifikat server, sistem akan memperbaruinya secara otomatis dan me-restart instans database Anda.
Parameter
Nilai
Server certificate
Tempel seluruh isi file server.crt yang Anda peroleh di Langkah 1: Dapatkan sertifikat kustom, termasuk semua teks dari -----BEGIN CERTIFICATE----- hingga -----END CERTIFICATE-----.
Server certificate private key
Tempel seluruh isi file server.key yang Anda peroleh di Langkah 1: Dapatkan sertifikat kustom, termasuk semua teks dari -----BEGIN PRIVATE KEY----- hingga -----END PRIVATE KEY-----.
Jika Anda menentukan beberapa Titik akhir database untuk sertifikat tersebut, beberapa catatan akan ditampilkan di bawah Protected Host. Halaman ini juga menampilkan detail lainnya, seperti periode validitas, serta menyediakan opsi untuk View Certificate Details dan View Private Key Details. Untuk memperbarui sertifikat, klik Modify.
Langkah 3: Hubungkan ke database
ApsaraDB RDS for PostgreSQL mendukung koneksi SSL dari klien remote. Lihat Hubungkan ke instans ApsaraDB RDS for PostgreSQL melalui SSL untuk petunjuk koneksi.
Langkah 4: (Opsional) Perbarui sertifikat
Memperbarui sertifikat akan me-restart instans. Lakukan dengan hati-hati.
Di halaman SSL, pada bagian Configure Database Certificate (to Prevent Database Disguise), klik Modify . Lalu, masukkan sertifikat server dan kunci privat yang baru.
Langkah 5: (Opsional) Nonaktifkan enkripsi SSL
Menonaktifkan enkripsi SSL akan me-restart instans. Lakukan dengan hati-hati.
Untuk menonaktifkan enkripsi SSL, di halaman SSL, klik Disable SSL.