Fitur enkripsi Secure Sockets Layer (SSL) dari ApsaraDB RDS for SQL Server digunakan untuk mengenkripsi data dalam transit. Fitur ini cocok untuk skenario yang memerlukan kepatuhan dan keamanan koneksi melalui jaringan internal atau Internet. Anda dapat menggunakan sertifikat yang disediakan oleh Alibaba Cloud atau sertifikat kustom untuk mengenkripsi data dalam transit. Fitur ini juga mendukung enkripsi SSL paksa pada koneksi ke titik akhir internal instans RDS Anda, memastikan kerahasiaan data dalam transit.
Deskripsi fitur
Fitur enkripsi SSL mengamankan data yang ditransmisikan antara instans RDS dan klien dengan mencegah penyadapan, intersepsi, atau perusakan oleh pihak ketiga.
Setelah mengaktifkan fitur enkripsi SSL, Anda dapat menentukan apakah akan menerapkan enkripsi SSL paksa pada koneksi antara instans RDS dan klien.
Saat fitur enkripsi SSL diaktifkan, sistem menghasilkan sertifikat server, kunci publik, dan kunci privat.
Selama pembuatan koneksi terenkripsi, sistem mengirimkan sertifikat server, termasuk kunci publik, ke klien. Klien kemudian mengenkripsi kunci simetris menggunakan kunci publik yang diterima. Sistem menggunakan kunci privat untuk mendekripsi kunci simetris tersebut. Dengan cara ini, instans RDS dan klien menggunakan kunci simetris untuk mengenkripsi dan mendekripsi data, memastikan kerahasiaan komunikasi. Klien juga dapat memverifikasi sertifikat server menggunakan otoritas sertifikat (CA) untuk mengonfirmasi identitas instans RDS dan mencegah serangan man-in-the-middle.
Transport Layer Security (TLS) adalah penerus langsung dari SSL. Dalam topik ini, SSL merujuk pada TLS dan SSL.
ApsaraDB RDS for SQL Server mendukung TLS 1.0, TLS 1.1, dan TLS 1.2.
Prasyarat
Sebelum menggunakan kunci kustom untuk enkripsi, pastikan persyaratan berikut terpenuhi:
Object Storage Service (OSS) telah diaktifkan. Untuk informasi lebih lanjut, lihat Aktifkan OSS.
Akun layanan ApsaraDB RDS diberi otorisasi menggunakan akun Alibaba Cloud Anda untuk mengakses Bucket OSS.
Sertifikat kustom harus dalam format
PFXdan diunggah ke Bucket OSS.Untuk informasi lebih lanjut, lihat Mulai menggunakan konsol OSS, Unggah multipart, dan Operasi umum.
Catatan penggunaan
Sertifikat SSL tetap valid selama satu tahun. Sebelum sertifikat SSL yang digunakan kedaluwarsa, Anda harus memperbarui masa berlaku sertifikat SSL. Jika tidak, aplikasi atau klien Anda yang menggunakan koneksi jaringan terenkripsi tidak dapat terhubung ke instans RDS Anda. Untuk informasi lebih lanjut tentang cara memperbarui masa berlaku sertifikat SSL, lihat Perbarui masa berlaku sertifikat SSL.
Saat mengaktifkan atau menonaktifkan fitur enkripsi SSL atau memperbarui sertifikat SSL untuk instans RDS Anda, instans RDS akan dimulai ulang. Instans RDS tidak tersedia selama beberapa menit selama restart. Oleh karena itu, kami sarankan Anda melakukan operasi ini selama jam-jam sepi.
Enkripsi SSL dapat menyebabkan peningkatan signifikan dalam utilisasi CPU. Kami sarankan Anda mengaktifkan fitur enkripsi SSL hanya jika Anda perlu mengenkripsi koneksi ke titik akhir publik instans RDS Anda.
Batasan
Fitur enkripsi SSL tidak didukung oleh instans RDS tanpa server. Untuk informasi lebih lanjut, lihat Instans ApsaraDB RDS for SQL Server tanpa server.
Fitur enkripsi SSL tidak didukung untuk koneksi ke titik akhir pemisahan baca/tulis instans RDS Anda. Untuk informasi lebih lanjut tentang fitur ini, lihat Aktifkan pemisahan baca/tulis dengan mengaktifkan titik akhir routing baca saja.
Jika fitur enkripsi SSL diaktifkan untuk instans RDS Anda, Anda tidak dapat meningkatkan versi mesin utama, memperbarui versi mesin minor, membuat instans RDS sementara yang menjalankan versi mesin utama yang lebih baru daripada instans RDS Anda, dan memigrasikan instans RDS Anda lintas zona. Untuk informasi lebih lanjut, lihat Tingkatkan versi mesin utama, Perbarui versi mesin minor, Buat instans RDS sementara yang menjalankan versi SQL Server yang diperlukan, dan Migrasikan instans ApsaraDB RDS for SQL Server lintas zona.
1. Aktifkan fitur enkripsi SSL untuk instans RDS Anda
Masuk ke konsol ApsaraDB RDS dan buka halaman Instans. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS dan klik ID instans.
Di panel navigasi di sebelah kiri, klik Data Security.
Di tab SSL, nyalakan Disabled.
Di kotak dialog Configure SSL, pilih metode enkripsi dan konfigurasikan pengaturannya.
Gunakan kunci yang dihasilkan secara otomatis oleh Alibaba Cloud

