

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

# Configurazione dei SSL/TLS certificati per le connessioni Aurora DSQL
<a name="configure-root-certificates"></a><a name="ssl-certificate-overview"></a>

Aurora DSQL richiede che tutte le connessioni utilizzino la crittografia Transport Layer Security (TLS). Per stabilire connessioni sicure, il sistema client deve affidarsi all’Amazon Root Certificate Authority (Amazon Root CA 1). Questo certificato è preinstallato su molti sistemi operativi. Questa sezione fornisce istruzioni per verificare il certificato Amazon Root CA 1 preinstallato su vari sistemi operativi e guida l’utente attraverso il processo di installazione manuale del certificato, qualora non fosse già presente. 

Si consiglia di utilizzare PostgreSQL versione 17.

**Importante**  
Per gli ambienti di produzione, si consiglia di utilizzare la modalità SSL `verify-full` per garantire il massimo livello di sicurezza della connessione. Questa modalità verifica che il certificato del server sia firmato da un’autorità di certificazione affidabile e che il nome host del server corrisponda al certificato.

## Verifica dei certificati preinstallati
<a name="verify-installed-certificates"></a>

Nella maggior parte dei sistemi operativi, **Amazon Root CA 1** è già preinstallato. Per convalidarlo, è possibile completare la procedura seguente.

### Linux () RedHat/CentOS/Fedora
<a name="verify-linux"></a>

Esegui il comando seguente nel terminale:

```
trust list | grep "Amazon Root CA 1"
```

Se il certificato è installato, verrà visualizzato il seguente output:

```
label: Amazon Root CA 1
```

### macOS
<a name="verify-macos"></a>

1. Apri Spotlight Search (**Command** \+ **Spazio**)

1. Cerca **Keychain Access**

1. Seleziona **System Roots** in **System Keychains**

1. Cerca **Amazon Root CA 1** nell’elenco dei certificati

### Windows
<a name="verify-windows"></a>

