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 connettersi alle istanze SQL DB di Postgre utilizzando nuovi certificati/SSLTLS
I certificati utilizzati per Secure Socket Layer o Transport Layer Security (SSL/TLS) hanno in genere una durata prestabilita. Quando i provider di servizi aggiornano i certificati dell'autorità di certificazione (CA), i client devono aggiornare le loro applicazioni per utilizzare i nuovi certificati. Di seguito, puoi trovare informazioni su come determinare se le tue applicazioni client utilizzanoSSL/TLSper connettersi alla tua istanza SQL database Amazon RDS for Postgre. 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 diSSL/TLSconnection deve avere 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 certificatoSSL/TLS. Per ulteriori informazioni sul download, consulta . Per informazioni sull'utilizzo diSSL/TLScon le istanze SQL DB di Postgree, consulta. Utilizzo SSL con un'istanza DB Postgres SQL
Argomenti
Determinare se le applicazioni si connettono alle istanze DB di SQL Postgre utilizzando SSL
Verifica la configurazione delle istanze database per il valore del parametro rds.force_ssl
. Per impostazione predefinita, il rds.force_ssl
parametro è impostato su 0
(off) per le istanze DB che utilizzano versioni di SQL Postgre precedenti alla versione 15. Per impostazione predefinita, rds.force_ssl
è impostato su 1
(on) per le istanze DB che utilizzano la SQL versione 15 di Postgre e le versioni principali successive. Se il rds.force_ssl
parametro è impostato su 1
(on), i client devono utilizzareSSL/TLSper le connessioni. Per ulteriori informazioni sui gruppi di parametri, consultare Gruppi di parametri per RDS.
Se stai usando la SQL versione 9.5 di RDS Postgre o la versione principale successiva e non rds.force_ssl
è impostata su 1
(attiva), interroga la pg_stat_ssl
vista per verificare le connessioni che utilizzano. SSL Ad esempio, la seguente query restituisce solo le SSL connessioni 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 utilizzanoSSL/TLSconnections 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 SSL connessioni. Altre SSL connessioni potrebbero essere stabilite in un momento diverso.
Determinare se un client richiede la verifica del certificato per la connessione
Quando un client, come psql orJDBC, è configurato con il SSL supporto, il client tenta innanzitutto di connettersi al database con l'impostazione SSL predefinita. Se il client non riesce a connettersi conSSL, torna alla connessione senza. SSL La sslmode
modalità predefinita è utilizzata per entrambi i client basati su libpq (come psql) ed JDBC è impostata su. prefer
Il certificato sul server viene verificato solo quando sslrootcert
viene fornito con sslmode
set to o. 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 masteruser -d postgres
Utilizza l'sslrootcert
argomento per verificare il certificato sslmode
nel formato della stringa di connessione, con sslmode
impostato su verify-ca
o verify-full
per verificare il certificato.
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
Per informazioni sull'aggiornamento del trust store per le SQL applicazioni Postgre, consulta Secure TCP /IP connections with SSL
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.
Nota
Quando aggiorni l'archivio di trust puoi conservare i certificati meno recenti oltre ad aggiungere i nuovi certificati.
Utilizzo delle TLS connessioniSSL/per diversi tipi di applicazioni
Di seguito vengono fornite informazioni sull'utilizzo delle TLS connessioniSSL/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 TLS le connessioniSSL/, le opzioni pertinenti sono
sslmode
(variabile di ambientePGSSLMODE
),sslrootcert
(variabile di ambientePGSSLROOTCERT
).Per l'elenco completo delle opzioni, vedi Parameter key words
nella documentazione di Postgre. SQL Per l'elenco completo delle variabili di ambiente, vedi Variabili di ambiente nella documentazione di SQL Postgre. -
pgAdmin
Questo client basato su browser è un'interfaccia più intuitiva per la connessione a un database Postgre. SQL
Per informazioni sulla configurazione delle connessioni, consulta la documentazione. pgAdmin
-
JDBC
JDBCabilita le connessioni al database con applicazioni Java.
Per informazioni generali sulla connessione a un SQL database Postgre conJDBC, vedete Connessione al database nella documentazione del
driver SQL JDBC Postgre. Per informazioni sulla connessione conSSL/TLS, consulta Configurazione del client nella documentazione del driver Postgre . SQL JDBC -
Python
Una popolare libreria Python per la connessione ai database SQL Postgre è.
psycopg2
Per informazioni sull'utilizzo di
psycopg2
, consulta la documentazione psycopg2. Per un breve tutorial su come connettersi a un SQL database Postgre, vedi 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 utilizzanoSSL/TLSe 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 o il cluster di database.