

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Protezione delle connessioni a RDS for PostgreSQL con SSL/TLS
<a name="PostgreSQL.Concepts.General.Security"></a>

RDS for PostgreSQL supporta la crittografia Secure Socket Layer (SSL) per le istanze database PostgreSQL. Utilizzando SSL, puoi crittografare una connessione PostgreSQL tra le tue applicazioni e le tue istanze database PostgreSQL. Puoi inoltre imporre a tutte le connessioni per la tua istanza database PostgreSQL di utilizzare SSL. RDS for PostgreSQL supporta inoltre Transport Layer Security (TLS), il protocollo successore di SSL.

Per ulteriori informazioni su Amazon RDS e sulla protezione dei dati, inclusa la crittografia delle connessioni tramite SSL/TLS, consulta [Protezione dei dati in Amazon RDS](DataDurability.md).

**Topics**
+ [Utilizzo del protocollo SSL con un'istanza database PostgreSQL](PostgreSQL.Concepts.General.SSL.md)
+ [Aggiornamento delle applicazioni per la connessione alle istanze DB PostgreSQL utilizzando nuovi certificati SSL/TLS](ssl-certificate-rotation-postgresql.md)

# Utilizzo del protocollo SSL con un'istanza database PostgreSQL
<a name="PostgreSQL.Concepts.General.SSL"></a>

Amazon RDS supporta la crittografia SSL per le istanze database di PostgreSQL. Utilizzando SSL, puoi crittografare una connessione PostgreSQL tra le tue applicazioni e le tue istanze database PostgreSQL. Per impostazione di default, RDS for PostgreSQL utilizza e prevede che tutti i client si connettano utilizzando SSL/TLS, ma puoi anche renderlo obbligatorio. RDS per PostgreSQL supporta Transport Layer Security (TLS) versioni 1.1, 1.2 e 1.3.

Per informazioni generali sul supporto SSL e sui database PostgreSQL, consulta l'argomento relativo al [supporto SSL](https://www.postgresql.org/docs/11/libpq-ssl.html) nella documentazione di PostgreSQL. Per informazioni sull'utilizzo della connessione SSL in JDBC, consulta l'argomento relativo alla [configurazione del client](https://jdbc.postgresql.org/documentation/head/ssl-client.html) nella documentazione di PostgreSQL.

Il supporto SSL è disponibile in tutte le AWS regioni per PostgreSQL. Amazon RDS crea un certificato SSL per l'istanza database PostgreSQL al momento della creazione dell'istanza. Se abiliti la verifica del certificato SSL, il certificato SSL include l'endpoint dell'istanza database come nome comune (CN) per il certificato SSL per la protezione contro attacchi di spoofing. 

**Topics**
+ [Connessione a un'istanza database PostgreSQL tramite SSL](#PostgreSQL.Concepts.General.SSL.Connecting)
+ [Richiesta di una connessione SSL a un'istanza database PostgreSQL](#PostgreSQL.Concepts.General.SSL.Requiring)
+ [Determinazione dello stato di connessione SSL](#PostgreSQL.Concepts.General.SSL.Status)
+ [Suite di crittografie SSL in RDS per PostgreSQL](#PostgreSQL.Concepts.General.SSL.Ciphers)

## Connessione a un'istanza database PostgreSQL tramite SSL
<a name="PostgreSQL.Concepts.General.SSL.Connecting"></a>

**Per effettuare la connessione a un'istanza database PostgreSQL tramite SSL**

1. Scaricare il certificato.

   Per ulteriori informazioni sul download dei certificati, consultare [](UsingWithRDS.SSL.md).

1. Effettuare la connessione a un'istanza database PostgreSQL tramite SSL.

   Quando ti connetti tramite SSL, il tuo client può scegliere di verificare o meno la catena di certificati. Se i parametri di connessione specificano `sslmode=verify-ca` o `sslmode=verify-full`, il client richiede che i certificati CA RDS siano nell'archivio attendibilità o facciano riferimento all'URL della connessione. Questo requisito è verificare la catena di certificati che firma il certificato del database.

   Quando un client, come psql o JDBC, è configurato con il supporto SSL, per impostazione predefinita tenta innanzitutto di connettersi al database con SSL. Se il client non riesce a connettersi con SSL, torna a connettersi senza SSL. La modalità predefinita `sslmode` utilizzata per i client basati su libpq (come psql) è diversa da quella per JDBC. I client basati su libpq e i client JDBC utilizzano `prefer` per impostazione predefinita.

   Utilizzare il parametro `sslrootcert` come riferimento per il certificato, ad esempio `sslrootcert=rds-ssl-ca-cert.pem`.

Di seguito è riportato un esempio di utilizzo di `psql` per connettersi a un'istanza database PostgreSQL tramite SSL con verifica del certificato.

```
$ 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"
```

## Richiesta di una connessione SSL a un'istanza database PostgreSQL
<a name="PostgreSQL.Concepts.General.SSL.Requiring"></a>

Puoi richiedere che le connessioni alla tua istanza database PostgreSQL utilizzino SSL adoperando il parametro `rds.force_ssl`. Per RDS per PostgreSQL versione 15 e successive, il parametro predefinito `rds.force_ssl` è impostato su 1 (on). Per RDS per PostgreSQL 14 e tutte le altre versioni principali precedenti, il valore predefinito del parametro è 0 (off). È possibile impostare il `rds.force_ssl` parametro su 1 (attivo) SSL/TLS per richiedere le connessioni al cluster DB. Puoi impostare il parametro `rds.force_ssl` su 1 (on) per richiedere la crittografia SSL per le connessioni alla tua istanza database. 

Per modificare il valore di questo parametro, devi creare un gruppo parametri del database personalizzato. Quindi modifica il valore di `rds.force_ssl` nel gruppo parametri del database personalizzato su `1` per attivare questa caratteristica. Se prepari il gruppo parametri del database personalizzato prima di creare l'istanza database RDS for PostgreSQL, puoi sceglierlo (invece del gruppo di parametri di default) durante il processo di creazione. Se esegui questa operazione quando l'istanza database RDS for PostgreSQL è in esecuzione, devi riavviare l'istanza in modo che utilizzi il gruppo di parametri personalizzati. Per ulteriori informazioni, consulta [Gruppi di parametri per Amazon RDS](USER_WorkingWithParamGroups.md).

Quando la caratteristica `rds.force_ssl` è attiva sull'istanza database, i tentativi di connessione che non utilizzano SSL vengono rifiutati con il seguente messaggio:

```
$ 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
```

## Determinazione dello stato di connessione SSL
<a name="PostgreSQL.Concepts.General.SSL.Status"></a>

Lo stato crittografato della tua connessione è indicato nel banner di accesso quando ti connetti all'istanza database:

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

Puoi anche caricare l'estensione `sslinfo` e quindi richiamare la funzione `ssl_is_used()` per determinare se viene utilizzata la crittografia SSL. La funzione restituisce `t` se la connessione utilizza la crittografia SSL, altrimenti restituisce `f`.

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

Per informazioni dettagliate, puoi utilizzare la seguente query per ottenere informazioni da `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)
```

Puoi anche raccogliere tutte le informazioni sull'utilizzo SSL dell'istanza database RDS for PostgreSQL per processo, client e applicazione utilizzando la query seguente:

```
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)
```

Per identificare la cifra utilizzata per la tua connessione SSL, puoi eseguire la seguente query:

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

Per ulteriori informazioni sull'opzione `sslmode`, consulta [Database connection control functions](https://www.postgresql.org/docs/11/libpq-connect.html#LIBPQ-CONNECT-SSLMODE) nella *documentazione di PostgreSQL*.

## Suite di crittografie SSL in RDS per PostgreSQL
<a name="PostgreSQL.Concepts.General.SSL.Ciphers"></a>

Il parametro di configurazione PostgreSQL [ssl\$1ciphers](https://www.postgresql.org/docs/current/runtime-config-connection.html#RUNTIME-CONFIG-CONNECTION-SSL) specifica le categorie di suite di crittografia consentite per le connessioni SSL al database in caso di utilizzo di TLS 1.2 e versioni precedenti. 

 In RDS per PostgreSQL 16 e versioni successive, è possibile modificare il parametro `ssl_ciphers` in modo da utilizzare valori specifici delle suite di crittografia consentite. Si tratta di un parametro dinamico che non richiede il riavvio dell’istanza database. Per visualizzare le suite di crittografia consentite, utilizza la console Amazon RDS o il seguente comando della AWS CLI: 

```
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")'
```

La tabella seguente elenca sia le suite di crittografia predefinite sia quelle consentite per le versioni che supportano configurazioni personalizzate.


| Versione del motore PostgreSQL | Valori della suite ssl\$1cipher predefinite | Valori della suite ssl\$1cipher personalizzate consentite | 
| --- | --- | --- | 
| 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 | Le suite ssl\$1cipher personalizzate non sono supportate | 
| 14 | HIGH:\$1aNULL:\$13DES | Le suite ssl\$1cipher personalizzate non sono supportate | 
| 13 | HIGH:\$1aNULL:\$13DES | Le suite ssl\$1cipher personalizzate non sono supportate | 
| 12 | HIGH:\$1aNULL:\$13DES | Le suite ssl\$1cipher personalizzate non sono supportate | 
| Versioni secondarie 11.4 e successive | HIGH:MEDIUM:\$13DES:\$1aNULL:\$1RC4 | Le suite ssl\$1cipher personalizzate non sono supportate | 
| 11.1, 11.2 | HIGH:MEDIUM:\$13DES:\$1aNULL | Le suite ssl\$1cipher personalizzate non sono supportate | 
| Versioni secondarie 10.9 e successive | HIGH:MEDIUM:\$13DES:\$1aNULL:\$1RC4 | Le suite ssl\$1cipher personalizzate non sono supportate | 
| Versioni secondarie 10.7 e precedenti | HIGH:MEDIUM:\$13DES:\$1aNULL | Le suite ssl\$1cipher personalizzate non sono supportate | 

Per configurare tutte le connessioni di istanza per l’utilizzo della suite di crittografia `TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384`, modifica il gruppo di parametri come mostrato nell’esempio seguente:

```
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"
```

Questo esempio utilizza una crittografia ECDSA, che richiede all’istanza di utilizzare un’autorità di certificazione con Elliptic Curve Cryptography (ECC) per stabilire una connessione. Per informazioni sulle autorità di certificazione fornite da Amazon RDS, consulta [Autorità di certificazione](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/singWithRDS.SSL.html#UsingWithRDS.SSL.RegionCertificateAuthorities).

Puoi verificare gli algoritmi di crittografia in uso tramite i metodi descritti in [Determinazione dello stato di connessione SSL](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/PostgreSQL.Concepts.General.SSL.html#PostgreSQL.Concepts.General.SSL.Status).

Gli algoritmi di crittografia possono avere nomi diversi a seconda del contesto:
+ Gli algoritmi di crittografia consentiti che è possibile configurare nel gruppo di parametri sono indicati con i rispettivi nomi IANA.
+ Il banner di accesso `sslinfo` e `psql` fa riferimento agli algoritmi di crittografia utilizzando i rispettivi nomi OpenSSL.

Per impostazione predefinita, il valore di `ssl_max_protocol_version` in RDS per PostgreSQL 16 e versioni successive è TLS v1.3. È necessario impostare il valore di questo parametro su TLS v1.2 poiché TLS v1.3 non utilizza le configurazioni di crittografia specificate nel parametro `ssl_ciphers`. Quando imposti TLS v1.2 come valore, le connessioni utilizzano solo gli algoritmi di crittografia definiti in `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"
```

Per assicurarti che le connessioni al database utilizzino SSL, imposta `rds.force_ssl parameter` su 1 nel gruppo di parametri. Per ulteriori informazioni sui parametri e i gruppi di parametri, consulta [Parameter groups for Amazon RDS](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html). 

# Aggiornamento delle applicazioni per la connessione alle istanze DB PostgreSQL utilizzando nuovi certificati SSL/TLS
<a name="ssl-certificate-rotation-postgresql"></a>

Certificati utilizzati per Secure Socket Layer o 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/TLSper connettersi alla tua istanza DB Amazon RDS for PostgreSQL). Troverai inoltre informazioni su come controllare se tali applicazioni verificano il certificato del server al momento della connessione.

**Nota**  
Un'applicazione client configurata per verificare il certificato del server prima della SSL/TLS connessione deve disporre di un certificato CA valido nel trust store del client. Aggiorna l'archivio trust del client quando necessario per i nuovi certificati.

Dopo aver aggiornato i certificati CA negli archivi di trust delle applicazioni client, puoi ruotare i certificati nelle istanze database. Consigliamo vivamente di testare queste procedure in un ambiente non di produzione prima di implementarle negli ambienti di produzione.

Per ulteriori informazioni sulla rotazione dei certificati, consulta [Rotazione del certificato SSL/TLS](UsingWithRDS.SSL-certificate-rotation.md). Per ulteriori informazioni sul download, consulta [](UsingWithRDS.SSL.md). Per informazioni sull'utilizzo SSL/TLS con le istanze DB PostgreSQL, consulta. [Utilizzo del protocollo SSL con un'istanza database PostgreSQL](PostgreSQL.Concepts.General.SSL.md)

**Topics**
+ [Determinare se un'applicazione si connette alle istanze DB PostgreSQL utilizzando SSL](#ssl-certificate-rotation-postgresql.determining-server)
+ [Determinare se un client richiede la verifica del certificato per la connessione](#ssl-certificate-rotation-postgresql.determining-client)
+ [Aggiornare l'archivio di trust delle applicazioni](#ssl-certificate-rotation-postgresql.updating-trust-store)
+ [Utilizzo di connessioni per diversi tipi di applicazioni SSL/TLS](#ssl-certificate-rotation-postgresql.applications)

## Determinare se un'applicazione si connette alle istanze DB PostgreSQL utilizzando SSL
<a name="ssl-certificate-rotation-postgresql.determining-server"></a>

Verifica la configurazione delle istanze database per il valore del parametro `rds.force_ssl`. Per impostazione predefinita, il parametro `rds.force_ssl` è impostato su `0` (disattivato) per le istanze DB che utilizzano versioni di PostgreSQL precedenti alla versione 15. Per impostazione predefinita, il parametro `rds.force_ssl` è impostato su `1` (attivato) per le istanze DB che utilizzano PostgreSQL versione 15 e versioni principali successive. Se il `rds.force_ssl` parametro è impostato su `1` (on), i client devono utilizzarlo per le connessioni. SSL/TLS Per ulteriori informazioni sui gruppi di parametri, consultare [Gruppi di parametri per Amazon RDS](USER_WorkingWithParamGroups.md).

Se stai utilizzando la versione PostgreSQL RDS 9.5 o successiva e`rds.force_ssl` non è impostato su `1` (attivato), esegui la query di visualizzazione `pg_stat_ssl` per verificare le connessioni che usano SSL. Ad esempio, la query seguente restituisce solo le connessioni SSL e le informazioni sui client che utilizzano 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';
```

Vengono visualizzate solo le righe che utilizzano SSL/TLS connessioni con informazioni sulla connessione. Di seguito è riportato un output di esempio.

```
 datname  | usename | ssl | client_addr 
----------+---------+-----+-------------
 benchdb  | pgadmin | t   | 53.95.6.13
 postgres | pgadmin | t   | 53.95.6.13
(2 rows)
```

La query precedente visualizza solo le connessioni in uso al momento della query. L'assenza di risultati non indica che nessuna applicazione stia utilizzando connessioni SSL. Altre connessioni SSL potrebbero essere stabilite in un momento diverso.

## Determinare se un client richiede la verifica del certificato per la connessione
<a name="ssl-certificate-rotation-postgresql.determining-client"></a>

Quando un client, come psql o JDBC, è configurato con il supporto SSL, per impostazione predefinita tenta innanzitutto di connettersi al database con SSL. Se il client non riesce a connettersi con SSL, torna a connettersi senza SSL. La modalità `sslmode` predefinita utilizzata per i client basati su libpq (come psql) e JDBC è impostata su `prefer`. Il certificato del server viene verificato solo quando `sslrootcert` viene fornito con `sslmode` impostato su `verify-ca` o `verify-full`. Se il certificato non è valido viene generato un errore.

Utilizza `PGSSLROOTCERT` per verificare il certificato con la variabile di ambiente `PGSSLMODE`, con `PGSSLMODE` impostato su `verify-ca` o `verify-full`.

```
PGSSLMODE=verify-full PGSSLROOTCERT=/fullpath/ssl-cert.pem psql -h pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com -U masteruser -d postgres
```

Utilizza l’argomento `sslrootcert` per verificare il certificato con `sslmode` nel formato stringa di connessione, con `sslmode` impostato su `verify-ca` o `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"
```

Ad esempio, nel caso precedente, se stai utilizzando un certificato root non valido, sul client vedrai il seguente errore.

```
psql: SSL error: certificate verify failed
```

## Aggiornare l'archivio di trust delle applicazioni
<a name="ssl-certificate-rotation-postgresql.updating-trust-store"></a>

Per informazioni sull'aggiornamento del trust store per le applicazioni PostgreSQL, [consulta Connessioni TCP/IP sicure con SSL](https://www.postgresql.org/docs/current/ssl-tcp.html) nella documentazione di PostgreSQL.

Per ulteriori informazioni sul download del certificato root, consulta [](UsingWithRDS.SSL.md).

Per gli script di esempio che importano i certificati, consulta [Script di esempio per l'importazione di certificati nel tuo archivio di trust](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-sample-script).

**Nota**  
Quando aggiorni l'archivio di trust puoi conservare i certificati meno recenti oltre ad aggiungere i nuovi certificati.

## Utilizzo di connessioni per diversi tipi di applicazioni SSL/TLS
<a name="ssl-certificate-rotation-postgresql.applications"></a>

Di seguito vengono fornite informazioni sull'utilizzo delle SSL/TLS connessioni per diversi tipi di applicazioni:
+ **psql**

  Il client viene invocato dalla riga di comando specificando le opzioni come stringa di connessione o variabili di ambiente. Per SSL/TLS le connessioni, le opzioni pertinenti sono `sslmode` (variabile di ambiente`PGSSLMODE`), `sslrootcert` (variabile di ambiente`PGSSLROOTCERT`).

  Per l'elenco completo delle opzioni, consulta l'argomento relativo alle [parole chiave dei parametri](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS) nella documentazione di PostgreSQL. Per l'elenco completo delle variabili di ambiente, consulta l'argomento relativo alle [variabili di ambiente](https://www.postgresql.org/docs/current/libpq-envars.html) nella documentazione di PostgreSQL.
+ **pgAdmin**

  Questo client basato su browser fornisce un'interfaccia più intuitiva per la connessione a un database PostgreSQL.

  Per informazioni sulla configurazione delle connessioni, consulta la [documentazione di pgAdmin](https://www.pgadmin.org/docs/pgadmin4/latest/server_dialog.html).
+ **JDBC**

  JDBC abilita le connessioni al database con le applicazioni Java.

  Per informazioni generali sulla connessione a un database PostgreSQL con JDBC, consulta [Connecting to the database](https://jdbc.postgresql.org/documentation/use/#connecting-to-the-database) (Connessione al database) nella documentazione del driver PostgreSQL JDBC. Per informazioni sulla connessione con SSL/TLS, consulta [Configuring the client](https://jdbc.postgresql.org/documentation/ssl/#configuring-the-client) (Configurazione del client) nella documentazione del driver PostgreSQL JDBC. 
+ **Python**

  Una popolare libreria Python per la connessione ai database PostgreSQL è `psycopg2`.

  Per informazioni sull'utilizzo di `psycopg2`, consulta la documentazione [psycopg2](https://pypi.org/project/psycopg2/). Per un breve tutorial su come connettersi a un database PostgreSQL, consulta il [tutorial di Psycopg2](https://wiki.postgresql.org/wiki/Psycopg2_Tutorial). Le informazioni sulle opzioni accettate dal comando di connessione sono disponibili nell'argomento relativo al [contenuto del modulo Psycopg2](http://initd.org/psycopg/docs/module.html#module-psycopg2).

**Importante**  
Dopo aver stabilito che le connessioni al database utilizzano SSL/TLS e aver aggiornato l'archivio attendibile dell'applicazione, è possibile aggiornare il database per utilizzare i certificati rds-ca-rsa 2048-g1. Per istruzioni, consulta la fase 3 in [Aggiornamento del certificato CA modificando l’istanza database o il cluster di database](UsingWithRDS.SSL-certificate-rotation.md#UsingWithRDS.SSL-certificate-rotation-updating).