All Products
Search
Document Center

AnalyticDB:Konfigurasi Enkripsi SSL

Last Updated:Mar 01, 2026

Secara default, data yang ditransmisikan antara aplikasi klien dan instans AnalyticDB for PostgreSQL dikirim melalui jaringan dalam bentuk teks biasa. Enkripsi SSL mengamankan koneksi tersebut di lapisan transport, melindungi integritas data, serta mencegah penyadapan oleh pihak yang tidak berwenang.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

Catatan penggunaan

  • Sertifikat SSL berlaku selama satu tahun. Perbarui sertifikat sebelum masa berlakunya habis. Jika sertifikat kedaluwarsa, aplikasi yang menggunakan koneksi terenkripsi tidak dapat terhubung ke instans.

  • Enkripsi SSL dapat meningkatkan signifikan pemanfaatan CPU dan menambah waktu round-trip jaringan. Aktifkan SSL hanya jika Anda perlu mengenkripsi koneksi publik ke instans.

Aktifkan Enkripsi SSL

Peringatan

Operasi ini akan melakukan restart instans. Lakukan operasi ini pada jam sepi.

  1. Login ke Konsol AnalyticDB for PostgreSQL.

  2. Di pojok kiri atas konsol, pilih wilayah tempat instans berada.

  3. Temukan instans tersebut dan klik ID-nya.

  4. Di panel navigasi sebelah kiri, klik Security Controls.

  5. Klik tab SSL Encryption.

  6. Nyalakan SSL Encryption.

  7. Pada pesan Enable SSL Encryption, klik OK. Instans akan direstart. Setelah proses restart selesai dan status SSL menunjukkan Enabled, lanjutkan dengan mengunduh sertifikat.

  8. Klik Download Certificate.

File sertifikat

Paket yang diunduh berisi tiga file sertifikat:

FileFormatKasus penggunaan
PEM filePEMAplikasi non-Windows: psql, Python, Go, client Linux, atau macOS
P7B filePKCS#7Aplikasi Windows
JKS fileJava KeyStoreAplikasi Java. Kata sandi truststore default: apsaradb

Konfigurasi JDK 7 dan JDK 8

Jika Anda menggunakan file JKS dengan JDK 7 atau JDK 8, ubah properti berikut dalam file jre/lib/security/Java.security pada host aplikasi:

jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 224
jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024

Tanpa perubahan ini, handshake SSL akan gagal dengan error berikut:

javax.net.ssl.SSLHandshakeException: DHPublicKey does not comply to algorithm constraints

Terhubung dengan SSL

Setelah Anda mengaktifkan enkripsi SSL dan mengunduh sertifikat, konfigurasikan klien Anda untuk menggunakan SSL.

psql

Gunakan parameter sslmode dan sslrootcert untuk terhubung dengan SSL:

psql "host=<your-instance-endpoint> port=<port> dbname=<database> user=<username> sslmode=verify-ca sslrootcert=<path-to-pem-file>"

Ganti placeholder berikut:

PlaceholderDeskripsiContoh
<your-instance-endpoint>Alamat koneksi instansgp-bp1xxxxx-master.gpdb.rds.aliyuncs.com
<port>Port layanan5432
<database>Nama database tujuanpostgres
<username>Akun databasedbadmin
<path-to-pem-file>Path ke file sertifikat PEM yang diunduh/home/user/certs/ca-cert.pem

JDBC

Untuk aplikasi Java, tambahkan parameter SSL ke URL koneksi JDBC:

jdbc:postgresql://<your-instance-endpoint>:<port>/<database>?sslmode=verify-ca&sslrootcert=<path-to-pem-file>

Jika Anda menggunakan file JKS alih-alih file PEM, konfigurasikan truststore sebagai argumen JVM:

java -Djavax.net.ssl.trustStore=<path-to-jks-file> \
     -Djavax.net.ssl.trustStorePassword=apsaradb \
     -jar your-application.jar

Opsi sslmode

Klien PostgreSQL mendukung nilai sslmode berikut:

