

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à.

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

A partire dal 13 gennaio 2023, Amazon RDS ha pubblicato nuovi certificati Certificate Authority (CA) per la connessione ai cluster Aurora DB tramite Secure Socket Layer o Transport Layer Security (). SSL/TLS Di seguito sono disponibili le informazioni sull'aggiornamento delle applicazioni per utilizzare i nuovi certificati.

Questo argomento può aiutarti a determinare se alcune applicazioni client vengono utilizzate SSL/TLS per connettersi ai cluster DB. In caso affermativo, puoi determinare anche se le applicazioni richiedono la verifica del certificato per la connessione. 

**Nota**  
Alcune applicazioni sono configurate per connettersi ai cluster DB Aurora PostgreSQL solo se sono in grado di verificare il certificato del server.   
Per queste applicazioni, è necessario aggiornare gli archivi di trust delle applicazioni client per includere i nuovi certificati CA. 

Dopo aver aggiornato i certificati CA negli archivi attendibilità delle applicazioni client, puoi ruotare i certificati nei cluster DB. Consigliamo vivamente di testare queste procedure in un ambiente di sviluppo o di gestione temporanea 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 [Utilizzo SSL/TLS per crittografare una connessione a un'](UsingWithRDS.SSL.md). Per informazioni sull'utilizzo SSL/TLS con i cluster DB PostgreSQL, consulta. [Protezione dei dati di Aurora PostgreSQL con SSL/TLS](AuroraPostgreSQL.Security.md#AuroraPostgreSQL.Security.SSL)

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

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

Controlla la configurazione del cluster DB per individuare il valore del parametro `rds.force_ssl`. Per impostazione predefinita, il parametro `rds.force_ssl` è impostato su `0` (disattivato). 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 Aurora](USER_WorkingWithParamGroups.md).

Se `rds.force_ssl` non è impostato su `1` (attivato), esegui una query sulla visualizzazione `pg_stat_ssl` per ottenere le connessioni che utilizzano 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-aurora-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 primaryuser -d postgres
```

Usa 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=primaryuser dbname=postgres"
```

Ad esempio, nel caso precedente, se utilizzi un certificato root non valido, sul client viene visualizzato un errore simile al seguente.

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

## Aggiornare l'archivio di trust delle applicazioni
<a name="ssl-certificate-rotation-aurora-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.

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

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

È possibile aggiornare il trust store per le applicazioni che utilizzano JDBC per le connessioni. SSL/TLS 

Per ulteriori informazioni sul download del certificato root, consulta [Utilizzo SSL/TLS per crittografare una connessione a un'](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).

## Utilizzo di SSL/TLS connessioni per diversi tipi di applicazioni
<a name="ssl-certificate-rotation-aurora-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/11/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 l'argomento relativo alla [connessione al database](https://jdbc.postgresql.org/documentation/use/) nella documentazione di PostgreSQL. Per informazioni sulla connessione con SSL/TLS, consulta [Configurazione del client nella documentazione](https://jdbc.postgresql.org/documentation/ssl/) di PostgreSQL. 
+ **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](https://www.psycopg.org/docs/module.html).

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