Enkripsi SSL melindungi data yang sedang ditransmisikan antara instans ApsaraDB RDS for SQL Server dan klien, mencegah penyadapan, intersepsi, dan perusakan. Anda dapat menggunakan sertifikat yang dihasilkan oleh Alibaba Cloud atau mengunggah sertifikat kustom.
Pilih pendekatan Anda sebelum memulai
Terdapat dua cara untuk menggunakan SSL:
-
Paksa SSL untuk semua koneksi: Saat diaktifkan, semua koneksi klien ke instans harus dienkripsi, terlepas dari titik akhir yang digunakan. Koneksi tanpa enkripsi akan ditolak, dan tidak diperlukan sertifikat CA di sisi klien. Memerlukan instans VPC.
-
Enkripsi koneksi tertentu (titik akhir internal atau publik): SSL diaktifkan pada titik akhir yang dipilih. Klien harus menyajikan sertifikat CA untuk membuat koneksi terenkripsi.
CatatanTransport Layer Security (TLS) adalah penerus langsung dari SSL. Dalam topik ini, SSL mengacu pada TLS maupun SSL. RDS for SQL Server mendukung TLS 1.0, TLS 1.1, dan TLS 1.2.
Cara kerja SSL
Saat koneksi terenkripsi dibuat:
-
Instans RDS mengirimkan server certificate (berisi kunci publik) ke klien.
-
Klien mengenkripsi kunci simetris menggunakan kunci publik tersebut.
-
Instans RDS mendekripsi kunci simetris menggunakan kunci privat.
-
Kedua sisi menggunakan kunci simetris tersebut untuk mengenkripsi dan mendekripsi semua data selanjutnya.
Secara opsional, klien menggunakan sertifikat CA untuk memverifikasi server certificate — memastikan identitas instans RDS dan mencegah serangan man-in-the-middle.
Prasyarat
Prasyarat hanya berlaku saat menggunakan sertifikat kustom. Sebelum memulai, pastikan:
-
Layanan Object Storage Service (OSS) telah diaktifkan. Lihat Aktifkan OSS.
-
Akun layanan ApsaraDB RDS telah diberi otorisasi untuk mengakses Bucket OSS Anda melalui Akun Alibaba Cloud Anda.
-
Sertifikat kustom Anda dalam format PFX dan telah diunggah ke Bucket OSS. Untuk memulai, lihat Memulai dengan konsol OSS. Untuk mengunggah file besar, lihat Multipart upload. Untuk unggahan berbasis browser, lihat Operasi umum.
Batasan
-
SSL tidak didukung untuk instans ApsaraDB RDS arsitektur tanpa server. Lihat Instans ApsaraDB RDS for SQL Server arsitektur tanpa server.
-
SSL tidak didukung untuk koneksi ke titik akhir pemisahan baca/tulis. Lihat Aktifkan pemisahan baca/tulis dengan mengaktifkan titik akhir routing read-only.
-
Saat SSL diaktifkan, operasi berikut tidak tersedia: peningkatan versi mesin utama, pembaruan versi mesin minor, pembuatan instans temporary yang menjalankan versi mesin utama yang lebih baru, dan migrasi instans lintas zona. Lihat Perbarui versi mesin minor dan Buat instans temporary yang menjalankan versi SQL Server yang diperlukan.
Catatan penggunaan
-
Masa berlaku sertifikat: Sertifikat SSL berlaku selama satu tahun. Perpanjang sebelum kedaluwarsa — sertifikat yang kedaluwarsa mencegah aplikasi dan klien membuat koneksi terenkripsi. Lihat Perbarui periode validitas sertifikat.
-
Restart instans: Mengaktifkan SSL, menonaktifkan SSL, atau memperbarui sertifikat memicu restart instans. Instans tidak tersedia selama beberapa menit. Lakukan operasi ini pada jam sepi.
-
Beban CPU: Enkripsi SSL dapat meningkatkan pemanfaatan CPU secara signifikan. Aktifkan SSL hanya jika enkripsi diperlukan — misalnya, saat terhubung melalui titik akhir publik.
Langkah 1: Aktifkan SSL
-
Login ke Konsol ApsaraDB RDS dan buka halaman Instances. Pilih wilayah, temukan instans, lalu klik ID instans.
-
Di panel navigasi kiri, klik Data Security.
-
Di tab SSL, aktifkan Disabled.
-
Pada kotak dialog Configure SSL, pilih metode enkripsi dan konfigurasikan parameter.
Pilih salah satu metode berikut:
Gunakan kunci yang dihasilkan secara otomatis oleh Alibaba Cloud

