Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Mise à jour des applications pour se connecter aux SQL instances de base de données Postgre à l'aide de nouveaux certificatsSSL/TLS
Les certificats utilisés pour Secure Socket Layer ou Transport Layer Security (SSL/TLS) ont généralement une durée de vie définie. Lorsque les fournisseurs de services mettent à jour leurs certificats d'autorité de certification (CA), les clients doivent mettre à jour leurs applications pour utiliser les nouveaux certificats. Vous trouverez ci-dessous des informations sur la manière de déterminer si vos applications clientes utilisentSSL/TLSpour se connecter à votre SQL instance de base de données Amazon RDS for Postgre. Vous trouverez également des informations sur la façon de vérifier si ces applications vérifient le certificat du serveur lorsqu'elles se connectent.
Note
Une application cliente configurée pour vérifier le certificat du serveur avant la TLS connexionSSL/doit disposer d'un certificat CA valide dans le trust store du client. Mettez à jour le magasin de confiance du client lorsque cela est nécessaire pour de nouveaux certificats.
Une fois que vous avez mis à jour les certificats de l'autorité de certification dans les magasins d'approbations des applications clientes, vous pouvez soumettre les certificats de vos instances de bases de données à une rotation. Nous vous recommandons vivement de tester ces procédures dans un environnement de développement ou intermédiaire avant de les implémenter dans vos environnements de production.
Pour de plus amples informations sur la rotation de certificats, veuillez consulter Rotation de votre TLS certificatSSL/. Pour en savoir plus sur le téléchargement de certificats, consultez . Pour plus d'informations sur l'utilisation deSSL/TLSavec les SQL instances de base de données Postgre, consultezUtilisation SSL avec une instance de SQL base de données Postgre.
Rubriques
- Déterminer si les applications se connectent aux SQL instances de base de données Postgre à l'aide de SSL
- Contrôle de la nécessité d'une vérification du certificat du client pour qu'il puisse se connecter
- Mise à jour du magasin d'approbations de votre application
- Utilisation TLS des connexionsSSL/pour différents types d'applications
Déterminer si les applications se connectent aux SQL instances de base de données Postgre à l'aide de SSL
Dans la configuration de l'instance de base de données, vérifiez la valeur du paramètre rds.force_ssl
. Par défaut, le rds.force_ssl
paramètre est défini sur 0
(off) pour les instances de base de données utilisant des SQL versions de Postgre antérieures à la version 15. Par défaut, rds.force_ssl
il est défini sur 1
(activé) pour les instances de base de données utilisant Postgre SQL version 15 et versions majeures ultérieures. Si le rds.force_ssl
paramètre est défini sur 1
(on), les clients doivent utiliserSSL/TLSpour les connexions. Pour plus d'informations sur les groupes de paramètres, consultez Groupes de paramètres pour Amazon RDS.
Si vous utilisez RDS Postgre SQL version 9.5 ou version majeure ultérieure et que ce paramètre n'rds.force_ssl
est pas défini sur 1
(activé), interrogez la pg_stat_ssl
vue pour vérifier les connexions à l'aide SSL de. Par exemple, la requête suivante renvoie uniquement les SSL connexions et les informations sur les clients qui les utilisentSSL.
SELECT datname, usename, ssl, client_addr FROM pg_stat_ssl INNER JOIN pg_stat_activity ON pg_stat_ssl.pid = pg_stat_activity.pid WHERE ssl is true and usename<>'rdsadmin';
Seules les lignes utilisant TLS les connexionsSSL/sont affichées avec des informations sur la connexion. Voici un exemple de sortie.
datname | usename | ssl | client_addr
----------+---------+-----+-------------
benchdb | pgadmin | t | 53.95.6.13
postgres | pgadmin | t | 53.95.6.13
(2 rows)
La requête n'affiche que les connexions actives au moment de la requête. L'absence de résultats n'indique pas qu'aucune application n'utilise de SSL connexions. D'autres SSL connexions peuvent être établies à un moment différent.
Contrôle de la nécessité d'une vérification du certificat du client pour qu'il puisse se connecter
Lorsqu'un client, tel que psql ouJDBC, est configuré avec le SSL support, le client essaie d'abord de se connecter à la base de données SSL par défaut. Si le client ne parvient pas à se connecter avecSSL, il revient à se connecter sansSSL. Le sslmode
mode par défaut est utilisé pour les deux clients basés sur libpq (tels que psql) et JDBC est défini sur. prefer
Le certificat sur le serveur n'est vérifié que s'il sslrootcert
est doté de la sslmode
valeur set to verify-ca
ouverify-full
. En cas de non-validité du certificat, une erreur est déclenchée.
PGSSLROOTCERT
À utiliser pour vérifier le certificat à l'aide de la variable d'PGSSLMODE
environnement, avec la valeur PGSSLMODE
définie sur verify-ca
ouverify-full
.
PGSSLMODE=verify-full PGSSLROOTCERT=/fullpath/
ssl-cert.pem
psql -h pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com -U masteruser -d postgres
Utilisez l'sslrootcert
argument pour vérifier le certificat au format chaîne de connexion, avec sslmode
défini sur verify-ca
ou verify-full
pour vérifier le certificat. sslmode
psql "host=pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com sslmode=verify-full sslrootcert=/full/path/
ssl-cert.pem
user=masteruser dbname=postgres"
Par exemple, dans le cas précédent, si vous utilisez un certificat racine non valide, une erreur similaire à celle qui suit s'affiche sur votre client.
psql: SSL error: certificate verify failed
Mise à jour du magasin d'approbations de votre application
Pour plus d'informations sur la mise à jour du trust store pour les SQL applications Postgre, consultez la section Connexions TCP /IP sécurisées avec SSL
Pour plus d'informations sur le téléchargement du certificat racine, consultez .
Pour obtenir des exemples de scripts qui importent des certificats, consultez Exemple de script pour importer les certificats dans votre magasin d'approbations.
Note
Lors de la mise à jour du magasin d'approbations, vous pouvez conserver les certificats plus anciens en complément de l'ajout des nouveaux certificats.
Utilisation TLS des connexionsSSL/pour différents types d'applications
Vous trouverez ci-dessous des informations sur l'utilisation TLS des connexionsSSL/pour différents types d'applications :
-
psql
Le client est appelé depuis la ligne de commande en spécifiant des options comme chaîne de connexion ou comme variables d'environnement. Pour les TLS connexionsSSL/, les options pertinentes sont
sslmode
(variable d'environnementPGSSLMODE
),sslrootcert
(variable d'environnementPGSSLROOTCERT
).Pour la liste complète des options, consultez la section Mots clés des paramètres
dans la SQL documentation Postgre. Pour la liste complète des variables d'environnement, consultez la section Variables d'environnement dans la SQL documentation Postgre. -
pgAdmin
Ce client basé sur un navigateur est une interface plus conviviale pour se connecter à une base de données SQL Postgre.
Pour plus d'informations sur la configuration des connexions, consultez la pgAdmin documentation
. -
JDBC
JDBCpermet de connecter des bases de données à des applications Java.
Pour des informations générales sur la connexion à une SQL base de données Postgre avecJDBC, consultez la section Connexion à la base de données
dans la documentation du SQL JDBC pilote Postgre. Pour plus d'informations sur la connexion avecSSL/TLS, consultez la section Configuration du client dans la documentation du SQL JDBC pilote Postgre. -
Python
Une bibliothèque Python populaire pour se connecter aux SQL bases de données Postgre est
psycopg2
.Pour plus d'informations sur l'utilisation de
psycopg2
, veuillez consulter la documentation psycopg2. Pour un court didacticiel sur la façon de se connecter à une SQL base de données Postgre, consultez le didacticiel Psycopg2 . Vous trouverez des informations sur les options acceptées par la commande de connexion dans The psycopg2 module content .
Important
Une fois que vous avez déterminé que vos connexions à la base de données utilisentSSL/TLSet que vous avez mis à jour le magasin de confiance des applications, vous pouvez mettre à jour votre base de données pour utiliser les certificats rds-ca-rsa 2048-g1. Pour obtenir des instructions, veuillez consulter l'étape 3 dans Mettre à jour votre certificat CA en modifiant votre instance ou cluster de base de données.