**Nota**  
A causa di un problema noto con il client psql per Windows, l’utilizzo dei certificati root di sistema (`sslrootcert=system`) può restituire il seguente errore: `SSL error: unregistered scheme`. È possibile seguire [Connessione da Windows](#connect-windows) come metodo alternativo per connettersi al cluster tramite SSL. 

Se **Amazon Root CA 1** non è installato nel sistema operativo, procedi nel seguente modo. 

## Installazione dei certificati
<a name="install-certificates"></a>

 Se il certificato `Amazon Root CA 1` non è preinstallato sul sistema operativo, sarà necessario installarlo manualmente per stabilire connessioni sicure al cluster Aurora DSQL. 

### Installazione del certificato su Linux
<a name="install-linux"></a>

Attieniti alla seguente procedura per installare il certificato Amazon Root CA sui sistemi Linux.

1. Scarica il certificato root:

   ```
   wget https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

1. Aggiungi il certificato all’archivio di fiducia:

   ```
   sudo cp ./AmazonRootCA1.pem /etc/pki/ca-trust/source/anchors/
   ```

1. Aggiorna il CA Trust Store:

   ```
   sudo update-ca-trust
   ```

1. Verifica l’installazione:

   ```
   trust list | grep "Amazon Root CA 1"
   ```

### Installazione del certificato su macOS
<a name="install-macos"></a>

Questi passaggi di installazione dei certificati sono facoltativi. [Installazione del certificato su Linux](#install-linux) funziona anche per macOS.

1. Scarica il certificato root:

   ```
   wget https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

1. Aggiungi il certificato al keychain di sistema:

   ```
   sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain AmazonRootCA1.pem
   ```

1. Verifica l’installazione:

   ```
   security find-certificate -a -c "Amazon Root CA 1" -p /Library/Keychains/System.keychain
   ```

## Connessione con SSL/TLS verifica
<a name="connect-using-certificates"></a>

 Prima di configurare SSL/TLS i certificati per connessioni sicure al cluster Aurora DSQL, assicurati di avere i seguenti prerequisiti. 
+ PostgreSQL versione 17 installata
+ AWS CLI configurato con le credenziali appropriate
+ Informazioni sugli endpoint del cluster Aurora DSQL

### Connessione da Linux
<a name="connect-linux"></a>

1. Genera e imposta il token di autenticazione:

   ```
   export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token --region={{your-cluster-region}} --hostname {{your-cluster-endpoint}})
   ```

1. Connettiti utilizzando certificati di sistema (se preinstallati):

   ```
   PGSSLROOTCERT=system \
   PGSSLMODE=verify-full \
   psql --dbname postgres \
   --username admin \
   --host {{your-cluster-endpoint}}
   ```

1. Oppure, connettiti utilizzando un certificato scaricato:

   ```
   PGSSLROOTCERT=/full/path/to/root.pem \
   PGSSLMODE=verify-full \
   psql --dbname postgres \
   --username admin \
   --host {{your-cluster-endpoint}}
   ```

**Nota**  
 Per maggiori informazioni sulle impostazioni PGSSLMODE, consulta [sslmode](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLMODE) nella documentazione sulle [Funzioni di controllo della connessione del database](https://www.postgresql.org/docs/current/libpq-connect.html) di PostgreSQL 17. 

### Connessione da macOS
<a name="connect-macos"></a>

1. Genera e imposta il token di autenticazione:

   ```
   export PGPASSWORD=$(aws dsql generate-db-connect-admin-auth-token --region={{your-cluster-region}} --hostname {{your-cluster-endpoint}})
   ```

1. Connettiti utilizzando certificati di sistema (se preinstallati):

   ```
   PGSSLROOTCERT=system \
   PGSSLMODE=verify-full \
   psql --dbname postgres \
   --username admin \
   --host {{your-cluster-endpoint}}
   ```

1. Oppure, scarica il certificato root e salvalo con il nome `root.pem` (se il certificato non è preinstallato)

   ```
   PGSSLROOTCERT=/full/path/to/root.pem \
   PGSSLMODE=verify-full \
   psql —dbname postgres \
   --username admin \
   --host your_cluster_endpoint
   ```

1. Connessione tramite psql:

   ```
   PGSSLROOTCERT=/full/path/to/root.pem \
   PGSSLMODE=verify-full \
   psql —dbname postgres \
   --username admin \
   --host your_cluster_endpoint
   ```

### Connessione da Windows
<a name="connect-windows"></a>

#### Utilizzo del prompt dei comandi
<a name="windows-command-prompt"></a>

1. Genera il token di autenticazione:

   ```
   aws dsql generate-db-connect-admin-auth-token ^
   --region={{your-cluster-region}} ^
   --expires-in=3600 ^
   --hostname={{your-cluster-endpoint}}
   ```

1. Imposta la variabile di ambiente della password:

   ```
   set "PGPASSWORD={{token-from-above}}"
   ```

1. Imposta la configurazione SSL:

   ```
   set PGSSLROOTCERT=C:\full\path\to\root.pem
   set PGSSLMODE=verify-full
   ```

1. Connettiti al database:

   ```
   "C:\Program Files\PostgreSQL\17\bin\psql.exe" --dbname postgres ^
   --username admin ^
   --host {{your-cluster-endpoint}}
   ```

#### Usando PowerShell
<a name="windows-powershell"></a>

1. Genera e imposta il token di autenticazione:

   ```
   $env:PGPASSWORD = (aws dsql generate-db-connect-admin-auth-token --region={{your-cluster-region}} --expires-in=3600 --hostname={{your-cluster-endpoint}})
   ```

1. Imposta la configurazione SSL:

   ```
   $env:PGSSLROOTCERT='C:\full\path\to\root.pem'
   $env:PGSSLMODE='verify-full'
   ```

1. Connettiti al database:

   ```
    "C:\Program Files\PostgreSQL\17\bin\psql.exe" --dbname postgres `
   --username admin `
   --host {{your-cluster-endpoint}}
   ```

## Risorse aggiuntive
<a name="additional-resources"></a>
+  [Documentazione di PostgreSQL SSL](https://www.postgresql.org/docs/current/libpq-ssl.html) 
+  [Servizi Amazon Trust](https://www.amazontrust.com/repository/) 