|
Parameter |
Wajib |
Deskripsi |
|
Select Protected Endpoint |
Ya |
Pilih titik akhir yang akan dienkripsi: internal atau publik. Anda hanya dapat mengenkripsi satu jenis titik akhir dalam satu waktu. Catatan
Untuk mengenkripsi titik akhir publik, Anda harus mengajukan permohonan terlebih dahulu. Lihat Ajukan atau release titik akhir publik. |
|
Forceful Encryption |
Tidak |
Saat diaktifkan, enkripsi paksa berlaku untuk seluruh instans. Semua koneksi — baik melalui titik akhir internal maupun publik — harus dienkripsi, terlepas dari apakah titik akhir tersebut merupakan titik akhir yang dilindungi. Instans tidak lagi menerima koneksi tanpa enkripsi, dan tidak diperlukan unggahan sertifikat CA. Catatan
Hanya tersedia untuk instans di virtual private cloud (VPC). Untuk mengubah jenis jaringan, lihat Ubah jenis jaringan. |
|
Earliest TLS Version Supported |
Tidak |
Versi TLS minimum yang diterima server. Nilai yang valid: 1.0, 1.1, 1.2. Misalnya, jika diatur ke 1.1, server hanya menerima TLS 1.1 dan TLS 1.2. |
Gunakan sertifikat kustom
Lengkapi Prasyarat sebelum melanjutkan.
-
Pada langkah Upload PFX format certificate to OSS, klik Next step.
-
Pada langkah Use custom key encryption, konfigurasikan parameter berikut lalu klik Next step.
Parameter
Deskripsi
OSS Bucket
Pilih Bucket OSS tempat sertifikat disimpan.
Certificate
Pilih sertifikat PFX.
Password
Masukkan password sertifikat.

-
Pada langkah Set General Options, konfigurasikan parameter berikut.
Parameter
Wajib
Deskripsi
Select Protected Endpoint
Ya
Pilih titik akhir yang akan dienkripsi: internal atau publik. Anda hanya dapat mengenkripsi satu jenis titik akhir dalam satu waktu.
CatatanUntuk mengenkripsi titik akhir publik, Anda harus mengajukan permohonan terlebih dahulu. Lihat Ajukan atau release titik akhir publik.
Forceful Encryption
Tidak
Saat diaktifkan, instans RDS menolak koneksi tanpa enkripsi. Hanya berlaku untuk titik akhir internal — tidak diperlukan unggahan sertifikat CA.
CatatanHanya tersedia untuk instans di VPC. Untuk mengubah jenis jaringan, lihat Ubah jenis jaringan. Saat titik akhir internal dan publik keduanya ada, Anda harus melepas titik akhir publik sebelum mengaktifkan Forceful Encryption — lihat Ajukan atau release titik akhir publik.
Earliest TLS Version Supported
Tidak
Versi TLS minimum yang diterima server. Nilai yang valid: 1.0, 1.1, 1.2.

-
Klik OK.
Mengaktifkan SSL membutuhkan waktu sekitar satu menit. Muat ulang halaman untuk memeriksa status instans.
Langkah 2: Unduh sertifikat CA
Anda dapat terhubung ke instans RDS melalui SSL tanpa sertifikat CA, tetapi sangat disarankan untuk mengunduh dan menggunakannya. Sertifikat CA memungkinkan klien Anda memverifikasi server certificate selama handshake SSL — memastikan identitas instans dan mencegah serangan man-in-the-middle.
-
Login ke Konsol ApsaraDB RDS dan buka halaman Instances. Pilih wilayah, temukan instans, lalu klik ID instans.
-
Di panel navigasi kiri, klik Data Security.
-
Di tab SSL, klik Download CA Certificate.
Paket yang diunduh berisi tiga file sertifikat:
|
File |
Penggunaan |
|
P7B |
Client Windows |
|
PEM |
Client dan aplikasi non-Windows |
|
JKS |
Aplikasi berbasis Java (format truststore). Password default: |
Saat menggunakan file JKS dengan JDK 7 atau JDK 8, perbarui entri berikut di jre/lib/security/Java.security pada host yang menjalankan aplikasi Anda: Tanpa perubahan ini, koneksi gagal dengan error berikut: Sebagian besar error serupa pada JDK 7 atau JDK 8 disebabkan oleh kesalahan konfigurasi yang sama.
jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 224
jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024javax.net.ssl.SSLHandshakeException: DHPublicKey does not comply to algorithm constraints
Langkah 3: Konfigurasikan SSL pada client Anda
Setelah mengaktifkan SSL, konfigurasikan sertifikat pada aplikasi atau klien Anda. Langkah-langkah berikut menggunakan SQL Server Management Studio (SSMS) sebagai contoh.
Impor sertifikat ke Windows
-
Buka menu Start, cari
certmgr.msc, lalu buka. -
Pada kotak dialog certmgr, klik kanan Trusted Root Certification Authorities.
-
Pilih All Tasks > Import.
-
Klik Next.
-
Pada Certificate Import Wizard, klik Browse, pilih sertifikat SSL yang diunduh di Langkah 2, lalu klik Next.
-
Pilih direktori untuk menyimpan sertifikat lalu klik Next.
-
Klik Finish dan tunggu hingga proses impor selesai.
Konfigurasikan SSMS
-
Buka SSMS dan klik Options di pojok kanan bawah.

