Condividi tramite


Configurare la connettività SSL in Database di Azure per PostgreSQL - Server singolo

SI APPLICA A: Database di Azure per PostgreSQL - Server singolo

Importante

Database di Azure per PostgreSQL - Il server singolo è in fase di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per PostgreSQL - Server flessibile. Per altre informazioni sulla migrazione a Database di Azure per PostgreSQL - Server flessibile, vedere Cosa succede a Database di Azure per PostgreSQL - Server singolo?.

Database di Azure per PostgreSQL preferisce connettere le applicazioni client al servizio PostgreSQL usando Transport Layer Security (TLS), noto in precedenza come Secure Sockets Layer (SSL). L'imposizione di connessioni TSL tra il server di database e le applicazioni client garantisce la protezione da attacchi "man-in-the-middle" tramite la crittografia del flusso di dati tra il server e l'applicazione.

Per impostazione predefinita, il servizio di database PostgreSQL è configurato per richiedere la connessione TLS. È possibile scegliere di disabilitare la richiesta di TLS se l'applicazione client non supporta la connettività TLS.

Importante

I certificati intermedi SSL sono impostati per essere aggiornati a partire dal 31 gennaio 2024 (31/01/2024). Un certificato intermedio è un certificato subordinato rilasciato da una radice attendibile specificamente per rilasciare certificati di entità finale. Il risultato è una catena di certificati che inizia nella CA radice attendibile, tramite l'autorità di certificazione intermedia (o ca) e termina con il certificato SSL emesso. L'aggiunta di certificati è una tecnica di sicurezza in cui vengono accettati solo i certificati autorizzati o aggiunti quando si stabilisce una sessione protetta. Qualsiasi tentativo di stabilire una sessione sicura usando un certificato diverso viene rifiutato. A differenza della CA radice attendibile, che è già stata aggiornata completamente durante l'anno corrente e in cui il certificato può essere aggiunto usando la direttiva client verify-ca o verify-full della stringa di connessione, non esiste un modo standard e ben stabilito per aggiungere una CA intermedia. Tuttavia, esiste una capacità teorica di creare uno stack di connettività personalizzato che aggiunge certificati intermedi al client in un'ampia gamma di linguaggi di programmazione. Come illustrato in precedenza, nello scenario improbabile in cui si aggiungono i certificati intermedi con codice personalizzato, questa modifica potrebbe essere interessata da questa modifica. Per determinare se si aggiungono CA, vedere l'articolo sull'associazione del certificato e servizi di Azure

Applicazione di connessioni TLS

Per impostazione predefinita, l'opzione di applicazione delle connessioni TLS è attiva quando si esegue il provisioning di tutti i Database di Azure per i server PostgreSQL attraverso l'interfaccia della riga di comando e il portale di Azure.

Analogamente, le stringhe di connessione predefinite nelle impostazioni "Stringhe di connessione" per il server nel portale di Azure includono i parametri obbligatori per le lingue comuni per effettuare la connessione al server di database tramite TLS. Il parametro TLS varia in base al connettore, ad esempio "ssl=true", "sslmode=require" oppure "sslmode=required" e altre varianti.

Configurare l'applicazione di TLS

Facoltativamente, è possibile disabilitare l'applicazione della connettività TLS. Microsoft Azure consiglia di abilitare sempre l'impostazione Enforce SSL connection (Applica connessione SSL) per una maggiore sicurezza.

Tramite il portale di Azure

Visitare il Database di Azure per il server PostgreSQL e selezionare Sicurezza connessione. Usare l'interruttore per abilitare o disabilitare l'impostazione Imponi connessione SSL. Selezionare quindi Salva.

Sicurezza connessione - Disabilitare l'applicazione di TLS/SSL

È possibile confermare l'impostazione aprendo la pagina Panoramica per visualizzare l'indicatore Stato imposizione SSL.

Utilizzare l'interfaccia della riga di comando di Azure

È possibile abilitare o disabilitare il parametro ssl-enforcement usando rispettivamente i valori Enabled o Disabled nell'interfaccia della riga di comando di Azure.

az postgres server update --resource-group myresourcegroup --name mydemoserver --ssl-enforcement Enabled

Determinazione dello stato delle connessioni SSL

È anche possibile raccogliere tutte le informazioni sull'utilizzo di SSL dell'istanza del server singolo di Database di Azure per PostgreSQL tramite processo, client e applicazione usando 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;

