Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Configure the SSL encryption feature

Dernière mise à jour :Aug 19, 2026

Le chiffrement SSL sécurise les données en transit entre les instances ApsaraDB RDS for MySQL et les clients, empêchant ainsi la surveillance, l'interception et la falsification. Par défaut, le chiffrement SSL est désactivé.

Cette rubrique explique comment :

  • Activer le chiffrement SSL (et éventuellement imposer l'utilisation de SSL pour toutes les connexions)

  • Télécharger le certificat d'autorité de certification (CA)

  • Configurer les clients — CLI, MySQL Workbench, DMS, Java et Python — pour se connecter via SSL

Prérequis

Avant de commencer, assurez-vous que :

  • Votre instance RDS exécute l'une des versions et éditions MySQL suivantes pour utiliser SSL encryption :

    Version MySQL

    Édition haute disponibilité RDS

    Édition cluster RDS

    Édition de base RDS

    8,0

    Pris en charge

    Pris en charge

    Pris en charge

    5,7

    Pris en charge

    Pris en charge

    Pris en charge

    5,6

    Pris en charge

  • Votre instance RDS répond aux deux exigences suivantes pour utiliser forceful SSL encryption :

    • Exécute MySQL 8.4, 8,0 ou 5,7 sur l'édition de base, l'édition haute disponibilité ou l'édition cluster

    • Exécute une version mineure du moteur 20241130 ou ultérieure

Vérifiez ces détails sur la page Basic Information de votre instance RDS. Si votre instance répond aux exigences mais que l'onglet SSL est absent, mettez à jour la version mineure du moteur. Pour plus de détails, consultez Mettre à niveau la version mineure du moteur . Si vous modifiez la méthode de facturation d'une instance RDS non serverless exécutant l'édition de base vers serverless, vous devez réactiver le chiffrement SSL.

Impacts potentiels

Comportement lors du redémarrage et du basculement :

Opération

MySQL 5.6 ou 5,7

MySQL 8.0

Activer SSL

Redémarre ; déclenche un basculement primaire/secondaire

Redémarre ; déclenche un basculement primaire/secondaire

Désactiver SSL

Redémarre ; déclenche un basculement primaire/secondaire

Redémarre ; déclenche un basculement primaire/secondaire

Mettre à jour le certificat

Redémarre

Ne redémarre pas

Effectuez ces opérations pendant les heures creuses et configurez votre application pour qu'elle se reconnecte automatiquement après un redémarrage.

Surcharge CPU : Les connexions chiffrées par SSL augmentent considérablement l'utilisation du CPU. Activez SSL uniquement pour les endpoints qui nécessitent un chiffrement, généralement l'endpoint public.

Chiffrement SSL obligatoire : Après l'activation du chiffrement SSL obligatoire, les connexions non SSL provenant des clients et des proxys de base de données sont refusées.

Fonctionnement

Lorsque vous activez le chiffrement SSL, l'instance RDS génère un certificat serveur, une clé publique et une clé privée.

Lors d'une négociation SSL :

  1. L'instance RDS envoie le certificat serveur (incluant la clé publique) au client.

  2. Le client chiffre une clé symétrique à l'aide de la clé publique reçue.

  3. L'instance RDS déchiffre la clé symétrique à l'aide de sa clé privée.

  4. Les deux parties utilisent la clé symétrique pour chiffrer et déchiffrer les données.

En option, le client peut vérifier le certificat serveur par rapport à un certificat d'autorité de certification (CA) pour confirmer l'identité du serveur et prévenir les attaques de type « man-in-the-middle ».

Support des versions TLS

Version MySQL

TLSv1.0

TLSv1.1

TLSv1.2

TLSv1.3

8,0

Pris en charge

Pris en charge

Pris en charge

Pris en charge (version mineure 20221231 ou ultérieure)

5,7

Pris en charge

Pris en charge

Pris en charge

Non pris en charge

5,6

Pris en charge

Pris en charge

Pris en charge

Non pris en charge

TLS 1.0 et TLS 1.1 ont été dépréciés par l'Internet Engineering Task Force (IETF) en 2021. Utilisez TLSv1.2 ou une version ultérieure. Pour plus de détails, consultez RFC 8996 .

Configuration de ssl_cipher

ApsaraDB RDS for MySQL utilise OpenSSL pour TLS. OpenSSL a été mis à niveau vers OpenSSL 3.0 pour :

  • Les instances MySQL 5.7 exécutant la version mineure du moteur 20230831

  • Les instances MySQL 8.0 exécutant la version mineure du moteur 20230930

OpenSSL 3.0 ne prend plus en charge TLSv1.0 et TLSv1.1 par défaut. Pour maintenir la compatibilité, le paramètre ssl_cipher est défini par défaut sur "ALL:@SECLEVEL=0", ce qui réactive TLSv1.0 et TLSv1.1.

Si vos charges de travail utilisent uniquement TLSv1.2 ou une version ultérieure, définissez ssl_cipher sur une chaîne vide ("") dans la console ApsaraDB RDS pour renforcer la sécurité.

Types de certificats

Les deux types de certificats protègent un endpoint et servent le même objectif : activer le chiffrement SSL et permettre au client d'authentifier le serveur.

Certificat cloud

Certificat personnalisé

Émis par

Alibaba Cloud

Une autorité de certification ou auto-signé

Période de validité

365 jours

Personnalisée

Endpoints protégés

1

1

Cette rubrique couvre les certificats cloud. Pour utiliser un certificat personnalisé, consultez Configurer un certificat personnalisé.

Étape 1 : Activer le chiffrement SSL

  1. Accédez à la page Instances. Dans la barre de navigation supérieure, sélectionnez la région où réside votre instance RDS. Trouvez l'instance et cliquez sur son ID.

  2. Dans le volet de navigation de gauche, cliquez sur Data Security.

  3. Dans l'onglet SSL , activez l'interrupteur situé à côté de Disabled .

    Si l'onglet SSL n'apparaît pas, vérifiez que votre instance répond à toutes les exigences listées dans Prérequis .
  4. Dans la boîte de dialogue qui s'affiche, sélectionnez l'endpoint à protéger — interne ou public — et cliquez sur OK . Un seul endpoint peut être protégé à la fois.

  5. (Facultatif) Activez Forceful Encryption .

    Important

    Le chiffrement SSL obligatoire nécessite MySQL 8.4, 8,0 ou 5.7 et une version mineure du moteur 20241130 ou ultérieure. Après l'activation du chiffrement SSL obligatoire, seules les connexions chiffrées par SSL sont acceptées. Les connexions non SSL provenant des clients et des proxys de base de données sont refusées.

  6. Attendez environ 1 minute que le processus se termine. Actualisez la page pour confirmer que la fonctionnalité est activée.

    Remarque

    Le chiffrement SSL pour une instance en lecture seule est indépendant de l'instance principale. L'activation du chiffrement SSL sur l'instance principale ne l'active pas automatiquement sur les instances en lecture seule associées. Pour activer le chiffrement SSL pour une instance en lecture seule, accédez à la page de détails de l'instance en lecture seule, cliquez sur Data Security > SSL, et activez manuellement le chiffrement SSL.

Étape 2 : Télécharger le certificat CA

  1. Accédez à la page Instances, trouvez votre instance et cliquez sur son ID.

  2. Dans le volet de navigation de gauche, cliquez sur Data Security . Dans l'onglet SSL , cliquez sur Download CA Certificate .

Le package téléchargé contient trois fichiers :

Fichier

Format

Utiliser lorsque

ApsaraDB-CA-Chain.pem

PEM

La plupart des scénarios

ApsaraDB-CA-Chain.jks

JKS (Java KeyStore)

Applications Java ; le mot de passe est apsaradb

ApsaraDB-CA-Chain.p7b

P7B (PKCS#7)

Applications Windows nécessitant le format PKCS#7

Étape 3 : Se connecter via SSL

Une fois le chiffrement SSL activé, configurez votre client pour qu'il établisse une connexion chiffrée. Les modes SSL disponibles sont les suivants :

Mode

Comportement

DISABLED

Les connexions ne sont pas chiffrées

PREFERRED (par défaut)

Tente d'établir une connexion chiffrée ; revient à une connexion non chiffrée si SSL n'est pas disponible

REQUIRED

Exige une connexion chiffrée ; échoue si le chiffrement n'est pas disponible

VERIFY_CA

Exige le chiffrement et vérifie le certificat du serveur par rapport au certificat de l'autorité de certification (CA)

VERIFY_IDENTITY

Exige le chiffrement, vérifie le certificat du serveur et s'assure que le nom d'hôte du certificat correspond à la connexion réelle

Important

Si le chiffrement SSL forcé est activé, seules les modes REQUIRED, VERIFY_CA ou VERIFY_IDENTITY autorisent les connexions.

CLI

Pour les clients MySQL version 5.7.11 ou ultérieure, utilisez l'option --ssl-mode.

Se connecter sans vérifier le certificat du serveur :

mysql -h <endpoint> -u <username> -p --ssl-mode=PREFERRED

Se connecter et vérifier le certificat du serveur :

mysql -h <endpoint> -u <username> -p \
  --ssl-mode=VERIFY_CA \
  --ssl-ca=<path-to-certificate>/ApsaraDB-CA-Chain.pem

Remplacez <endpoint>, <username> et <path-to-certificate> par vos valeurs réelles.

Pour les clients MySQL antérieurs à la version 5.7.11 et les clients MariaDB, utilisez plutôt les options --ssl et --ssl-verify-server-cert. Consultez la documentation officielle de MySQL et MariaDB pour plus de détails.

MySQL Workbench

  1. Ouvrez MySQL Workbench et choisissez Database > Manage Connections.

  2. Saisissez le endpoint de connexion, le nom d'utilisateur et le mot de passe.

  3. Dans l'onglet SSL, définissez Use SSL sur le mode souhaité. Définissez SSL CA File sur le chemin du fichier PEM téléchargé, puis cliquez sur Test Connection ou OK.

DMS

Lors de l'enregistrement de votre instance RDS dans Data Management (DMS), configurez le paramètre Enable SSL. Pour plus de détails, consultez la rubrique Enregistrer une instance de base de données Alibaba Cloud.

Pour mettre à jour le paramètre d'un enregistrement existant, faites un clic droit sur l'instance, sélectionnez Edit et configurez Enable SSL sous Advanced Information.

Application code

Java

MySQL Connector/J (mysql-connector-java) est le pilote JDBC officiel pour MySQL. Cet exemple utilise la version 8.0.19.

Ajoutez la dépendance suivante :

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

La propriété sslMode est prise en charge à partir de mysql-connector-java 8.0.13. Pour les versions antérieures, utilisez les propriétés useSSL, requireSSL et verifyServerCertificate. Consultez la documentation de MySQL Connector/J.

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();

            // Set the SSL mode. Options: DISABLED, PREFERRED, REQUIRED, VERIFY_CA, VERIFY_IDENTITY.
            mysqlDS.setSslMode("VERIFY_IDENTITY");

            // The truststore holds the CA certificate. This example uses JKS format.
            mysqlDS.setTrustCertificateKeyStoreType("JKS");
            // Replace with the actual path to ApsaraDB-CA-Chain.jks on your system.
            mysqlDS.setTrustCertificateKeyStoreUrl("file:/D:\\ApsaraDB-CA-Chain\\ApsaraDB-CA-Chain.jks");
            // The JKS file password is always apsaradb.
            mysqlDS.setTrustCertificateKeyStorePassword("apsaradb");

            // Replace the following values with your actual RDS instance details.
            mysqlDS.setServerName("rm-xxxxxx.mysql.rds.aliyuncs.com"); // RDS endpoint
            mysqlDS.setPort(3306);
            mysqlDS.setUser("xxxxxx");          // Database account username
            mysqlDS.setPassword("xxxxxx");      // Database account password
            mysqlDS.setDatabaseName("xxxxxx");  // Database name

            conn = mysqlDS.getConnection();

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

Python

# Install PyMySQL: pip install pymysql

import pymysql

try:
    ssl_config = {
        "ca": "/path/to/ApsaraDB-CA-Chain.pem",  # Path to the CA certificate
        "mode": "VERIFY_CA"                        # SSL mode
    }
    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("Database version:", data[0])
    cursor.close()
except pymysql.Error as e:
    print(e)

Opérations supplémentaires

Mettre à jour un certificat cloud

Les certificats cloud sont valables pendant un an. Si le certificat expire avant son renouvellement, les clients utilisant des connexions chiffrées ne peuvent pas se connecter. Alibaba Cloud envoie des notifications d'expiration par e-mail ou par message interne.

Pour planifier le renouvellement automatique, utilisez la boîte de dialogue Schedule Event. Pour plus de détails, consultez la rubrique Gérer les événements planifiés.

Après le renouvellement automatique, les clients n'ont pas besoin de retélécharger ni de reconfigurer le certificat CA.

Pour renouveler manuellement le certificat :

Important

La mise à jour du certificat redémarre les instances exécutant MySQL 5.6 ou 5,7. Les instances exécutant MySQL 8.0 ne redémarrent pas.

  1. Accédez à la page Instances, recherchez votre instance et cliquez sur son ID.

  2. Dans le volet de navigation de gauche, cliquez sur Data Security.

  3. Dans l'onglet SSL, cliquez sur Update Expiration Time.

Vérifier la connexion chiffrée

Exécutez les instructions SQL suivantes pour inspecter la connexion actuelle :

-- Check the cipher suite used by the current session.
-- A non-empty result confirms the connection is encrypted.
SHOW STATUS LIKE 'Ssl_cipher';

-- Check the TLS version used by the current session.
SHOW STATUS LIKE 'Ssl_version';

Dans l'interface CLI MySQL, exécutez \s pour afficher les détails de la connexion. Si la connexion est chiffrée, le champ SSL indique la suite de chiffrement utilisée.

Exiger SSL pour un utilisateur spécifique

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

Afficher le contenu du certificat CA

openssl x509 -in <path-to-certificate>/ApsaraDB-CA-Chain.pem -text

Désactiver le chiffrement SSL

Important

La désactivation de SSL redémarre l'instance RDS et déclenche un basculement primaire/secondaire. Effectuez cette opération pendant les heures creuses.

  1. Accédez à la page Instances, recherchez votre instance et cliquez sur son ID.

  2. Dans le volet de navigation de gauche, cliquez sur Data Security.

  3. Dans l'onglet SSL, désactivez SSL Encryption. Dans la boîte de dialogue de confirmation, cliquez sur OK.

FAQ

Puis-je configurer une authentification mutuelle qui vérifie à la fois les identités du serveur et du client ?

ApsaraDB RDS for MySQL ne prend pas en charge la vérification de l'identité du client lors de la négociation SSL. Utilisez les listes d'autorisation et la gestion des comptes pour contrôler l'accès.

Comment configurer le chiffrement SSL pour un endpoint de lecture/écriture ?

Consultez la rubrique Configurer le chiffrement SSL pour un endpoint de proxy de base de données.

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

Cette erreur se produit avec les paramètres de sécurité par défaut de JDK 7 ou JDK 8. Dans le fichier jre/lib/security/java.security de votre hôte d'application, définissez :

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

Application Java : javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

MySQL Connector/J 8.0.18 et versions antérieures désactivent TLSv1.2 lors de la connexion à des instances MySQL 5.6 ou 5,7. Corrigez ce problème en utilisant l'une des options suivantes :

  • Mettez à jour MySQL Connector/J vers la version 8.0.19 ou ultérieure

  • Mettez à niveau l'instance RDS vers MySQL 8.0

  • Spécifiez explicitement la version TLS en définissant enabledTLSProtocols ou tlsVersions sur TLSv1.2 dans votre configuration de connexion

Référence API