All Products
Search
Document Center

ApsaraDB RDS:Aktifkan SSL dengan sertifikat cloud

Last Updated:May 16, 2026

Fitur enkripsi Secure Sockets Layer (SSL) untuk ApsaraDB RDS for MySQL mengenkripsi data yang sedang ditransmisikan guna meningkatkan keamanan koneksi database dan memenuhi persyaratan kepatuhan. Secara default, enkripsi SSL dinonaktifkan untuk instans ApsaraDB RDS for MySQL. Topik ini menjelaskan cara mengaktifkan enkripsi SSL dengan sertifikat cloud.

Prasyarat

  • Enkripsi SSL didukung pada versi MySQL berikut: 8.4, 8.0, 5.7, atau 5.6.

  • Enkripsi SSL paksa didukung pada versi instans ApsaraDB RDS for MySQL berikut:

    • MySQL 8.4

    • MySQL 8.0 atau 5.7 dengan versi mesin minor 20241130 atau lebih baru

Catatan
  • Anda dapat melihat informasi ini di halaman Basic Information instans Anda.

  • Jika Anda mengonversi instans Edisi Dasar non-serverless menjadi instans serverless, Anda harus mengaktifkan ulang enkripsi SSL.

  • Beberapa instans yang memenuhi persyaratan di atas mungkin mengembalikan error yang menunjukkan bahwa SSL tidak didukung. Jika hal ini terjadi, tingkatkan versi mesin minor dan coba lagi.

Ikhtisar

Enkripsi SSL mengenkripsi data yang sedang ditransmisikan antara instans ApsaraDB RDS for MySQL dan client untuk mencegah data tersebut dipantau, dicegat, atau dimanipulasi.

Setelah Anda mengaktifkan enkripsi SSL, Anda dapat memilih untuk menggunakan koneksi terenkripsi atau tidak terenkripsi ke instans ApsaraDB RDS for MySQL. Setelah Anda mengaktifkan enkripsi SSL paksa, hanya koneksi terenkripsi SSL dari client atau database proxy yang diizinkan ke instans ApsaraDB RDS for MySQL.

Saat Anda mengaktifkan enkripsi SSL, ApsaraDB RDS for MySQL menghasilkan sertifikat server dan pasangan kunci publik-privat.

Saat membangun koneksi terenkripsi, instans ApsaraDB RDS for MySQL mengirimkan sertifikat server yang berisi kunci publik ke client. Client menggunakan kunci publik ini untuk mengenkripsi kunci simetris. Hanya instans ApsaraDB RDS for MySQL yang memiliki kunci privat yang dapat mendekripsi kunci simetris tersebut. Kedua pihak kemudian menggunakan kunci simetris ini untuk mengenkripsi dan mendekripsi data, sehingga menjamin kerahasiaan komunikasi. Untuk mencegah serangan man-in-the-middle (MITM), client juga dapat menggunakan sertifikat CA untuk memvalidasi sertifikat server dan mengonfirmasi keaslian server.

Tabel berikut membandingkan konfigurasi enkripsi SSL yang didukung oleh instans ApsaraDB RDS for MySQL.

Item

Cloud certificate

Custom certificate

Metode

Konfigurasikan sertifikat cloud untuk instans Anda.

Diterbitkan oleh certificate authority (CA) atau self-signed.

Periode validitas

365 hari

Custom

Jumlah titik akhir yang dilindungi

1

1

Fungsi

Mengaktifkan enkripsi SSL dan memungkinkan client memverifikasi keaslian server.

Mengaktifkan enkripsi SSL dan memungkinkan client memverifikasi keaslian server.

Dampak

  • Mengaktifkan atau menonaktifkan enkripsi SSL akan me-restart instans untuk semua versi, yang memicu alih bencana primary/secondary. Kami menyarankan agar Anda melakukan operasi ini selama jam sepi dan memastikan aplikasi Anda memiliki mekanisme penghubungan ulang otomatis. Untuk informasi lebih lanjut mengenai dampak alih bencana instans, lihat Dampak alih bencana.

  • Saat Anda memperbarui sertifikat, instans yang menjalankan MySQL 5.6, 5.7, atau 8.4 akan direstart. Instans yang menjalankan MySQL 8.0 tidak direstart.

  • Setelah Anda mengaktifkan enkripsi SSL, penggunaan koneksi terenkripsi secara signifikan meningkatkan pemanfaatan CPU. Kami menyarankan agar Anda hanya mengaktifkan enkripsi SSL ketika Anda memerlukan enkripsi untuk titik akhir publik. Titik akhir internal relatif aman dan biasanya tidak memerlukan enkripsi.

  • Setelah Anda mengaktifkan enkripsi SSL paksa, hanya koneksi terenkripsi SSL dari client atau database proxy yang diizinkan. Koneksi tidak terenkripsi akan ditolak.