Parameter
Diperlukan
Deskripsi
Select Protected Endpoint:
Ya
Pilih titik akhir untuk mana Anda ingin mengaktifkan fitur enkripsi SSL. Anda dapat mengenkripsi koneksi yang dibuat ke titik akhir internal atau publik instans RDS berdasarkan kebutuhan bisnis Anda. Anda tidak dapat mengenkripsi kedua jenis koneksi tersebut.
CatatanJika Anda ingin mengenkripsi koneksi yang dibuat ke titik akhir publik instans RDS, pastikan bahwa Anda telah mengajukan titik akhir publik. Untuk informasi lebih lanjut, lihat Ajukan atau lepaskan titik akhir publik.
Forceful Encryption
Tidak
Tentukan apakah akan mendukung enkripsi SSL paksa. Enkripsi SSL paksa hanya didukung pada koneksi yang dibuat ke titik akhir internal instans RDS. Setelah Anda menyalakan Enkripsi Paksa, Anda tidak perlu mengunggah sertifikat CA, dan koneksi non-terenkripsi tidak didukung.
CatatanAnda hanya dapat mengaktifkan fitur ini untuk instans RDS yang berada di virtual private clouds (VPC). Untuk informasi lebih lanjut, lihat Ubah tipe jaringan.
Enkripsi SSL paksa tidak didukung pada koneksi yang dibuat ke titik akhir publik instans RDS. Saat koneksi yang dibuat ke titik akhir internal dan publik instans RDS ada, jika Anda ingin menyalakan Enkripsi Paksa untuk koneksi yang dibuat ke titik akhir internal instans RDS, Anda harus melepaskan titik akhir publik terlebih dahulu. Untuk informasi lebih lanjut, lihat Ajukan atau lepaskan titik akhir publik.
Earliest TLS Version Supported
Tidak
Pilih versi TLS minimum yang didukung. Nilai valid: 1.0, 1.1, dan 1.2.
Sebagai contoh, jika Anda mengatur parameter ini ke 1.1, server hanya menerima koneksi melalui protokol TLS 1.1 dan TLS 1.2.
Gunakan kunci kustom untuk enkripsi
CatatanSebelum menggunakan kunci kustom untuk enkripsi, pastikan bahwa persyaratan yang dijelaskan di Prasyarat terpenuhi.
Di langkah Upload PFX format certificate to OSS, klik Next step.
Di langkah Use custom key encryption, konfigurasikan parameter yang diperlukan dan klik Next step. Tabel berikut menjelaskan parameter.

Parameter
Deskripsi
OSS Bucket
Pilih Bucket OSS tempat sertifikat berada.
Certificate
Pilih sertifikat
PFXyang diperlukan.Password
Masukkan kata sandi sertifikat.
Di langkah Set General Options, konfigurasikan parameter berikut.