sslmodeEnkripsiVerifikasi sertifikatDisarankan
disableTidakTidakTidak
allowHanya jika server mengharuskannyaTidakTidak
preferYa, jika server mendukungnyaTidakTidak
requireYaTidakMinimum untuk koneksi publik
verify-caYaMemverifikasi sertifikat server terhadap CAYa
verify-fullYaMemverifikasi sertifikat dan hostnamePaling aman

Untuk koneksi publik, gunakan verify-ca atau verify-full untuk memvalidasi sertifikat server dan mencegah serangan man-in-the-middle.

Verifikasi koneksi SSL

Setelah terhubung dengan SSL, verifikasi bahwa enkripsi aktif.

Periksa banner login psql

Saat Anda terhubung dengan psql, banner login akan menampilkan detail koneksi SSL. Output-nya mirip seperti berikut:

Password for user dbadmin:
psql (14.0)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256)
Type "help" for help.

Baris SSL connection mengonfirmasi bahwa koneksi tersebut dienkripsi.

Kueri status koneksi

Untuk melihat status SSL semua koneksi aktif:

SELECT datname, usename, ssl, client_addr
FROM pg_stat_ssl
JOIN pg_stat_activity ON pg_stat_ssl.pid = pg_stat_activity.pid
ORDER BY ssl;

Nilai t pada kolom ssl mengonfirmasi bahwa koneksi tersebut menggunakan SSL.

Perbarui Sertifikat SSL

Sertifikat SSL kedaluwarsa setelah satu tahun. Perbarui sebelum masa berlakunya habis untuk menghindari kegagalan koneksi.

Peringatan

Operasi ini akan melakukan restart instans. Lakukan operasi ini pada jam sepi.

  1. Login ke Konsol AnalyticDB for PostgreSQL.

  2. Di pojok kiri atas konsol, pilih wilayah tempat instans berada.

  3. Temukan instans tersebut dan klik ID-nya.

  4. Di panel navigasi sebelah kiri, klik Security Controls.

  5. Klik tab SSL Encryption.

  6. Klik Update Validity di sebelah kanan SSL Encryption.

  7. Pada pesan Update SSL Certificate Validity, klik OK.

Setelah instans direstart, unduh sertifikat baru dan perbarui di semua aplikasi klien.

Nonaktifkan Enkripsi SSL

Peringatan

Operasi ini akan melakukan restart instans. Lakukan operasi ini pada jam sepi.

  1. Login ke Konsol AnalyticDB for PostgreSQL.

  2. Di pojok kiri atas konsol, pilih wilayah tempat instans berada.

  3. Temukan instans tersebut dan klik ID-nya.

  4. Di panel navigasi sebelah kiri, klik Security Controls.

  5. Klik tab SSL Encryption.

  6. Matikan SSL Encryption.

  7. Pada pesan Disable SSL Encryption, klik OK.

Setelah menonaktifkan SSL, perbarui string koneksi klien untuk menghapus parameter spesifik SSL seperti sslrootcert.

Pemecahan masalah

SSLHandshakeException: DHPublicKey does not comply to algorithm constraints

Penyebab: Konfigurasi keamanan default JDK 7 atau JDK 8 menolak ukuran kunci DH yang digunakan oleh server.

Solusi: Ubah file jre/lib/security/Java.security:

jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 224
jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024

Restart aplikasi setelah melakukan perubahan ini.

Koneksi ditolak setelah mengaktifkan SSL

Penyebab: Instans masih dalam proses restart setelah SSL diaktifkan.

Solusi: Tunggu hingga status instans kembali menjadi Running di konsol sebelum mencoba terhubung.

Error sertifikat kedaluwarsa

Penyebab: Sertifikat SSL telah melebihi periode validitas satu tahunnya.

Solusi: Perbarui sertifikat dengan mengklik Update Validity di konsol, lalu unduh dan terapkan sertifikat baru ke semua klien.

Referensi API

OperasiDeskripsi
DescribeDBInstanceSSLKueri pengaturan enkripsi SSL untuk suatu instans
ModifyDBInstanceSSLAktifkan atau nonaktifkan enkripsi SSL, atau perbarui sertifikat SSL