Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Azure Database for PostgreSQL kényszeríti az ügyfélalkalmazások csatlakoztatását egy rugalmas Azure Database for PostgreSQL-kiszolgálópéldányhoz a Transport Layer Security (TLS) használatával. A TLS egy iparági szabvány protokoll, amely titkosított hálózati kapcsolatokat biztosít az adatbázis-kiszolgáló és az ügyfélalkalmazások között. A TLS a Secure Sockets Layer (SSL) frissített protokollja. Az SSL és a TLS kifejezések továbbra is felcserélhetők.
Fontos
2025. november 11-től a következő listában szereplő Azure-régiókat új köztes hitelesítésszolgáltatói tanúsítványokat használó TLS-/SSL-tanúsítványváltásra tervezik.
- USA nyugati középső régiója
- Kelet-Ázsia
- Egyesült Királyság déli régiója
2026. január 19-től ez a rotáció az összes fennmaradó Azure-régióra kiterjed, beleértve az Azure Governmentt és az összes többi régiót is.
A hibaelhárítással kapcsolatos információkért tekintse meg a tanúsítvány rögzítésével kapcsolatos problémákat.
Tanúsítványláncok
A tanúsítványlánc a TLS/SSL-tanúsítványt és CA-tanúsítványokat tartalmazó tanúsítványok rendezett listája. Lehetővé teszik a fogadó számára, hogy ellenőrizze, hogy a feladó és az összes hitelesítésszolgáltató megbízható-e. A lánc vagy elérési út a TLS/SSL-tanúsítvánnyal kezdődik. A lánc minden tanúsítványát a lánc következő tanúsítványa által azonosított entitás írja alá.
A lánc egy legfelső szintű hitelesítésszolgáltatói tanúsítvánnyal végződik. Ezt a tanúsítványt mindig maga a hitelesítésszolgáltató írja alá. A lánc összes tanúsítványának aláírását a legfelső szintű hitelesítésszolgáltatói tanúsítványig ellenőrizni kell.
A TLS/SSL-tanúsítvány és a láncban lévő legfelső szintű hitelesítésszolgáltatói tanúsítvány között található tanúsítványokat köztes tanúsítványnak nevezzük.
TLS-verziók
Világszerte számos kormányzati entitás tart fenn irányelveket a TLS-hez a hálózatbiztonsággal kapcsolatban. Az Egyesült Államokban ezek a szervezetek közé tartozik az Egészségügyi és Humán Szolgáltatások Minisztériuma, valamint a Nemzeti Szabványügyi és Technológiai Intézet. A TLS által biztosított biztonsági szintet leginkább a TLS protokoll verziója és a támogatott titkosítási csomagok befolyásolják.
A titkosítási csomag olyan algoritmusok készlete, amelyek tartalmazzák a titkosítást, a kulcscserélő algoritmust és a kivonatoló algoritmust. Ezek együttes használatával biztonságos TLS-kapcsolatot hozhat létre. A legtöbb TLS-ügyfél és -kiszolgáló több alternatívát is támogat. Egyeztetniük kell, amikor biztonságos kapcsolatot létesítenek egy közös TLS-verzió és titkosítási csomag kiválasztásához.
Az Azure Database for PostgreSQL támogatja a TLS 1.2-es és újabb verzióját. Az RFC 8996-ban az Internet Engineering Task Force (IETF) kifejezetten kimondja, hogy a TLS 1.0 és a TLS 1.1 nem használható. 2019 végéig mindkét protokoll elavult.
A TLS protokoll korábbi verzióit ( például TLS 1.0 és TLS 1.1) használó bejövő kapcsolatok alapértelmezés szerint le vannak tagadva.
Az IETF 2018 augusztusában adta ki a TLS 1.3 specifikációt az RFC 8446-ban, és a TLS 1.3 jelenleg a leggyakrabban használt és ajánlott TLS-verzió. A TLS 1.3 gyorsabb és biztonságosabb, mint a TLS 1.2.
Megjegyzés:
Az SSL- és TLS-tanúsítványok tanúsítják, hogy a kapcsolat a legkorszerűbb titkosítási protokollokkal van biztosítva. A vezetéken lévő kapcsolat titkosításával megakadályozza az adatokhoz való jogosulatlan hozzáférést átvitel közben. Határozottan javasoljuk, hogy a TLS legújabb verzióival titkosítsa a rugalmas Azure Database for PostgreSQL-kiszolgálópéldányokkal létesített kapcsolatokat.
Bár nem javasoljuk, ha szükséges, letilthatja a TLS\SSL-t a rugalmas Azure Database for PostgreSQL-kiszolgálópéldányhoz való kapcsolatokhoz. A kiszolgálóparamétert frissítheti a require_secure_transport következőre OFF: . A TLS-verziót a kiszolgáló paramétereinek beállításával ssl_min_protocol_versionssl_max_protocol_version is beállíthatja.
A tanúsítványhitelesítés ssl-ügyféltanúsítványok használatával történik a hitelesítéshez. Ebben a forgatókönyvben a PostgreSQL-kiszolgáló összehasonlítja a kért adatbázis-felhasználóval bemutatott ügyféltanúsítvány köznapi (CN) attribútumát.
Az Azure Database for PostgreSQL jelenleg nem támogatja a következőt:
- SSL-tanúsítványalapú hitelesítés.
- Egyéni SSL\TLS-tanúsítványok.
Megjegyzés:
A Microsoft alapvető ca-módosításokat hajtott végre a különböző Azure-szolgáltatásokhoz, például az Azure Database for PostgreSQL-hez. További információkért tekintse meg az Azure TLS-tanúsítvány módosításait és az SSL konfigurálása az ügyfélen című szakaszt.
Az aktuális TLS\SSL-kapcsolat állapotának meghatározásához töltse be a sslinfo bővítményt , majd hívja meg a függvényt annak ssl_is_used() megállapításához, hogy használ-e SSL-t. A függvény akkor ad t vissza, ha a kapcsolat SSL-t használ. Ellenkező esetben a visszaadott férték. A rugalmas Azure Database for PostgreSQL-kiszolgálópéldány SSL-használatára vonatkozó összes információt folyamat, ügyfél és alkalmazás szerint is összegyűjtheti az alábbi lekérdezéssel:
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;
A teszteléshez közvetlenül is használhatja a openssl parancsot:
openssl s_client -starttls postgres -showcerts -connect <your-postgresql-server-name>:5432
Ez a parancs alacsony szintű protokolladatokat nyomtat ki, például a TLS-verziót és a titkosítást. Ezt a lehetőséget -starttls postgreskell használnia. Ellenkező esetben ez a parancs azt jelenti, hogy nincs SSL használatban. A parancs használatához legalább az OpenSSL 1.1.1 szükséges.
Az ügyfél és egy rugalmas Azure Database for PostgreSQL-kiszolgálópéldány közötti kapcsolatvédelem legújabb, legbiztonságosabb TLS-verziójának kényszerítéséhez állítsa be a következőt ssl_min_protocol_version1.3: . Ehhez a beállításhoz a rugalmas Azure Database for PostgreSQL-kiszolgálópéldányhoz csatlakozó ügyfeleknek csak a protokoll ezen verzióját kell használniuk a biztonságos kommunikációhoz. Előfordulhat, hogy a régebbi ügyfelek nem tudnak kommunikálni a kiszolgálóval, mert nem támogatják ezt a verziót.
SSL konfigurálása az ügyfélen
Alapértelmezés szerint a PostgreSQL nem végzi el a kiszolgálótanúsítvány ellenőrzését. Emiatt a kiszolgálóidentitást (például egy DNS-rekord módosításával vagy a kiszolgáló IP-címének átvételével) az ügyfél tudta nélkül is meg lehet hamisíteni. Minden SSL-beállítás a terhelést titkosítás és kulcscsere formájában hordozzák, így a teljesítmény és a biztonság közötti kompromisszum jön létre.
A hamisítás megakadályozása érdekében SSL-tanúsítvány-ellenőrzést kell használni az ügyfélen.
Az ügyfél SSL-hez való konfigurálásához számos kapcsolati paraméter létezik. Néhány fontos:
ssl: Csatlakozás SSL használatával. Ennek a tulajdonságnak nincs szüksége hozzá társított értékre. A puszta jelenléte SSL-kapcsolatot határoz meg. A jövőbeli verziókkal való kompatibilitás érdekében előnyben részesítjük az értékettrue. Ebben a módban, amikor SSL-kapcsolatot hoz létre, az ügyfélillesztő ellenőrzi a kiszolgáló identitását, hogy megelőzze a középen belüli támadásokat. Ellenőrzi, hogy a kiszolgálótanúsítványt egy megbízható szolgáltató írta-e alá, és hogy az állomás, amelyhez csatlakozik, megegyezik-e a tanúsítvány állomásnevével.sslmode: Ha titkosítást igényel, és azt szeretné, hogy a kapcsolat sikertelen legyen, ha nem lehet titkosítani, állítsa be a .sslmode=requireEz a beállítás biztosítja, hogy a kiszolgáló ssl-kapcsolatokat fogadjon el ehhez a gazdagéphez/IP-címhez, és hogy a kiszolgáló felismerje az ügyféltanúsítványt. Ha a kiszolgáló nem fogadja el az SSL-kapcsolatokat, vagy nem ismeri fel az ügyféltanúsítványt, a kapcsolat meghiúsul. Az alábbi táblázat a beállítás értékeit sorolja fel:SSL mód Explanation disableA rendszer nem használ titkosítást. allowA titkosítást akkor használja a rendszer, ha a kiszolgáló beállításai megkövetelik vagy kényszerítik. preferA titkosítást akkor használja a rendszer, ha a kiszolgáló beállításai engedélyezik. requireA rendszer titkosítást használ. Biztosítja, hogy a kiszolgáló ssl-kapcsolatokat fogadjon el ehhez a gazdagép IP-címhez, és hogy a kiszolgáló felismerje az ügyféltanúsítványt. verify-caA rendszer titkosítást használ. Ellenőrizze a kiszolgálótanúsítvány aláírását az ügyfélen tárolt tanúsítványon. verify-fullA rendszer titkosítást használ. Ellenőrizze a kiszolgálótanúsítvány aláírását és a gazdagép nevét az ügyfélen tárolt tanúsítványon.
Az alapértelmezett sslmode mód eltér a libpq-alapú ügyfelek (például a psql) és a JDBC között. A libpq-alapú ügyfelek alapértelmezés szerint a prefer. A JDBC-ügyfelek alapértelmezés szerint a .verify-full
-
sslcert,sslkeyéssslrootcert: Ezek a paraméterek felülbírálhatják az ügyféltanúsítvány alapértelmezett helyét, a PKCS-8 ügyfélkulcsot és a főtanúsítványt. Alapértelmezés szerint/defaultdir/postgresql.crt,/defaultdir/postgresql.pk8és/defaultdir/root.crt, aholdefaultdira Linux rendszerekben${user.home}/.postgresql/-ként, és a Windows rendszerekben%appdata%/postgresql/-ként van beállítva.
A hitelesítésszolgáltatók a tanúsítványok kiállításáért felelős intézmények. A megbízható hitelesítésszolgáltató olyan entitás, amely jogosult ellenőrizni, hogy valaki az, akinek mondja magát. Ahhoz, hogy ez a modell működjön, minden résztvevőnek meg kell egyeznie a megbízható hitelesítésszolgáltatók készletében. Az összes operációs rendszer és a legtöbb webböngésző megbízható hitelesítésszolgáltatókkal rendelkezik.
A használati verify-ca és verify-fullsslmode konfigurációs beállításokat tanúsítvány-rögzítésnek is nevezhetjük. Ebben az esetben a PostgreSQL-kiszolgálón lévő legfelső szintű hitelesítésszolgáltatói tanúsítványoknak meg kell egyezniük a tanúsítvány aláírásával és még a gazdagép nevével is az ügyfél tanúsítványával.
Előfordulhat, hogy időnként frissítenie kell az ügyfél által tárolt tanúsítványokat, amikor a hitelesítésszolgáltatók módosítják vagy lejárnak a PostgreSQL-kiszolgálótanúsítványokon. Annak megállapításához, hogy a hitelesítésszolgáltatókat rögzíti-e, tekintse meg a tanúsítvány-rögzítést és az Azure-szolgáltatásokat.
Az ügyfél SSL\TLS-konfigurációjáról további információt a PostgreSQL dokumentációjában talál.
A tanúsítványt használó és verify-caverify-full konfigurációs beállításokat (azaz tanúsítványrögzítést) használó sslmode ügyfeleknek három fő hitelesítésszolgáltatói tanúsítványt kell üzembe helyezniük az ügyféltanúsítvány-tárolókban:
- A DigiCert Global Root G2 és a Microsoft RSA Root CA 2017 legfelső szintű hitelesítésszolgáltatói tanúsítványai, mivel a szolgáltatások a Digicertből a Microsoft CA-ba migrálódnak.
- A Digicert globális legfelső szintű hitelesítésszolgáltatója az örökölt kompatibilitás érdekében.
Fő hitelesítésszolgáltatói tanúsítványok letöltése és az alkalmazás-ügyfelek frissítése tanúsítvány-rögzítési forgatókönyvekben
Az ügyfélalkalmazások tanúsítvány-rögzítési forgatókönyvekben való frissítéséhez letöltheti a tanúsítványokat:
- Microsoft RSA Root CA 2017
- DigiCert Global Root G2
- Digicert globális legfelső szintű hitelesítésszolgáltató
Ha tanúsítványokat szeretne importálni az ügyféltanúsítvány-tárolókba, előfordulhat, hogy .pem formátumúra kell konvertálnia a tanúsítványfájlokat, miután letöltötte a tanúsítványfájlokat az előző URI-kból. Az OpenSSL segédprogrammal elvégezheti ezeket a fájlkonverziókat:
openssl x509 -inform DER -in certificate.crt -out certificate.pem -outform PEM
Az ügyfélalkalmazások tanúsítványtárolóinak új fő hitelesítésszolgáltatói tanúsítványokkal való frissítésével kapcsolatos információk az alkalmazásügyfelek TLS-tanúsítványainak frissítésében találhatók.
Fontos
Egyes Postgres-ügyfélkódtárak a sslmode=verify-full beállítás használata során csatlakozási hibákat tapasztalhatnak a köztes tanúsítványokkal keresztaláírt legfelső szintű hitelesítésszolgáltatói tanúsítványokkal. Az eredmény alternatív megbízhatósági útvonalak. Ebben az esetben javasoljuk, hogy explicit módon adja meg a paramétert sslrootcert . Vagy állítsa be a PGSSLROOTCERT környezeti változót egy helyi elérési útra, ahol a Microsoft RSA Root CA 2017 fő ca-tanúsítvány található az alapértelmezett értékről %APPDATA%\postgresql\root.crt.
- Tapasztalható a kapcsolat megszakadása az ügyfélalkalmazás és a rugalmas Azure Database for PostgreSQL kiszolgálópéldány között - támogatási jegy lett megnyitva ennek kezelésére.
- Ha a köztes tanúsítványt elforgatták, előfordulhat, hogy frissítenie kell az ügyféltanúsítvány-tárolót az új köztes tanúsítvánnyal.
- hogyan ellenőrizheti, hogy rögzíti-e a köztes tanúsítványt – lásd a tanúsítvány rögzítését és az Azure-szolgáltatásokat.
Replikák olvasása tanúsítvány-rögzítési forgatókönyvekkel
A legfelső szintű hitelesítésszolgáltató Microsoft RSA Root CA 2017-be való migrálásával megvalósítható, hogy az újonnan létrehozott replikák a korábban létrehozott elsődleges kiszolgálónál újabb legfelső szintű hitelesítésszolgáltatói tanúsítványon legyenek. Azokat az ügyfeleket, amelyek a konfigurációs beállításokat (azaz a tanúsítvány rögzítését) használják verify-caverify-fullsslmode , elengedhetetlen, hogy a megszakadt kapcsolat három fő hitelesítésszolgáltatói tanúsítványt fogadjon el:
- Microsoft RSA Root CA 2017
- DigiCert Global Root G2
- Digicert globális legfelső szintű hitelesítésszolgáltató
Az Azure Database for PostgreSQL jelenleg nem támogatja a tanúsítványalapú hitelesítést.
Ügyféltanúsítványok tesztelése a psql-hez való csatlakozással a tanúsítvány-rögzítési forgatókönyvekben
Az ügyfél parancssorával psql tesztelheti a kiszolgálóhoz való kapcsolódást a tanúsítvány-rögzítési forgatókönyvekben:
$ psql "host=hostname.postgres.database.azure.com port=5432 user=myuser dbname=mydatabase sslmode=verify-full sslcert=client.crt sslkey=client.key sslrootcert=ca.crt"
Az SSL- és tanúsítványparaméterekről további információt a psql dokumentációjában talál.
TLS/SSL-kapcsolat tesztelése
Mielőtt megpróbálná elérni az SSL-kompatibilis kiszolgálót egy ügyfélalkalmazásból, győződjön meg arról, hogy a psql-en keresztül érheti el. Ha SSL-kapcsolatot létesített, az alábbi példához hasonló kimenetnek kell megjelennie:
psql (14.5)SSL-kapcsolat (protokoll: TLSv1.2, titkosítás: ECDHE-RSA-AES256-GCM-SHA384, bitek: 256, tömörítés: kikapcsolva)A súgóhoz írja be a "súgót".
Betöltheti a sslinfo bővítményt is, majd meghívhatja a ssl_is_used() függvényt annak megállapításához, hogy használ-e SSL-t. A függvény akkor ad t vissza, ha a kapcsolat SSL-t használ. Ellenkező esetben a visszaadott férték.
Titkosítási csomagok
A titkosítási csomag titkosítási algoritmusok készlete. A TLS-/SSL-protokollok a titkosítási csomagból származó algoritmusokat használnak kulcsok létrehozásához és az információk titkosításához.
A titkosítási csomag látszólag véletlenszerű információk hosszú sztringjeként jelenik meg, de a sztring minden szegmense alapvető információkat tartalmaz. Ez az adatsztring általában több fő összetevőt tartalmaz:
- Protokoll (azaz TLS 1.2 vagy TLS 1.3)
- Kulcscsere- vagy szerződés-algoritmus
- Digitális aláírási (hitelesítési) algoritmus
- Tömeges titkosítási algoritmus
- Üzenethitelesítési kód algoritmusa (MAC)
A TLS/SSL különböző verziói különböző titkosítási csomagokat támogatnak. A TLS 1.2 titkosítási csomagjai nem tárgyalhatók meg TLS 1.3-kapcsolatokkal, és fordítva.
Az Azure Database for PostgreSQL jelenleg számos titkosítási csomagot támogat a HIGH:!aNULL kategóriába tartozó TLS 1.2 protokollverzióval.
Troubleshoot
A hibaelhárítási szakaszban található útmutatással gyorsan azonosíthatja és megoldhatja a TLS-/SSL-problémákat. Először reprodukálja a problémát, és gyűjtse össze a diagnosztikai adatokat (ügyféloldali hibaüzenetek, psql-kimenet, OpenSSL s_client kimenet és kiszolgálónaplók), majd ellenőrizze a kiszolgáló paramétereit (require_secure_transport, ssl_min_protocol_version, ssl_max_protocol_version), a tanúsítványláncot és az ügyfél sslmode/sslrootcert beállításait a protokollverziók, a titkosítási csomagok vagy a hiányzó/elforgatott tanúsítványok eltéréseinek azonosításához.
TLS-/SSL-csatlakozási hibák
- A TLS/SSL protokoll verziókompatibilitásának hibaelhárításának első lépése az, hogy azonosítja azokat a hibaüzeneteket, amelyeket Ön vagy a felhasználók látnak, amikor megpróbálnak hozzáférni a rugalmas Azure Database for PostgreSQL-kiszolgálópéldányhoz az ügyfél TLS-titkosítása alatt. Az alkalmazástól és a platformtól függően a hibaüzenetek eltérőek lehetnek. Sok esetben a mögöttes problémára mutatnak.
- A TLS/SSL protokoll verziókompatibilitásának biztosításához ellenőrizze az adatbázis-kiszolgáló és az alkalmazásügyfél TLS/SSL-konfigurációját, és győződjön meg arról, hogy támogatják a kompatibilis verziókat és titkosítási csomagokat.
- Elemezze az adatbázis-kiszolgáló és az ügyfél TLS/SSL-verziói és titkosítási csomagjai közötti eltéréseket vagy hiányosságokat. Próbálja meg feloldani őket bizonyos beállítások engedélyezésével vagy letiltásával, a szoftverek frissítésével vagy leminősítésével, illetve a tanúsítványok vagy kulcsok módosításával. Előfordulhat például, hogy a biztonsági és kompatibilitási követelményektől függően engedélyeznie vagy le kell tiltania bizonyos TLS/SSL-verziókat a kiszolgálón vagy az ügyfélen. Előfordulhat például, hogy le kell tiltania a nem biztonságosnak és elavultnak ítélt TLS 1.0-s és TLS 1.1-et, és engedélyeznie kell a TLS 1.2-t és a TLS 1.3-at, amelyek biztonságosabbak és modernebbek.
- A Microsoft RSA Root CA 2017-ben kiadott legújabb tanúsítvány köztes a Digicert Global Root G2 CA által aláírt láncban. Egyes Postgres-ügyfélkódtárak használata
sslmode=verify-fullvagysslmode=verify-cabeállításai között kapcsolati hibák léphetnek fel a köztes tanúsítványokkal keresztaláírt legfelső szintű hitelesítésszolgáltatói tanúsítványokkal. Az eredmény alternatív megbízhatósági útvonalak.
A problémák megoldásához adja hozzá mindhárom szükséges tanúsítványt az ügyféltanúsítvány-tárolóhoz, vagy explicit módon adja meg a paramétert sslrootcert . Vagy állítsa a PGSSLROOTCERT környezeti változót arra a helyi elérési útra, ahol a Microsoft RSA Root CA 2017 fő CA-tanúsítvány található az alapértelmezett értékről %APPDATA%\postgresql\root.crt.
Tanúsítvány-rögzítési problémák
Megjegyzés:
Ha nem használja a sslmode=verify-full vagy sslmode=verify-ca beállításokat az ügyfélalkalmazás kapcsolati karakterláncában, akkor a tanúsítványváltások nem érintik Önt.
Ezért nem kell követnie az ebben a szakaszban leírt lépéseket.
- Ellenőrizze, hogy tanúsítvány-rögzítést használ-e az alkalmazásban.
- A megbízható legfelső szintű tárolóban található tanúsítványok listájának létrehozása
- Tanúsítvány-rögzítést használ, ha egyéni köztes vagy egyéni PostgreSQL-kiszolgálói tanúsítványokkal rendelkezik.
- A tanúsítvány rögzítésének eltávolításához távolítsa el az összes tanúsítványt a megbízható legfelső szintű tárolóból, és adja hozzá az új tanúsítványokat.
- A frissített tanúsítványokat a Microsoft hivatalos adattárából töltheti le: az Azure Hitelesítésszolgáltató adatai.
- Jelenlegi lánc:
- DigiCert globális gyökér G2
- Microsoft Azure RSA TLS tanúsítványkiadó CA 03 / 04 / 07 / 08
- Új lánc:
- DigiCert globális gyökér G2
- Microsoft TLS RSA Root G2
- Microsoft TLS G2 RSA CA OCSP 02 / 04 / 06 / 08 / 10 / 12 / 14 / 16
- Jelenlegi lánc:
- A frissített tanúsítványokat a Microsoft hivatalos adattárából töltheti le: az Azure Hitelesítésszolgáltató adatai.
Ha a lépések elvégzése után is problémákat tapasztal, forduljon a Microsoft ügyfélszolgálatához. Szerepeltessük az ICA Rotáció 2026 címben.