Verificare che le connessioni TLS siano supportate dall'applicazione o dal framework

Alcuni framework applicazione che usano PostgreSQL per i servizi di database non abilitano TLS per impostazione predefinita durante l'installazione. Se il server PostgreSQL applica connessioni TLS ma l'applicazione non è configurata per TLS, l'applicazione potrebbe non riuscire a connettersi al server di database. Consultare la documentazione dell'applicazione per informazioni su come abilitare le connessioni TLS.

Applicazioni che richiedono la verifica del certificato per la connettività TLS

In alcuni casi, le applicazioni richiedono un file di certificato locale generato da un file di certificato dell'autorità di certificazione (CA) attendibile per connettersi in modo sicuro. Il certificato per la connessione a un server di Database di Azure per PostgreSQL si trova in https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem. Scaricare il file del certificato e salvarlo nella posizione preferita.

Vedere i collegamenti seguenti per certificati per server in cloud sovrani: Azure per enti pubblici, Microsoft Azure gestito da 21Vianet e Azure Germania.

Connettersi tramite psql

L'esempio seguente illustra come connettersi al server PostgreSQL tramite l'utilità della riga di comando PSQL. Per applicare la verifica del certificato TLS/SSL usare l'impostazione della stringa di connessione sslmode=verify-full. Passare il percorso del file del certificato locale al parametro sslrootcert.

Il comando seguente è un esempio della stringa di connessione psql:

psql "sslmode=verify-full sslrootcert=BaltimoreCyberTrustRoot.crt host=mydemoserver.postgres.database.azure.com dbname=postgres user=myusern@mydemoserver"

Suggerimento

Verificare che il valore passato a sslrootcert corrisponda al percorso del file per il certificato salvato.

Imposizione di TLS nel server singolo di Database di Azure per PostgreSQL

Database di Azure per PostgreSQL - Server singolo supporta la crittografia per client che si connettono al server di database usando Transport Layer Security (TLS). TLS è un protocollo standard del settore che garantisce connessioni di rete sicure tra il server di database e le applicazioni client, consentendo di rispettare i requisiti di conformità.

Impostazioni di TLS

Il server singolo di Database di Azure per PostgreSQL consente di applicare la versione TLS per le connessioni client. Per applicare la versione TLS, usare l'opzione versione minima di TLS. Per questa impostazione di opzione sono consentiti i valori seguenti:

Impostazione minima di TLS Versione TLS client supportata
TLSEnforcementDisabled (impostazione predefinita) Nessun TLS necessario
TLS1_0 TLS 1.0, TLS 1.1, TLS 1.2 e versioni successive
TLS1_1 TLS 1.1, TLS 1.2 e versioni successive
TLS1_2 TLS versione 1.2 e successive

Ad esempio, impostare questa versione minima dell'impostazione TLS su TLS 1.0 indica che il server consentirà le connessioni dai client che usano TLS 1.0, 1.1 e 1.2+. In alternativa, impostando questa opzione su 1.2, è possibile consentire solo connessioni da client che usano TLS 1.2+, mentre tutte le connessioni con TLS 1.0 e TLS 1.1 verranno rifiutate.

Nota

Per impostazione predefinita, Database di Azure per PostgreSQL non applica una versione minima di TLS (l'impostazione TLSEnforcementDisabled).

Una volta applicata una versione minima di TLS, non è possibile disabilitarla successivamente.

Per informazioni su come impostare l'impostazione TLS per il server singolo di Database di Azure per PostgreSQL, vedere Come configurare l'impostazione TLS.

Supporto della crittografia da parte del server singolo di Database di Azure per PostgreSQL

Nell'ambito della comunicazione SSL/TLS, i pacchetti di crittografia vengono convalidati e solo le suite di crittografia supportate possono comunicare con il server di database. La convalida della suite di crittografia è controllata al livello del gateway e non in modo esplicito nel nodo stesso. Se le suite di crittografia non corrispondono a una delle suite elencate di seguito, le connessioni client in ingresso verranno rifiutate.

Suite di crittografia supportata

  • TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256

Passaggi successivi

Esaminare varie opzioni di connettività dell'applicazione come descritto nell'articolo Raccolte connessioni per Database di Azure per PostgreSQL.