Lorsque le chiffrement SSL est activé sur une instance ApsaraDB RDS for PostgreSQL, le client vérifie l'identité du serveur avant d'établir la connexion. Cette mesure empêche l'écoute clandestine et les attaques de type « man-in-the-middle », mais n'empêche pas un client non autorisé d'usurper l'identité d'un utilisateur légitime. Pour que l'instance RDS vérifie également l'identité du client, configurez un certificat d'autorité de certification (CA) client pour l'authentification mutuelle TLS (mTLS).
Prérequis
Avant de commencer, assurez-vous d'avoir :
Activé le chiffrement SSL à l'aide d'un certificat cloud ou d'un certificat personnalisé. Pour plus d'informations, consultez les rubriques Configurer un certificat cloud pour activer le chiffrement SSL ou Configurer un certificat personnalisé pour activer le chiffrement SSL
Installé OpenSSL
Linux inclut OpenSSL par défaut. Sous Windows, téléchargez et installez OpenSSL depuis la page Win32/Win64 OpenSSL .
Notes d'utilisation
Après avoir activé un certificat CA client, fermez toutes les connexions existantes et établissez-en de nouvelles pour que le chiffrement SSL prenne effet.
-
Les opérations suivantes déclenchent un redémarrage de l'instance RDS, qui dure environ 3 minutes. Effectuez ces opérations pendant les heures creuses :
Activation d'un certificat CA client
Modification du contenu du certificat CA client configuré
Modification de la liste de révocation de certificats (CRL)
Étape 1 : Créer un certificat client
L'exemple suivant utilise CentOS. Sous Windows, utilisez les mêmes commandes et la même configuration openssl.
-
Créez un certificat CA auto-signé et sa clé privée.
openssl req -new -x509 -days 3650 -nodes -out client-ca.crt -keyout client-ca.key -subj "/CN=root-client-ca" -
Créez une demande de signature de certificat (CSR) et une clé privée pour le certificat client.
openssl req -new -nodes -text -out client.csr -keyout client.key -subj "/CN=<logon-username>"Définissez la valeur
CNsur le nom d'utilisateur du compte utilisé pour se connecter à l'instance RDS depuis le client. -
Signez la CSR avec l'autorité de certification auto-signée pour créer le certificat client.
openssl x509 -req -in client.csr -text -days 365 -CA client-ca.crt -CAkey client-ca.key -CAcreateserial -out client.crt
Après avoir exécuté les trois commandes, vérifiez la sortie avec ls :
client-ca.crt client-ca.key client-ca.srl client.crt client.csr client.key
Le tableau suivant décrit chaque fichier et son rôle dans la négociation mTLS :
| Fichier | Contenu | Effet |
|---|---|---|
client-ca.crt |
Certificat CA auto-signé | Téléchargé sur l'instance RDS pour vérifier que les certificats clients sont signés par une autorité de certification approuvée |
client-ca.key |
Clé privée de l'autorité de certification auto-signée | Signe le certificat client (CSR) ; conservez ce fichier en toute sécurité |
client.crt |
Certificat client | Envoyé à l'instance RDS lors de la connexion pour prouver l'identité du client ; la valeur CN doit correspondre au nom d'utilisateur de la base de données |
client.key |
Clé privée du certificat client | Prouve que le certificat client a été envoyé par son propriétaire légitime |
Étape 2 : Configurer un certificat CA client
Après la configuration, l'état de l'instance passe de Running à Modifying SSL Settings puis revient à Running en environ 3 minutes.
Accédez à la page Instances. Dans la barre de navigation supérieure, sélectionnez la région où réside l'instance RDS. Localisez l'instance et cliquez sur son ID.
Dans le volet de navigation de gauche, cliquez sur Data Security. Sur la page qui s'affiche, cliquez sur l'onglet SSL.
-
Cliquez sur Enable Client CA Certificate.

-
Dans la boîte de dialogue, copiez l'intégralité du contenu de
client-ca.crtdans le champ Public Key, puis cliquez sur OK. Copiez tout le contenu, de-----BEGIN CERTIFICATE-----jusqu'à-----END CERTIFICATE-----inclus.
Étape 3 : Se connecter à l'instance RDS
Connectez-vous à l'instance RDS via SSL. Pour obtenir des instructions, consultez la rubrique Se connecter à une instance ApsaraDB RDS for PostgreSQL via SSL.
Étape 4 : (Facultatif) Configurer un fichier CRL
Révoquez un certificat client pour refuser l'accès à un client spécifique. Après la révocation, téléchargez un fichier CRL afin que l'instance RDS applique cette révocation.
Après la configuration d'un fichier CRL, l'état de l'instance passe de Running à Modifying SSL Settings puis revient à Running en environ 3 minutes.
-
Préparez les fichiers de configuration CRL. Sous Linux :
touch /etc/pki/CA/index.txt echo 1000 > /etc/pki/CA/crlnumberSous Windows :
Créez un dossier
CAdans<OpenSSL installation directory>\bin.Créez un fichier
index.txtdans le dossierCA.Exécutez la commande suivante à l'aide de l'interface CLI PostgreSQL : ``
echo 1000 > <OpenSSL installation directory>\bin\CA\crlnumber``Modifiez le fichier
openssl.cnfsitué dansC:\Program Files\Common Files\SSL\. Trouvez la section[ CA_default ]et mettez à jour la valeurdir: ``dir = "<OpenSSL installation directory>\\bin\\CA"``
-
Révoquez le certificat client (
client.crt).openssl ca -revoke client.crt -cert client-ca.crt -keyfile client-ca.keyCette commande requiert le certificat CA auto-signé (
client-ca.crt) et sa clé privée (client-ca.key) créés à l'étape 1. -
Générez le fichier CRL.
openssl ca -gencrl -out client.crl -cert ca.crt -keyfile ca.key Dans le volet de navigation de gauche, cliquez sur Data Security. Sur la page qui s'affiche, cliquez sur l'onglet SSL.
-
Cliquez sur Enable Certificate Revocation File.

-
Dans la boîte de dialogue, copiez le contenu de
client.crldans le champ Revocation File.
Étape 5 : (Facultatif) Mettre à jour le certificat client
Cette opération déclenche un redémarrage de l'instance RDS. Effectuez-la pendant les heures creuses.
Sur l'onglet SSL, cliquez sur Clear Client CA Certificate, puis cliquez sur Enable Client CA Certificate.
