

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.

# Sécurisation des connexions à RDS pour PostgreSQL avec SSL/TLS
<a name="PostgreSQL.Concepts.General.Security"></a>

RDS for PostgreSQL prend en charge le chiffrement au moyen du protocole SSL pour les instances de bases de données PostgreSQL. En utilisant SSL, vous pouvez chiffrer une connexion PostgreSQL entre vos applications et vos instances de bases de données PostgreSQL. Vous pouvez également forcer toutes les connexions à votre instance de base de données PostgreSQL à utiliser SSL. RDS for PostgreSQL prend également en charge le protocole TLS (Transport Layer Security), le protocole qui succède à SSL.

Pour en savoir plus sur Amazon RDS et la protection des données, y compris le chiffrement des connexions à l'aide de SSL/TLS, veuillez consulter [Protection des données dans Amazon RDS](DataDurability.md).

**Topics**
+ [Utilisation de SSL avec une instance de base de données PostgreSQL](PostgreSQL.Concepts.General.SSL.md)
+ [Mise à jour des applications pour se connecter aux instances de base de données PostgreSQL à l'aide de nouveaux certificats SSL/TLS](ssl-certificate-rotation-postgresql.md)

# Utilisation de SSL avec une instance de base de données PostgreSQL
<a name="PostgreSQL.Concepts.General.SSL"></a>

Amazon RDS prend en charge le chiffrement SSL pour les instances de bases de données PostgreSQL. En utilisant SSL, vous pouvez chiffrer une connexion PostgreSQL entre vos applications et vos instances de bases de données PostgreSQL. Par défaut, RDS pour PostgreSQL utilise et attend de tous les clients qu’ils se connectent en utilisant SSL/TLS, mais vous pouvez également l’exiger. RDS pour PostgreSQL prend en charge le protocole TLS (Transport Layer Security) versions 1.1, 1.2 et 1.3.

Pour obtenir des informations générales sur la prise en charge de SSL et les bases de données PostgreSQL, consultez [SSL Support](https://www.postgresql.org/docs/11/libpq-ssl.html) dans la documentation PostgreSQL. Pour plus d’informations sur l’utilisation d’une connexion SSL sur JDBC, consultez [Configuring the Client](https://jdbc.postgresql.org/documentation/head/ssl-client.html) dans la documentation PostgreSQL.

Le support SSL est disponible dans toutes les AWS régions pour PostgreSQL. Amazon RDS crée un certificat SSL pour votre instance de base de données PostgreSQL lors de la création de celle-ci. Si vous activez la vérification du certificat SSL, ce dernier inclut le point de terminaison de l'instance de base de données en tant que nom commun du certificat SSL pour assurer une protection contre les attaques par usurpation. 

**Topics**
+ [Connexion à une instance de base de données PostgreSQL via SSL](#PostgreSQL.Concepts.General.SSL.Connecting)
+ [Exiger une connexion SSL à une instance de base de données PostgreSQL](#PostgreSQL.Concepts.General.SSL.Requiring)
+ [Détermination du statut de la connexion SSL](#PostgreSQL.Concepts.General.SSL.Status)
+ [Suites de chiffrement SSL dans RDS pour PostgreSQL](#PostgreSQL.Concepts.General.SSL.Ciphers)

## Connexion à une instance de base de données PostgreSQL via SSL
<a name="PostgreSQL.Concepts.General.SSL.Connecting"></a>

**Pour se connecter à une instance de base de données PostgreSQL via SSL**

1. Téléchargez le certificat.

   Pour plus d’informations sur le téléchargement de certificats, consultez [](UsingWithRDS.SSL.md).

1. Connectez-vous à votre instance de base de données PostgreSQL sur SSL.

   Lors de la connexion avec SSL, votre client peut choisir de vérifier ou pas la chaîne du certificat. Si vos paramètres de connexion spécifient `sslmode=verify-ca` ou `sslmode=verify-full`, votre client nécessite que les certificats de l'autorité de certification RDS soient dans leur magasin d'approbations ou référencés dans l'URL de connexion. L'exigence nécessite de vérifier la chaîne du certificat qui signe le certificat de votre base de données.

   Quand un client, tel que psql ou JDBC, est configuré avec la prise en charge du protocole SSL, le comportement par défaut est le suivant : le client essaie d'abord de se connecter à la base de données avec le protocole SSL. En cas d'impossibilité, le client revient à la connexion sans protocole SSL. Le mode `sslmode` utilisé par défaut diffère selon qu'il s'agit de clients libpq (comme psql) ou de clients JDBC. Les clients basés sur libpq et JDBC sont basés sur `prefer` par défaut.

   Utilisez le paramètre `sslrootcert` pour référencer le certificat, par exemple, `sslrootcert=rds-ssl-ca-cert.pem`.

L'exemple suivant montre comment utiliser `psql` pour se connecter à une instance de base de données PostgreSQL en utilisant SSL avec vérification du certificat.

```
$ psql "host=db-name.555555555555.ap-southeast-1.rds.amazonaws.com 
    port=5432 dbname=testDB user=testuser sslrootcert=rds-ca-rsa2048-g1.pem sslmode=verify-full"
```

## Exiger une connexion SSL à une instance de base de données PostgreSQL
<a name="PostgreSQL.Concepts.General.SSL.Requiring"></a>

Vous pouvez exiger que les connexions à votre instance de base de données PostgreSQL utilisent SSL en utilisant le paramètre `rds.force_ssl`. La valeur par défaut du paramètre `rds.force_ssl` est définie sur 1 (activé) pour RDS pour PostgreSQL versions 15 et ultérieures. Pour les autres versions majeures 14 et antérieures de RDS pour PostgreSQL, la valeur par défaut de ce paramètre est 0 (désactivé). Vous pouvez définir le `rds.force_ssl` paramètre sur 1 (activé) SSL/TLS pour exiger les connexions à votre cluster de bases de données. Vous pouvez affecter au paramètre `rds.force_ssl` la valeur 1 (activé) pour exiger SSL pour les connexions à votre instance de base de données. 

Pour modifier la valeur de ce paramètre, vous devez créer un groupe de paramètres de base de données personnalisé. Vous modifiez ensuite la valeur de `rds.force_ssl` dans votre groupe de paramètres de base de données personnalisé sur `1` pour activer cette fonction. Si vous préparez le groupe de paramètres de base de données personnalisé avant de créer votre instance de base de données RDS pour PostgreSQL, vous pouvez le choisir (au lieu d’un groupe de paramètres par défaut) pendant le processus de création. Si vous effectuez cette opération alors que votre instance de base de données RDS pour PostgreSQL est déjà en cours d’exécution, vous devez redémarrer l’instance pour que celle-ci utilise le groupe de paramètres personnalisés. Pour de plus amples informations, veuillez consulter [Groupes de paramètres pour Amazon RDS](USER_WorkingWithParamGroups.md).

Lorsque la fonction `rds.force_ssl` est active sur votre instance de base de données, les tentatives de connexion qui n'utilisent pas SSL sont rejetées avec le message suivant :

```
$ psql -h db-name.555555555555.ap-southeast-1.rds.amazonaws.com port=5432 dbname=testDB user=testuser
psql: error: FATAL: no pg_hba.conf entry for host "w.x.y.z", user "testuser", database "testDB", SSL off
```

## Détermination du statut de la connexion SSL
<a name="PostgreSQL.Concepts.General.SSL.Status"></a>

Le statut chiffré de votre connexion est affiché dans la page d'accueil d'ouverture de session lorsque vous vous connectez à l'instance de base de données :

```
Password for user master: 
psql (10.3) 
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256) 
Type "help" for help.
postgres=>
```

Vous pouvez également charger l'extension `sslinfo`, puis appeler la fonction `ssl_is_used()` pour déterminer si SSL est utilisé. La fonction renvoie `t` si la connexion utilise SSL ; sinon, elle renvoie `f`.

```
postgres=> CREATE EXTENSION sslinfo;
CREATE EXTENSION
postgres=> SELECT ssl_is_used();
ssl_is_used
---------
t
(1 row)
```

Pour obtenir des informations plus détaillées, vous pouvez utiliser la requête suivante pour obtenir des informations via `pg_settings` :

```
SELECT name as "Parameter name", setting as value, short_desc FROM pg_settings WHERE name LIKE '%ssl%';
             Parameter name             |                  value                  |                      short_desc
----------------------------------------+-----------------------------------------+-------------------------------------------------------
 ssl                                    | on                                      | Enables SSL connections.
 ssl_ca_file                            | /rdsdbdata/rds-metadata/ca-cert.pem     | Location of the SSL certificate authority file.
 ssl_cert_file                          | /rdsdbdata/rds-metadata/server-cert.pem | Location of the SSL server certificate file.
 ssl_ciphers                            | HIGH:!aNULL:!3DES                       | Sets the list of allowed SSL ciphers.
 ssl_crl_file                           |                                         | Location of the SSL certificate revocation list file.
 ssl_dh_params_file                     |                                         | Location of the SSL DH parameters file.
 ssl_ecdh_curve                         | prime256v1                              | Sets the curve to use for ECDH.
 ssl_key_file                           | /rdsdbdata/rds-metadata/server-key.pem  | Location of the SSL server private key file.
 ssl_library                            | OpenSSL                                 | Name of the SSL library.
 ssl_max_protocol_version               |                                         | Sets the maximum SSL/TLS protocol version to use.
 ssl_min_protocol_version               | TLSv1.2                                 | Sets the minimum SSL/TLS protocol version to use.
 ssl_passphrase_command                 |                                         | Command to obtain passphrases for SSL.
 ssl_passphrase_command_supports_reload | off                                     | Also use ssl_passphrase_command during server reload.
 ssl_prefer_server_ciphers              | on                                      | Give priority to server ciphersuite order.
(14 rows)
```

Vous pouvez également recueillir toutes les informations sur l’utilisation SSL de votre instance de base de données RDS pour PostgreSQL par processus, client et application en utilisant la requête suivante :

```
SELECT datname as "Database name", usename as "User name", ssl, client_addr, application_name, backend_type
   FROM pg_stat_ssl
   JOIN pg_stat_activity
   ON pg_stat_ssl.pid = pg_stat_activity.pid
   ORDER BY ssl;
 Database name | User name | ssl |  client_addr   |    application_name    |         backend_type
---------------+-----------+-----+----------------+------------------------+------------------------------
               |           | f   |                |                        | autovacuum launcher
               | rdsadmin  | f   |                |                        | logical replication launcher
               |           | f   |                |                        | background writer
               |           | f   |                |                        | checkpointer
               |           | f   |                |                        | walwriter
 rdsadmin      | rdsadmin  | t   | 127.0.0.1      |                        | client backend
 rdsadmin      | rdsadmin  | t   | 127.0.0.1      | PostgreSQL JDBC Driver | client backend
 postgres      | postgres  | t   | 204.246.162.36 | psql                   | client backend
(8 rows)
```

Pour identifier le chiffrage utilisé pour votre connexion SSL, vous pouvez utiliser la requête suivante :

```
postgres=> SELECT ssl_cipher();
ssl_cipher
--------------------
DHE-RSA-AES256-SHA
(1 row)
```

Pour en savoir plus sur l'option `sslmode`, consultez [Database connection control functions](https://www.postgresql.org/docs/11/libpq-connect.html#LIBPQ-CONNECT-SSLMODE) (Fonctions de contrôle des connexions aux bases de données) dans la *documentation de PostgreSQL*.

## Suites de chiffrement SSL dans RDS pour PostgreSQL
<a name="PostgreSQL.Concepts.General.SSL.Ciphers"></a>

Le paramètre de configuration PostgreSQL [ssl\$1ciphers](https://www.postgresql.org/docs/current/runtime-config-connection.html#RUNTIME-CONFIG-CONNECTION-SSL) précise les catégories de suites de chiffrement autorisées pour les connexions SSL vers la base de données lors de l’utilisation de TLS 1.2 et versions antérieures. 

 Dans RDS pour PostgreSQL 16 et versions ultérieures, vous pouvez modifier le paramètre `ssl_ciphers` pour utiliser des valeurs spécifiques issues des suites de chiffrement autorisées. Il s’agit d’un paramètre dynamique qui ne nécessite pas le redémarrage de l’instance de base de données. Pour consulter les suites de chiffrement autorisées, utilisez la console Amazon RDS ou la commande CLI AWS suivante : 

```
aws rds describe-db-parameters --db-parameter-group-name <your-parameter-group> --region <region> --endpoint-url <endpoint-url> --output json | jq '.Parameters[] | select(.ParameterName == "ssl_ciphers")'
```

Le tableau suivant répertorie à la fois les suites de chiffrement par défaut et les suites de chiffrement autorisées pour les versions qui prennent en charge les configurations personnalisées.


| Version du moteur PostgreSQL | Valeurs par défaut de la suite ssl\$1cipher | Valeurs de la suite ssl\$1cipher personnalisées autorisées | 
| --- | --- | --- | 
| 18 | HIGH:\$1aNULL:\$13DES |  `TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384` `TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256` `TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256` `TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384` `TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256`  | 
| 17 | HIGH:\$1aNULL:\$13DES |  `TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384` `TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256` `TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256` `TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384` `TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256`  | 
| 16 | HIGH:\$1aNULL:\$13DES |  `TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384` `TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256` `TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256` `TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384` `TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256`  | 
| 15 | HIGH:\$1aNULL:\$13DES | ssl\$1ciphers personnalisé n’est pas pris en charge | 
| 14 | HIGH:\$1aNULL:\$13DES | ssl\$1ciphers personnalisé n’est pas pris en charge | 
| 13 | HIGH:\$1aNULL:\$13DES | ssl\$1ciphers personnalisé n’est pas pris en charge | 
| 12 | HIGH:\$1aNULL:\$13DES | ssl\$1ciphers personnalisé n’est pas pris en charge | 
| 11.4 et versions mineures ultérieures | HIGH:MEDIUM:\$13DES:\$1aNULL:\$1RC4 | ssl\$1ciphers personnalisé n’est pas pris en charge | 
| 11.1, 11.2 | HIGH:MEDIUM:\$13DES:\$1aNULL | ssl\$1ciphers personnalisé n’est pas pris en charge | 
| 10.9 et versions mineures ultérieures | HIGH:MEDIUM:\$13DES:\$1aNULL:\$1RC4 | ssl\$1ciphers personnalisé n’est pas pris en charge | 
| 10.7 et versions mineures inférieures | HIGH:MEDIUM:\$13DES:\$1aNULL | ssl\$1ciphers personnalisé n’est pas pris en charge | 

Pour configurer toutes les connexions d’instance afin d’utiliser la suite de chiffrement`TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384`, modifiez votre groupe de paramètres comme indiqué dans l’exemple suivant :

```
aws rds modify-db-parameter-group --db-parameter-group-name <your-parameter-group> --parameters "ParameterName='ssl_ciphers',ParameterValue='TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384',ApplyMethod=immediate"
```

Cet exemple utilise un chiffrement ECDSA, qui oblige votre instance à utiliser une autorité de certification avec cryptographie à courbe elliptique (ECC) pour établir une connexion. Pour plus d’informations sur les autorités de certification fournies par Amazon RDS, consultez [Autorités de certification](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/singWithRDS.SSL.html#UsingWithRDS.SSL.RegionCertificateAuthorities).

Vous pouvez vérifier les chiffrements utilisés à l’aide des méthodes décrites dans la section [Détermination de l’état de la connexion SSL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.SSL.html#PostgreSQL.Concepts.General.SSL.Status).

Les chiffrements peuvent avoir des noms différents selon le contexte :
+ Les chiffrements autorisés que vous pouvez configurer dans votre groupe de paramètres sont désignés par leur nom IANA.
+ Les bannières de connexion `sslinfo` et `psql` font référence aux chiffrements utilisant leur nom OpenSSL.

Par défaut, la valeur de `ssl_max_protocol_version` dans RDS pour PostgreSQL 16 et versions ultérieures est TLS v1.3. Vous devez définir la valeur de ce paramètre sur TLS v1.2, car TLS v1.3 n’utilise pas les configurations de chiffrement spécifiées dans le paramètre `ssl_ciphers`. Lorsque vous définissez la valeur sur TLS v1.2, les connexions utilisent uniquement les chiffrements que vous définissez dans `ssl_ciphers`.

```
aws rds modify-db-parameter-group --db-parameter-group-name <your-parameter-group> --parameters "ParameterName='ssl_max_protocol_version',ParameterValue='TLSv1.2',ApplyMethod=immediate"
```

Pour garantir que les connexions à la base de données utilisent le protocole SSL, définissez `rds.force_ssl parameter` sur 1 dans votre groupe de paramètres. Pour plus d’informations sur les paramètres et les groupes de paramètres, consultez [Groupes de paramètres pour Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html). 

# Mise à jour des applications pour se connecter aux instances de base de données PostgreSQL à l'aide de nouveaux certificats SSL/TLS
<a name="ssl-certificate-rotation-postgresql"></a>

Certificats utilisés pour Secure Socket Layer ou Transport Layer Security (SSL/TLS) typically have a set lifetime. When service providers update their Certificate Authority (CA) certificates, clients must update their applications to use the new certificates. Following, you can find information about how to determine if your client applications use SSL/TLSpour vous connecter à votre instance de base de données Amazon RDS for PostgreSQL). 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 SSL/TLS connexion 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 plus d’informations sur la rotation de certificats, consultez [Rotation de votre SSL/TLS certificat](UsingWithRDS.SSL-certificate-rotation.md). Pour en savoir plus sur le téléchargement de certificats, consultez [](UsingWithRDS.SSL.md). Pour plus d'informations sur l'utilisation SSL/TLS avec les instances de base de données PostgreSQL, consultez. [Utilisation de SSL avec une instance de base de données PostgreSQL](PostgreSQL.Concepts.General.SSL.md)

**Topics**
+ [Contrôle de la connexion des applications aux instances de bases de données PostgreSQL avec le protocole SSL](#ssl-certificate-rotation-postgresql.determining-server)
+ [Contrôle de la nécessité d’une vérification du certificat du client pour qu’il puisse se connecter](#ssl-certificate-rotation-postgresql.determining-client)
+ [Mise à jour du magasin d’approbations de votre application](#ssl-certificate-rotation-postgresql.updating-trust-store)
+ [Utilisation de SSL/TLS connexions pour différents types d'applications](#ssl-certificate-rotation-postgresql.applications)

## Contrôle de la connexion des applications aux instances de bases de données PostgreSQL avec le protocole SSL
<a name="ssl-certificate-rotation-postgresql.determining-server"></a>

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 paramètre `rds.force_ssl` est défini sur `0` (désactivé) pour les instances de base de données utilisant des versions de PostgreSQL antérieures à la version 15. Par défaut, `rds.force_ssl` est défini sur `1` (activé) pour les instances de base de données utilisant des versions de PostgreSQL version 15 et ultérieures majeures. Si le `rds.force_ssl` paramètre est défini sur `1` (activé), les clients doivent l'utiliser SSL/TLS pour les connexions. Pour plus d'informations sur les groupes de paramètres, consultez [Groupes de paramètres pour Amazon RDS](USER_WorkingWithParamGroups.md).

Si vous utilisez RDS PostgreSQL version 9.5 ou ultérieure et que `rds.force_ssl` n'est pas défini sur `1` (activé), interrogez la vue `pg_stat_ssl` afin de vérifier les connexions à l'aide du protocole SSL. Par exemple, la requête suivante retourne uniquement les connexions SSL et les informations sur les clients utilisant un protocole SSL.

```
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 SSL/TLS des connexions 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'implique pas forcément qu'aucune application n'utilise de connexions SSL. D’autres connexions SSL peuvent avoir été é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
<a name="ssl-certificate-rotation-postgresql.determining-client"></a>

Quand un client, tel que psql ou JDBC, est configuré avec la prise en charge du protocole SSL, le comportement par défaut est le suivant : le client essaie d’abord de se connecter à la base de données avec le protocole SSL. En cas d’impossibilité, le client revient à la connexion sans protocole SSL. Le mode `sslmode` utilisé par défaut pour les clients libpq (comme psql) et JDBC est défini sur `prefer`. Le certificat sur le serveur n’est vérifié que lorsque `sslrootcert` est fourni avec `sslmode` défini sur `verify-ca` ou `verify-full`. En cas de non-validité du certificat, une erreur est déclenchée.

Utilisez `PGSSLROOTCERT` pour vérifier le certificat avec la variable d’environnement `PGSSLMODE`, avec `PGSSLMODE` défini sur `verify-ca` ou `verify-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’argument `sslrootcert` pour vérifier le certificat ayant `sslmode` comme format de chaîne de connexion, avec `sslmode` défini sur `verify-ca` ou `verify-full`.

```
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
<a name="ssl-certificate-rotation-postgresql.updating-trust-store"></a>

Pour plus d'informations sur la mise à jour du trust store pour les applications PostgreSQL, [consultez la section Connexions TCP/IP sécurisées avec](https://www.postgresql.org/docs/current/ssl-tcp.html) SSL dans la documentation de PostgreSQL.

Pour plus d’informations sur le téléchargement du certificat racine, consultez [](UsingWithRDS.SSL.md).

Pour obtenir des exemples de scripts qui importent des certificats, consultez [Exemple de script pour importer les certificats dans votre magasin d’approbations](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-sample-script).

**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 de SSL/TLS connexions pour différents types d'applications
<a name="ssl-certificate-rotation-postgresql.applications"></a>

Vous trouverez ci-dessous des informations sur l'utilisation SSL/TLS des connexions 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 SSL/TLS les connexions, les options pertinentes sont `sslmode` (variable d'environnement`PGSSLMODE`), `sslrootcert` (variable d'environnement`PGSSLROOTCERT`).

  Pour obtenir la liste complète des options, consultez [Parameter Key Words](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS) dans la documentation PostgreSQL. Pour obtenir la liste complète des variables d’environnement, consultez [Environment Variables](https://www.postgresql.org/docs/current/libpq-envars.html) dans la documentation PostgreSQL.
+ **pgAdmin**

  Ce client basé sur un navigateur est une interface plus conviviale pour se connecter à une base de données PostgreSQL.

  Pour plus d’informations sur la configuration des connexions, consultez la [documentation pgAdmin](https://www.pgadmin.org/docs/pgadmin4/latest/server_dialog.html).
+ **JDBC**

  JDBC permet de se connecter à la base de données avec des applications Java.

  Pour obtenir des informations générales sur la connexion à une base de données PostgreSQL avec JDBC, consultez [Connecting to the Database](https://jdbc.postgresql.org/documentation/use/#connecting-to-the-database) (Connexion à la base de données) dans la documentation du pilote JDBC PostgreSQL. Pour obtenir des informations sur la connexion avec un protocole SSL/TLS, consultez [Configuring the client](https://jdbc.postgresql.org/documentation/ssl/#configuring-the-client) (Configuration du client) dans la documentation du pilote JDBC PostgreSQL. 
+ **Python**

   est une bibliothèque Python bien connue pour se connecter aux bases de données PostgreSQ `psycopg2`.

  Pour plus d’informations sur l’utilisation de `psycopg2`, consultez la [documentation psycopg2](https://pypi.org/project/psycopg2/). Pour obtenir un bref didacticiel sur la connexion à une base de données PostgreSQL, consultez [Psycopg2 Tutorial](https://wiki.postgresql.org/wiki/Psycopg2_Tutorial). Vous trouverez des informations sur les options acceptées par la commande de connexion dans [The psycopg2 module content](http://initd.org/psycopg/docs/module.html#module-psycopg2).

**Important**  
Une fois que vous avez déterminé que vos connexions à la base de données utilisent SSL/TLS et que vous avez mis à jour votre magasin de confiance d'applications, vous pouvez mettre à jour votre base de données pour utiliser les certificats rds-ca-rsa 2048-g1. Pour obtenir des instructions, consultez l’étape 3 dans [Mise à jour de votre certificat CA en modifiant votre instance de base de données ou votre cluster](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-updating).