Parameter
Diperlukan
Deskripsi
Select Protected Endpoint:
Ya
Pilih titik akhir untuk mana Anda ingin mengaktifkan fitur enkripsi SSL. Anda dapat mengenkripsi koneksi yang dibuat ke titik akhir internal atau publik instans RDS berdasarkan kebutuhan bisnis Anda. Anda tidak dapat mengenkripsi kedua jenis koneksi tersebut.
CatatanJika Anda ingin mengenkripsi koneksi yang dibuat ke titik akhir publik instans RDS, pastikan bahwa Anda telah mengajukan titik akhir publik. Untuk informasi lebih lanjut, lihat Ajukan atau lepaskan titik akhir publik.
Forceful Encryption
Tidak
Tentukan apakah akan mendukung enkripsi SSL paksa. Enkripsi SSL paksa hanya didukung pada koneksi yang dibuat ke titik akhir internal instans RDS. Setelah Anda menyalakan Enkripsi Paksa, Anda tidak perlu mengunggah sertifikat CA, dan koneksi non-terenkripsi tidak didukung.
CatatanAnda hanya dapat mengaktifkan fitur ini untuk instans RDS yang berada di virtual private clouds (VPC). Untuk informasi lebih lanjut, lihat Ubah tipe jaringan.
Enkripsi SSL paksa tidak didukung pada koneksi yang dibuat ke titik akhir publik instans RDS. Saat koneksi yang dibuat ke titik akhir internal dan publik instans RDS ada, jika Anda ingin menyalakan Enkripsi Paksa untuk koneksi yang dibuat ke titik akhir internal instans RDS, Anda harus melepaskan titik akhir publik terlebih dahulu. Untuk informasi lebih lanjut, lihat Ajukan atau lepaskan titik akhir publik.
Earliest TLS Version Supported
Tidak
Pilih versi TLS minimum yang didukung. Nilai valid: 1.0, 1.1, dan 1.2.
Sebagai contoh, jika Anda mengatur parameter ini ke 1.1, server hanya menerima koneksi melalui protokol TLS 1.1 dan TLS 1.2.
Klik OK.
Membutuhkan waktu sekitar 1 menit untuk mengaktifkan fitur enkripsi SSL. Anda dapat menyegarkan halaman untuk melihat status instans RDS.
2. Unduh sertifikat SSL
Anda dapat menggunakan fitur enkripsi SSL untuk terhubung ke instans RDS tanpa sertifikat CA. Kami sarankan Anda mengunduh dan menggunakan sertifikat CA. Anda dapat menggunakan sertifikat CA untuk memverifikasi sertifikat server yang diterima selama jabat tangan SSL. Ini membantu mengonfirmasi identitas instans RDS dan mencegah serangan man-in-the-middle.
Masuk ke konsol ApsaraDB RDS dan buka halaman Instans. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS dan klik ID instans.
Di panel navigasi di sebelah kiri, klik Data Security.
Di tab SSL, klik Download CA Certificate.
File yang Anda unduh adalah paket yang berisi file berikut:
File P7B: file sertifikat SSL yang digunakan untuk sistem operasi Windows.
File PEM: file sertifikat SSL yang digunakan untuk sistem operasi selain Windows atau aplikasi yang tidak dijalankan di Windows.
File JKS: file sertifikat SSL yang disimpan di truststore yang didukung Java. Anda dapat menggunakan file ini untuk mengimpor file sertifikat SSL dari rantai sertifikat SSL ke aplikasi berbasis Java. Kata sandi default adalah apsaradb.
PentingSaat menggunakan file JKS di JDK 7 atau JDK 8, Anda harus memodifikasi item konfigurasi keamanan default JDK berikut di file
jre/lib/security/Java.securitydi host tempat aplikasi Anda berada:jdk.tls.disabledAlgorithms=SSLv3, RC4, DH keySize < 224 jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024Jika Anda tidak memodifikasi konfigurasi ini, kesalahan berikut dilaporkan. Dalam banyak kasus, kesalahan serupa lainnya juga disebabkan oleh konfigurasi keamanan Java yang tidak valid:
javax.net.ssl.SSLHandshakeException: DHPublicKey does not comply to algorithm constraints
3. Konfigurasikan sertifikat SSL
Setelah mengaktifkan fitur enkripsi SSL, Anda harus mengonfigurasikan sertifikat SSL di aplikasi atau klien Anda. Topik ini memberikan contoh tentang cara menggunakan SQL Server Management Studio (SSMS) untuk menginstal sertifikat SSL. Jika Anda ingin menggunakan aplikasi atau klien lain, lihat instruksi terkait.
3.1 Impor sertifikat SSL
Di kotak pencarian di pojok kiri bawah desktop, masukkan certmgr.msc dan buka certmgr.msc.
Di kotak dialog certmgr, klik kanan Trusted Root Certification Authorities.
Pilih .
Klik Next.
Di kotak dialog Certificate Import Wizard, klik Browse untuk mengimpor sertifikat SSL yang Anda unduh, dan klik Next. Untuk informasi lebih lanjut tentang cara mengunduh sertifikat SSL, lihat 2. Unduh sertifikat SSL.
Pilih direktori untuk menyimpan sertifikat SSL dan klik Next.
Klik Finish, lalu tunggu hingga Sertifikat selesai diimpor.
3.2 Konfigurasikan SSMS
Buka SSMS dan klik Options di pojok kanan bawah kotak dialog.

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

