Konfigurera TLS-anslutning i Azure Database for PostgreSQL – enskild server

GÄLLER FÖR: Azure Database for PostgreSQL – enskild server

Viktigt!

Azure Database for PostgreSQL – enskild server är på väg att dras tillbaka. Vi rekommenderar starkt att du uppgraderar till Azure Database for PostgreSQL – flexibel server. Mer information om hur du migrerar till Azure Database for PostgreSQL – flexibel server finns i Vad händer med Azure Database for PostgreSQL – enskild server?.

Azure Database for PostgreSQL föredrar att ansluta dina klientprogram till PostgreSQL-tjänsten med hjälp av Transport Layer Security (TLS), som tidigare kallades Secure Sockets Layer (SSL). Genom att framtvinga TLS-anslutningar mellan databasservern och klientprogrammen kan du skydda mot "man-in-the-middle"-attacker genom att kryptera dataströmmen mellan servern och programmet.

PostgreSQL-databastjänsten är som standard konfigurerad för att kräva TLS-anslutning. Du kan välja att inaktivera TLS-krav om klientprogrammet inte stöder TLS-anslutning.

Viktigt!

SSL-mellanliggande certifikat kommer att uppdateras från och med den 31 januari 2024 (2024-01-31). Ett mellanliggande certifikat är ett underordnat certifikat som utfärdats av en betrodd rot specifikt för att utfärda slutentitetscertifikat. Resultatet är en certifikatkedja som börjar vid den betrodda rotcertifikatutfärdaren via den mellanliggande certifikatutfärdaren (eller certifikatutfärdarna) och slutar med det SSL-certifikat som utfärdats till dig. Certifikatfästning är en säkerhetsteknik där endast auktoriserade eller fästa certifikat accepteras när en säker session upprättas. Alla försök att upprätta en säker session med ett annat certifikat avvisas. Till skillnad från betrodd rotcertifikatutfärdare, som vi redan har uppdaterat helt under det aktuella året, och där certifikatet kan fästas med hjälp av verifieringscertifikatutfärdare eller verifiera fullständig anslutningssträng-klientdirektiv, finns det inget standard, väletablerat sätt att fästa mellanliggande CA. Det finns dock en teoretisk förmåga att skapa en anpassad anslutningsstack som fäster mellanliggande certifikat till klienten på en mängd olika programmeringsspråk. Som beskrivs ovan kan du påverkas av den här ändringen i det osannolika scenariot att du fäster mellanliggande certifikat med anpassad kod. Om du vill ta reda på om du fäster certifikatutfärdare kan du läsa certifikatanslutning och Azure-tjänster

Framtvinga TLS-anslutningar

För alla Azure Database for PostgreSQL-servrar som etablerats via Azure-portalen och CLI är tillämpningen av TLS-anslutningar aktiverad som standard.

På samma sätt innehåller anslutningssträng som är fördefinierade i inställningarna "Anslut ion Strings" under servern i Azure-portalen de parametrar som krävs för att vanliga språk ska kunna ansluta till databasservern med hjälp av TLS. TLS-parametern varierar beroende på anslutningsappen, till exempel "ssl=true" eller "sslmode=require" eller "sslmode=required" och andra varianter.

Konfigurera tillämpning av TLS

Du kan också inaktivera tvingande TLS-anslutning. Microsoft Azure rekommenderar att du alltid aktiverar inställningen Framtvinga SSL-anslutning för förbättrad säkerhet.

Med hjälp av Azure-portalen

Besök din Azure Database for PostgreSQL-server och välj Anslut ionssäkerhet. Använd växlingsknappen för att aktivera eller inaktivera inställningen Framtvinga SSL-anslutning . Välj sedan Spara.

Anslut ion Security – Inaktivera Framtvinga TLS/SSL

Du kan bekräfta inställningen genom att visa sidan Översikt för att se statusindikatorn för SSL-framtvingande .

Använda Azure CLI

Du kan aktivera eller inaktivera parametern ssl-enforcement med hjälp av Enabled eller Disabled värden i Azure CLI.

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

Fastställa status för SSL-anslutningar