Versi TLS

Transport Layer Security (TLS) adalah protokol yang banyak digunakan untuk menjamin privasi dan integritas data dalam komunikasi internet. Protokol TLS memiliki beberapa versi. Tabel berikut menjelaskan versi TLS yang didukung oleh berbagai versi utama ApsaraDB RDS for MySQL.

ApsaraDB RDS untuk MySQL

TLSv1.0

TLSv1.1

TLSv1.2

TLSv1.3

8.4

Tidak didukung

Tidak didukung

Didukung

Didukung

8.0

Didukung

Didukung

Didukung

Didukung

(Sejak versi mesin minor 20221231)

5.7

Didukung

Didukung

Didukung

Tidak didukung

5.6

Didukung

Didukung

Didukung

Tidak didukung

Catatan

TLS 1.0 dan TLS 1.1 telah dinyatakan usang oleh Internet Engineering Task Force (IETF) pada tahun 2021 (RFC 8996). Untuk alasan keamanan, kami menyarankan agar Anda menggunakan TLS 1.2 atau versi yang lebih baru untuk komunikasi yang aman.

Konfigurasi ssl_cipher default

ApsaraDB RDS for MySQL menggunakan OpenSSL untuk mengimplementasikan komunikasi TLS yang aman. Pada versi mesin minor 20230831 untuk MySQL 5.7 dan versi mesin minor 20230930 untuk MySQL 8.0, ApsaraDB RDS for MySQL ditingkatkan ke OpenSSL 3.0. Secara default, OpenSSL 3.0 tidak mendukung komunikasi menggunakan TLS 1.0 atau TLS 1.1. Untuk informasi lebih lanjut, lihat dokumentasi resmi OpenSSL.

Untuk kompatibilitas, ApsaraDB RDS for MySQL menyesuaikan nilai default parameter ssl_cipher menjadi "ALL:@SECLEVEL=0" untuk mengembalikan dukungan terhadap TLS 1.0 dan TLS 1.1.

Jika beban kerja Anda hanya menggunakan TLS 1.2 atau versi yang lebih baru, kami menyarankan agar Anda mengatur parameter ssl_cipher ke "" (string kosong) di konsol ApsaraDB RDS untuk mencapai tingkat keamanan yang lebih tinggi.

Langkah 1: Aktifkan enkripsi SSL

  1. Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS dan klik ID instans tersebut.

  2. Di panel navigasi kiri, klik Data Security.

  3. Di tab SSL Encryption, klik sakelar di samping Disabled.

    Catatan

    Jika tab SSL tidak muncul, periksa apakah instans Anda memenuhi persyaratan di bagian Prasyarat.

  4. Pada kotak dialog yang muncul, pilih titik akhir yang ingin Anda aktifkan enkripsi SSL-nya.

    Anda dapat mengenkripsi titik akhir internal atau titik akhir publik, tetapi hanya dapat memilih satu titik akhir.

  5. (Opsional) Untuk mengaktifkan enkripsi SSL paksa, klik sakelar di samping Forceful Encryption.

    Penting
    • Untuk mengaktifkan enkripsi SSL paksa, instans harus menjalankan MySQL 8.4, atau MySQL 8.0 atau 5.7 dengan versi mesin minor 20241130 atau lebih baru.

    • Setelah Anda mengaktifkan enkripsi SSL paksa, hanya koneksi terenkripsi SSL dari client atau database proxy yang diizinkan. Koneksi tidak terenkripsi akan ditolak.

  6. Klik OK untuk mengaktifkan enkripsi SSL.

    Proses ini membutuhkan waktu sekitar satu menit. Anda dapat merefresh halaman secara manual untuk melihat status instans.

Langkah 2: Unduh sertifikat CA

