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 fullt ut under det aktuella året, och där certifikatet kan fästas med hjälp av verifieringscertifikatutfärdare eller verifiera fullständig niska veze-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 niska veze som är fördefinierade i inställningarna "Anslutningssträngar" 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 Anslutningssäkerhet. Använd växlingsknappen för att aktivera eller inaktivera inställningen Framtvinga SSL-anslutning . Välj sedan Spara.
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
niska veze 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-niska veze:
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 alternativ för programanslutning i Anslutningsbibliotek för Azure Database for PostgreSQL.
- Lär dig hur du konfigurerar TLS