Du kan också samla in all information om din Azure Database for PostgreSQL – SSL-användning per process, klient och program med hjälp av följande fråga:

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;

Se till att ditt program eller ramverk stöder TLS-anslutningar

Vissa programramverk som använder PostgreSQL för sina databastjänster aktiverar inte TLS som standard under installationen. Om PostgreSQL-servern framtvingar TLS-anslutningar men programmet inte har konfigurerats för TLS kan det hända att programmet inte kan ansluta till databasservern. Läs dokumentationen för ditt program för att lära dig hur du aktiverar TLS-anslutningar.

Program som kräver certifikatverifiering för TLS-anslutning

I vissa fall kräver program att en lokal certifikatfil som genereras från en certifikatfil för betrodd certifikatutfärdare (CA) ansluter på ett säkert sätt. Certifikatet för att ansluta till en Azure Database for PostgreSQL-server finns på https://www.digicert.com/CACerts/BaltimoreCyberTrustRoot.crt.pem. Ladda ned certifikatfilen och spara den på önskad plats.

Se följande länkar för certifikat för servrar i nationella moln: Azure Government, Microsoft Azure som drivs av 21Vianet och Azure Tyskland.

Anslut med psql

I följande exempel visas hur du ansluter till PostgreSQL-servern med hjälp av kommandoradsverktyget psql. Använd inställningen sslmode=verify-full anslutningssträng för att framtvinga TLS/SSL-certifikatverifiering. Skicka sökvägen till den lokala certifikatfilen till parametern sslrootcert .

Följande kommando är ett exempel på psql-anslutningssträng:

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

Dricks

Bekräfta att det värde som skickas till sslrootcert matchar filsökvägen för det certifikat som du sparade.

TLS-tillämpning i Azure Database for PostgreSQL – enskild server

Azure Database for PostgreSQL – Enskild server stöder kryptering för klienter som ansluter till databasservern med hjälp av TLS (Transport Layer Security). TLS är ett branschstandardprotokoll som säkerställer säkra nätverksanslutningar mellan databasservern och klientprogrammen, så att du kan följa efterlevnadskraven.

TLS-inställningar

Azure Database for PostgreSQL – enskild server ger möjlighet att framtvinga TLS-versionen för klientanslutningarna. Använd alternativinställningen Lägsta TLS-version för att framtvinga TLS-versionen. Följande värden tillåts för den här alternativinställningen:

Minsta TLS-inställning Klient-TLS-version stöds
TLSEnforcementDisabled (standard) Ingen TLS krävs
TLS1_0 TLS 1.0, TLS 1.1, TLS 1.2 och senare
TLS1_1 TLS 1.1, TLS 1.2 och senare
TLS1_2 TLS version 1.2 och senare

Om du till exempel anger den här lägsta TLS-inställningsversionen till TLS 1.0 innebär det att servern tillåter anslutningar från klienter med TLS 1.0, 1.1 och 1.2+. Om du anger 1.2 innebär det också att du endast tillåter anslutningar från klienter som använder TLS 1.2+ och att alla anslutningar med TLS 1.0 och TLS 1.1 avvisas.

Kommentar

Som standard tillämpar Azure Database for PostgreSQL inte en lägsta TLS-version (inställningen TLSEnforcementDisabled).

När du har tillämpat en lägsta TLS-version kan du inte senare inaktivera lägsta versionskontroll.

Information om hur du ställer in TLS-inställningen för din Azure Database for PostgreSQL – enskild server finns i Konfigurera TLS-inställning.

Chifferstöd från Azure Database for PostgreSQL – enskild server

Som en del av SSL/TLS-kommunikationen verifieras chiffersviterna och stöder endast chifferdräkter som kan kommunicera med databasservern. Valideringen av chiffersviten styrs i gatewaylagret och inte explicit på själva noden. Om chiffersviterna inte matchar någon av sviterna nedan avvisas inkommande klientanslutningar.

Chiffersvit som stöds

  • 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

Nästa steg

Granska olika anslutningsalternativ för program i Anslut ionsbibliotek för Azure Database for PostgreSQL.

  • Lär dig hur du konfigurerar TLS