Setelah Anda mengaktifkan enkripsi SSL, Anda dapat mengunduh sertifikat CA untuk instans ApsaraDB RDS for MySQL. Client menggunakan sertifikat ini untuk memverifikasi keaslian instans RDS.

  1. Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS dan klik ID instans tersebut.

  2. Di panel navigasi kiri, klik Data Security. Di tab SSL, klik Download CA Certificate.

    File yang diunduh merupakan paket terkompresi yang berisi tiga file CA berikut:

    • File PEM: cocok untuk sebagian besar skenario.

    • File JKS: cocok untuk aplikasi Java. Kata sandinya adalah apsaradb. Sertifikat CA dalam format PEM biasanya harus diimpor ke truststore, artinya harus dikonversi ke file JKS sebelum dapat digunakan di Java.

    • File p7b: cocok untuk beberapa aplikasi Windows yang memerlukan file sertifikat PKCS #7.

Langkah 3: Terhubung dari client

Setelah Anda mengaktifkan enkripsi SSL, apakah koneksi client dienkripsi atau tidak bergantung pada jenis dan pengaturan client tersebut. Misalnya, beberapa client mungkin menggunakan koneksi terenkripsi secara default. Anda dapat mengubah pengaturan atau kode client untuk memastikan koneksi terenkripsi dibuat dan identitas instans ApsaraDB RDS for MySQL diverifikasi.

Penting

Jika Anda mengaktifkan enkripsi SSL paksa, hanya koneksi terenkripsi SSL yang diizinkan antara client dan instans ApsaraDB RDS for MySQL.

CLI

Untuk client MySQL versi 5.7.11 atau lebih baru, Anda dapat menambahkan opsi --ssl-mode ke perintah koneksi untuk mengonfigurasi enkripsi SSL.

Catatan

Untuk client MariaDB dan client MySQL versi sebelum 5.7.11, gunakan opsi seperti --ssl dan --ssl-verify-server-cert. Untuk informasi lebih lanjut, lihat dokumentasi resmi MariaDB dan MySQL.

  • --ssl-mode=DISABLED: Koneksi tidak dienkripsi.

  • --ssl-mode=PREFERRED atau jika opsi --ssl-mode tidak ditentukan: Upaya dilakukan untuk membuat koneksi terenkripsi. Jika koneksi terenkripsi tidak dapat dibuat, koneksi tidak terenkripsi akan digunakan.

  • --ssl-mode=REQUIRED: Koneksi terenkripsi wajib digunakan. Jika koneksi terenkripsi tidak dapat dibuat, koneksi gagal.

  • --ssl-mode=VERIFY_CA: Koneksi terenkripsi wajib digunakan, dan client menggunakan sertifikat CA lokalnya untuk memverifikasi sertifikat server.

  • --ssl-mode=VERIFY_IDENTITY: Koneksi terenkripsi wajib digunakan. Client menggunakan sertifikat CA lokalnya untuk memverifikasi sertifikat server dan juga memverifikasi bahwa hostname atau alamat IP server sesuai dengan yang ditentukan dalam sertifikat.

Contoh 1: Upaya membuat koneksi terenkripsi. Jika koneksi terenkripsi tidak dapat dibuat, gunakan koneksi tidak terenkripsi.

mysql -h {RDS_ENDPOINT} -u {RDS_ACCOUNT} -p --ssl-mode=PREFERRED

Contoh 2: Wajibkan koneksi terenkripsi dan verifikasi sertifikat server.

mysql -h {RDS_ENDPOINT} -u {RDS_ACCOUNT} -p --ssl-mode=VERIFY_CA --ssl-ca={CA_CERTIFICATE_PATH}/ApsaraDB-CA-Chain.pem
Catatan
  • Pada contoh di atas, ganti {RDS_ENDPOINT}, {RDS_ACCOUNT}, dan {CA_CERTIFICATE_PATH} dengan nilai aktualnya.

  • Untuk informasi lebih lanjut mengenai opsi --ssl-mode, lihat dokumentasi resmi MySQL.

MySQL Workbench

  1. Buka MySQL Workbench dan pilih Database > Manage Connections.

  2. Masukkan titik akhir RDS, username, dan password.

  3. Di tab SSL, atur Use SSL, tentukan SSL CA File sebagai sertifikat CA yang diunduh dalam format PEM, lalu klik Test Connection atau ok.

    Opsi untuk parameter Use SSL sesuai dengan opsi --ssl-mode yang dijelaskan di bagian CLI.

Data Management (DMS)

Saat Anda mendaftarkan instans ApsaraDB RDS for MySQL di Data Management (DMS), Anda dapat mengaktifkan sakelar Enable SSL. Untuk informasi lebih lanjut, lihat Daftarkan instans database Alibaba Cloud.

