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 DB Aurora PostgreSQL utilizzando nuovi certificati SSL/TLS
A partire dal 13 gennaio 2023, sono stati pubblicati da Amazon RDS nuovi certificati dell'autorità di certificazione (CA) per la connessione ai cluster database Aurora utilizzando Secure Socket Layer o Transport Layer Security (SSL/TLS). Di seguito sono disponibili le informazioni sull'aggiornamento delle applicazioni per utilizzare i nuovi certificati.
Le informazioni in questo argomento possono aiutarti a stabilire se le applicazioni client utilizzano 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 certificatoSSL/TLS. Per ulteriori informazioni sul download, consulta . Per informazioni sull'utilizzo di SSL/TLS con i cluster DB PostgreSQL, consulta Protezione dei dati di Aurora SQL Postgree con/SSLTLS.
Argomenti
Determinare se un'applicazione si connette al cluster DB Aurora PostgreSQL utilizzando SSL
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 parametro rds.force_ssl
è impostato su 1
(attivato), i client devono utilizzare SSL/TLS per le connessioni. Per ulteriori informazioni sui gruppi di parametri, consultare .
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 connessioni SSL/TLS 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
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 sslmode
modalità predefinita utilizzata sia per i client basati su libpq (come psql) che per JDBC è impostata su. prefer
Il certificato sul server viene verificato solo quando sslrootcert
viene fornito con set to o. sslmode
verify-ca
verify-full
Se il certificato non è valido viene generato un errore.
PGSSLROOTCERT
Da utilizzare per verificare il certificato con la variabile di PGSSLMODE
ambiente, PGSSLMODE
impostata su verify-ca
overify-full
.
PGSSLMODE=verify-full PGSSLROOTCERT=/fullpath/
ssl-cert.pem
psql -h pgdbidentifier.cxxxxxxxx.us-east-2.rds.amazonaws.com -U primaryuser -d postgres
Utilizza l'sslrootcert
argomento per verificare il certificato sslmode
nel formato della stringa di connessione, con sslmode
impostato su verify-ca
overify-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
Per informazioni sull'aggiornamento dell'archivio attendibilità per le applicazioni PostgreSQL, consulta l'argomento relativo alle connessioni TCP/IP sicure con SSL
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
Puoi aggiornare l'archivio di trust delle applicazioni che utilizzano JDBC per le connessioni SSL/TLS.
Per ulteriori informazioni sul download del certificato root, consulta .
Per gli script di esempio che importano i certificati, consulta Script di esempio per l'importazione di certificati nel tuo archivio di trust.
Utilizzo delle connessioni SSL/TLS per diversi tipi di applicazioni
Di seguito vengono fornite le informazioni sull'utilizzo delle connessioni SSL/TLS 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. Le opzioni rilevanti per le connessioni SSL/TLS sono
sslmode
(variabile di ambientePGSSLMODE
),sslrootcert
(variabile di ambientePGSSLROOTCERT
).Per l'elenco completo delle opzioni, consulta l'argomento relativo alle parole chiave dei parametri
nella documentazione di PostgreSQL. Per l'elenco completo delle variabili di ambiente, consulta l'argomento relativo alle variabili di ambiente 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
. -
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
nella documentazione di PostgreSQL. Per informazioni sulla connessione con SSL/TLS, consulta l'argomento relativo alla configurazione del client nella documentazione di PostgreSQL. -
Python
Una popolare libreria Python per la connessione ai database PostgreSQL è
psycopg2
.Per informazioni sull'utilizzo di
psycopg2
, consulta la documentazione psycopg2. Per un breve tutorial su come connettersi a un database PostgreSQL, consulta il tutorial di Psycopg2 . Le informazioni sulle opzioni accettate dal comando di connessione sono disponibili nell'argomento relativo al contenuto del modulo 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 2048-g1. rds-ca-rsa Per istruzioni, consulta la fase 3 in Aggiornamento del certificato CA modificando l'istanza il cluster di database.