Jalankan pernyataan berikut. Jika TRUE dikembalikan, koneksi dienkripsi.
SELECT ENCRYPT_OPTION FROM SYS.DM_EXEC_CONNECTIONS WHERE SESSION_ID = @@SPID
Lampiran: Contoh kode untuk koneksi melalui SSL
# -*- coding:utf-8 -*-
import ssl
import pyodbc
# Buat konteks SSL untuk menetapkan koneksi SSL dalam Python.
context = ssl.create_default_context(purpose=ssl.Purpose.SERVER_AUTH, cafile="D:\ca\ApsaraDB-CA-Chain.pem")
# Tetapkan koneksi.
# SERVER menentukan alamat IP server tempat database yang diperlukan berada. DATABASE menentukan nama database yang ingin Anda sambungkan. UID menentukan nama pengguna yang diperlukan untuk masuk ke database. PWD menentukan kata sandi yang diperlukan untuk masuk ke database. Encrypt menentukan apakah enkripsi SSL diaktifkan. Nilai yes menunjukkan bahwa enkripsi SSL diaktifkan.
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)
# Tutup koneksi.
conn.close()using System;
using System.Data.SqlClient;
namespace SqlConnectionSSLExample
{
class Program
{
static void Main(string[] args)
{
// Tetapkan koneksi.
// Data Source menentukan alamat IP server tempat database SQL Server yang diperlukan berada. Initial Catalog menentukan nama database yang diperlukan yang ingin Anda sambungkan. User ID menentukan nama pengguna yang diperlukan untuk terhubung ke database. Password menentukan kata sandi yang diperlukan untuk terhubung ke database. Encrypt menentukan apakah transmisi terenkripsi SSL diaktifkan. Nilai true menunjukkan bahwa enkripsi SSL diaktifkan.
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))
{
// Buka koneksi.
connection.Open();
try
{
// Jalankan pernyataan SQL.
SqlCommand cmd = new SqlCommand("SELECT @@version", connection);
string result = cmd.ExecuteScalar().ToString();
Console.WriteLine(result);
}
catch (Exception ex)
{
Console.WriteLine($"Error: {ex.Message}");
}
}
}
}
}Operasi terkait
Apa yang harus dilakukan selanjutnya
Perbarui masa berlaku sertifikat
Sertifikat SSL tetap valid selama satu tahun. Sebelum sertifikat SSL yang digunakan kedaluwarsa, Anda harus memperbarui masa berlaku sertifikat SSL. Jika tidak, aplikasi atau klien Anda yang menggunakan koneksi jaringan terenkripsi tidak dapat terhubung ke instans RDS Anda. Jika sertifikat SSL akan segera kedaluwarsa, Alibaba Cloud memberi tahu pengguna yang mengaktifkan enkripsi SSL dengan menggunakan sertifikat kustom melalui email, dan pesan internal. Anda dapat melihat pesan internal di halaman Pusat Insiden. Sebelum sertifikat SSL kedaluwarsa, Anda harus memperbarui masa berlaku sertifikat SSL untuk memastikan bahwa aplikasi atau klien Anda dapat terhubung ke instans RDS Anda.
Memperbarui masa berlaku sertifikat SSL menyebabkan instans RDS Anda dimulai ulang. Lakukan dengan hati-hati saat Anda memperbarui masa berlaku sertifikat SSL.
Masuk ke konsol ApsaraDB RDS dan buka halaman Instans. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS dan klik ID instans.
Di panel navigasi di sebelah kiri, klik Data Security.
Di tab SSL, klik Update Validity.

Nonaktifkan fitur enkripsi SSL
Saat menonaktifkan fitur enkripsi SSL, instans RDS Anda dimulai ulang. Dalam hal ini, sistem memicu switchover primer/sekunder untuk mengurangi dampak pada beban kerja Anda. Kami tetap menyarankan Anda menonaktifkan fitur enkripsi SSL selama jam-jam sepi.
Setelah menonaktifkan fitur enkripsi SSL, kinerja akses meningkat, tetapi keamanan menurun. Kami sarankan Anda menonaktifkan fitur enkripsi SSL hanya di lingkungan aman.
Jika Anda menonaktifkan fitur enkripsi SSL, aplikasi Anda hanya dapat terhubung ke instans RDS Anda melalui koneksi non-SSL.
Buka halaman Instans. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS dan klik ID instans.
Di panel navigasi di sebelah kiri, klik Data Security.
Di halaman yang muncul, klik tab SSL.
Matikan SSL Encryption. Di pesan yang muncul, klik OK.
Lihat detail tentang enkripsi koneksi
Di SQL Server, Anda dapat menjalankan pernyataan berikut untuk memeriksa apakah fitur enkripsi SSL diaktifkan untuk koneksi saat ini:
SELECT session_id,encrypt_option
FROM sys.dm_exec_connections;
GOJika ID sesi koneksi saat ini dikembalikan saat tampilan manajemen dinamis sys.dm_exec_connections diquery dan nilai parameter encrypt_option adalah true, fitur enkripsi SSL diaktifkan untuk koneksi tersebut.
Tanya Jawab Umum
Apa dampak pada bisnis saya jika saya tidak memperpanjang sertifikat SSL yang kedaluwarsa? Apakah kesalahan terjadi pada instans RDS saya atau apakah keamanan data berkurang?
Jika Anda tidak memperbarui sertifikat SSL yang kedaluwarsa, instans RDS tetap berjalan seperti yang diharapkan dan tidak ada risiko keamanan yang terjadi. Namun, aplikasi Anda tidak dapat membuat koneksi terenkripsi ke instans RDS.