Anda juga dapat mengklik kanan instans terdaftar yang sudah ada, memilih Edit, lalu mengonfigurasi pengaturan di tab Advanced Information.

Kode aplikasi

Java

Connector/J (mysql-connector-java) adalah driver JDBC resmi untuk MySQL. Contoh ini menggunakan mysql-connector-java 8.0.19 sebagai dependensi.

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.19</version>
</dependency>
Catatan

Kode contoh berikut menggunakan properti sslMode untuk menentukan mode SSL. Properti ini telah didukung sejak mysql-connector-java 8.0.13. Jika Anda menggunakan versi sebelumnya, Anda harus menggunakan properti useSSL, requireSSL, dan verifyServerCertificate. Untuk informasi lebih lanjut, lihat dokumentasi MySQL.

Kode contoh:

package com.aliyun.sample;

import com.mysql.cj.jdbc.MysqlDataSource;
import java.sql.Connection;
import java.sql.SQLException;

public class Sample {

    public static void main(String[] args) {

        Connection conn = null;
        MysqlDataSource mysqlDS=null;

        try{
            mysqlDS = new MysqlDataSource();
            // Atur sslMode sesuai kebutuhan. Untuk opsi, lihat bagian CLI.
            mysqlDS.setSslMode("VERIFY_IDENTITY");
          
            // Truststore menyimpan sertifikat CA. Contoh ini menggunakan format JKS.
            mysqlDS.setTrustCertificateKeyStoreType("JKS");
            // Ganti path setelah file:/ dengan path ke file ApsaraDB-CA-Chain.jks Anda.
            mysqlDS.setTrustCertificateKeyStoreUrl("file:/D:\\ApsaraDB-CA-Chain\\ApsaraDB-CA-Chain.jks");
            // Kata sandi untuk file JKS yang diunduh adalah apsaradb dan tidak dapat diubah.
            mysqlDS.setTrustCertificateKeyStorePassword("apsaradb");
          
            // Titik akhir database Anda
            mysqlDS.setServerName("rm-xxxxxx.mysql.rds.aliyuncs.com");
            // Port database Anda
            mysqlDS.setPort(3306);
            // Akun database Anda
            mysqlDS.setUser("xxxxxx");
            // Kata sandi database Anda
            mysqlDS.setPassword("xxxxxx");
            // Nama database Anda
            mysqlDS.setDatabaseName("xxxxxx");

            conn = mysqlDS.getConnection();

        }catch(Exception e){
            e.printStackTrace();
        } finally {
            try {
                if (conn != null)
                    conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

}

Python

# Instal pymysql: pip install pymysql

import pymysql

try:
    # ca: Path ke file sertifikat CA. mode: Mode SSL yang digunakan.
    ssl_config = {"ca":"/path/to/path/ca.crt", "mode":"VERIFY_CA"}
    conn = pymysql.connect(host='******.mysql.rds.aliyuncs.com', user='*****', passwd='******', db='*****', ssl=ssl_config)
    cursor = conn.cursor()
    cursor.execute('select version()')
    data = cursor.fetchone()
    print('Versi database:', data[0])
    cursor.close()
except pymysql.Error as e:
    print(e)

Tindakan Lainnya

Perbarui sertifikat cloud

Sertifikat cloud untuk instans ApsaraDB RDS for MySQL memiliki periode validitas 1 tahun. Jika sertifikat tidak diperbarui setelah kedaluwarsa, aplikasi client yang menggunakan koneksi terenkripsi tidak dapat terhubung ke instans tersebut. Sebelum sertifikat kedaluwarsa, Alibaba Cloud akan mengirimi Anda notifikasi melalui email, dan pesan internal di Message Center.

Anda dapat menggunakan Schedule Event untuk menyesuaikan waktu pembaruan otomatis sertifikat cloud instans ApsaraDB RDS for MySQL Anda. Untuk informasi lebih lanjut, lihat Scheduled events. Anda juga dapat memperbarui periode validitas sertifikat secara manual.

Catatan
  • Setelah sertifikat cloud diperbarui secara otomatis, aplikasi client yang menggunakan koneksi terenkripsi tidak perlu mengunduh dan mengonfigurasi ulang sertifikat CA.

  • Untuk memperbarui sertifikat custom, lihat Perbarui sertifikat custom.

Penting

Memperbarui sertifikat untuk instans MySQL 8.0 tidak me-restart instans. Memperbarui sertifikat untuk instans MySQL 5.6, 5.7, atau 8.4 akan me-restart instans.

  1. Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS dan klik ID instans tersebut.

  2. Di panel navigasi kiri, klik Data Security.

  3. Klik tab SSL, lalu klik Update Expiration Time.

Periksa status enkripsi koneksi

  • Periksa paket sandi yang digunakan oleh sesi saat ini. Jika nilai dikembalikan, koneksi saat ini dienkripsi.

    SHOW STATUS LIKE 'Ssl_cipher';
  • Periksa versi SSL/TLS yang digunakan oleh sesi saat ini.

    SHOW STATUS LIKE 'Ssl_version';
  • Jika Anda menggunakan client command-line MySQL, Anda juga dapat menjalankan perintah \s untuk memeriksa apakah koneksi saat ini dienkripsi. Jika koneksi dienkripsi, nilai SSL yang dikembalikan menunjukkan paket sandi saat ini.

Paksakan koneksi terenkripsi

Konfigurasikan server agar hanya mengizinkan koneksi terenkripsi

Hal ini didukung. Untuk informasi lebih lanjut, lihat Langkah 1: Aktifkan enkripsi SSL untuk instans ApsaraDB RDS for MySQL.

Konfigurasikan client agar hanya mengizinkan koneksi terenkripsi

Misalnya, jika Anda menggunakan client command-line, atur mode SSL ke REQUIRED, VERIFY_CA, atau VERIFY_IDENTITY dalam perintah koneksi. Hal ini hanya mengizinkan koneksi terenkripsi. Jika koneksi terenkripsi tidak dapat dibuat, koneksi gagal.

Konfigurasikan pengguna tertentu agar hanya menggunakan koneksi terenkripsi

Misalnya, perintah berikut mengonfigurasi akun testuser agar hanya menggunakan koneksi terenkripsi.

ALTER USER 'testuser'@'%' REQUIRE SSL;

Lihat isi sertifikat CA

Jalankan perintah berikut untuk melihat isi sertifikat CA.

openssl x509 -in {path_to_the_CA_certificate}/ApsaraDB-CA-Chain.pem -text

Nonaktifkan enkripsi SSL

Penting

Menonaktifkan enkripsi SSL akan me-restart instans RDS Anda. Sistem memicu alih bencana primary/secondary untuk mengurangi dampaknya. Namun, lakukan operasi ini selama jam sepi.

    1. Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS dan klik ID instans tersebut.

    2. Di panel navigasi kiri, klik Data Security.

    3. Klik tab SSL.

    4. Matikan sakelar di samping Enabled. Pada pesan yang muncul, klik OK.

    FAQ

    Fungsionalitas

    • Q1: Bagaimana cara menerapkan autentikasi dua arah? Artinya, mengautentikasi client selain server.

      A: ApsaraDB RDS for MySQL tidak mendukung autentikasi client selama handshake SSL. Gunakan daftar izin dan manajemen akun untuk mengontrol akses.

    • Q2: Bagaimana cara mengenkripsi titik akhir pemisahan baca/tulis?

      A: Untuk informasi lebih lanjut, lihat Atur enkripsi SSL proksi.

    • Q3: Bagaimana cara menonaktifkan SSL?

      A: Untuk informasi lebih lanjut, lihat Nonaktifkan enkripsi SSL.

    Pemecahan Masalah

    Error koneksi untuk aplikasi Java: Javax.net.ssl.SSLHandshakeException: DHPublicKey does not comply to algorithm constraints

    Error ini dapat terjadi di JDK 7 dan JDK 8 jika Anda tidak memodifikasi pengaturan keamanan default. Error serupa biasanya juga disebabkan oleh pengaturan keamanan Java.

    Modifikasi konfigurasi keamanan JDK default. Di file jre/lib/security/Java.security pada host aplikasi, ubah dua pengaturan berikut:

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

    Error koneksi untuk aplikasi Java: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

    Saat Anda menggunakan Connector/J 8.0.18 atau versi sebelumnya untuk terhubung ke MySQL 5.6 atau 5.7, TLS 1.2 dan versi yang lebih baru dinonaktifkan karena alasan kompatibilitas. Untuk mengatasi masalah ini, gunakan salah satu metode berikut.

    • Gunakan Connector/J 8.0.19 atau versi yang lebih baru.

    • Tingkatkan ke ApsaraDB RDS for MySQL 8.0.

    • Tentukan versi TLS dalam kode Anda. Misalnya, atur properti enabledTLSProtocols atau tlsVersions ke TLSv1.2.

    API Terkait