-
Di tab Connection Properties, pilih Encrypt connection dan Trust server certificate, lalu klik Connect.

-
Jalankan kueri berikut untuk memverifikasi koneksi telah dienkripsi. Hasil
TRUEmengonfirmasi enkripsi aktif.SELECT ENCRYPT_OPTION FROM SYS.DM_EXEC_CONNECTIONS WHERE SESSION_ID = @@SPID
Lampiran: Contoh kode untuk koneksi SSL
Python
# -*- coding:utf-8 -*-
import ssl
import pyodbc
# Buat konteks SSL menggunakan sertifikat PEM yang diunduh
context = ssl.create_default_context(purpose=ssl.Purpose.SERVER_AUTH, cafile="D:\ca\ApsaraDB-CA-Chain.pem")
# Terhubung ke instans RDS
# Ganti placeholder dengan nilai aktual Anda:
# SERVER - string koneksi instans RDS
# DATABASE - nama database
# UID - username
# PWD - password
conn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};SERVER=rm-2zec********.sqlserver.rds.aliyuncs.com;DATABASE=master;UID=zhttest;PWD=zht****;Encrypt=yes', ssl=context)
cursor = conn.cursor()
cursor.execute('SELECT @@version')
rows = cursor.fetchall()
for row in rows:
print(row)
conn.close()
C#
using System;
using System.Data.SqlClient;
namespace SqlConnectionSSLExample
{
class Program
{
static void Main(string[] args)
{
// Terhubung ke instans RDS dengan enkripsi SSL diaktifkan
// Ganti placeholder dengan nilai aktual Anda:
// Data Source - string koneksi instans RDS
// Initial Catalog - nama database
// User ID - username
// Password - password
string connectionString = "Data Source=rm-2ze********.sqlserver.rds.aliyuncs.com;Initial Catalog=master;User ID=zhttest;Password=zht****;Encrypt=true;";
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
try
{
SqlCommand cmd = new SqlCommand("SELECT @@version", connection);
string result = cmd.ExecuteScalar().ToString();
Console.WriteLine(result);
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
}
}
}
Langkah selanjutnya
Perbarui periode validitas sertifikat
Sertifikat SSL berlaku selama satu tahun. Perpanjang sebelum kedaluwarsa — sertifikat yang kedaluwarsa mencegah aplikasi dan klien membuat koneksi terenkripsi.
Saat sertifikat SSL kustom akan kedaluwarsa, Alibaba Cloud memberi tahu pengguna yang mengaktifkan enkripsi SSL menggunakan sertifikat kustom melalui email dan pesan internal. Lihat pesan internal di halaman Event Center.
Memperbarui masa berlaku sertifikat akan merestart instans RDS. Lakukan ini pada jam sepi.
-
Login ke Konsol ApsaraDB RDS dan buka halaman Instances. Pilih wilayah, temukan instans, lalu klik ID instans.
-
Di panel navigasi kiri, klik Data Security.
-
Di tab SSL, klik Update Validity.

Nonaktifkan SSL
-
Menonaktifkan SSL akan merestart instans. Alih bencana primary/secondary dipicu untuk meminimalkan dampak, tetapi lakukan ini pada jam sepi.
-
Setelah SSL dinonaktifkan, aplikasi Anda hanya dapat terhubung melalui koneksi tanpa enkripsi.
-
Kinerja akses meningkat setelah SSL dinonaktifkan, tetapi tingkat keamanan menurun. Nonaktifkan SSL hanya di lingkungan yang aman.
-
Buka halaman Instances. Pilih wilayah, temukan instans, lalu klik ID instans.
-
Di panel navigasi kiri, klik Data Security.
-
Klik tab SSL.
-
Nonaktifkan SSL Encryption. Pada pesan konfirmasi, klik OK.
Periksa status enkripsi koneksi
Jalankan kueri berikut di SQL Server untuk melihat apakah SSL diaktifkan untuk setiap koneksi aktif:
SELECT session_id, encrypt_option
FROM sys.dm_exec_connections;
GO
Jika encrypt_option mengembalikan true untuk suatu session ID, berarti SSL diaktifkan untuk koneksi tersebut.
Referensi API
FAQ
Apa yang terjadi jika saya tidak memperbarui sertifikat SSL yang kedaluwarsa? Apakah instans RDS saya gagal atau menjadi kurang aman?
Instans RDS tetap berjalan normal — tidak terjadi error dan tidak muncul risiko keamanan. Namun, aplikasi dan klien tidak dapat membuat koneksi terenkripsi hingga sertifikat diperbarui.