Sdílet prostřednictvím


Principy změn v kořenové certifikační autoritě pro jednoúčelový server Azure Database for PostgreSQL

PLATÍ PRO: Azure Database for PostgreSQL – Jednoúčelový server

Důležité

Jednoúčelový server Azure Database for PostgreSQL je na cestě vyřazení. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for PostgreSQL. Další informace o migraci na flexibilní server Azure Database for PostgreSQL najdete v tématu Co se děje s jednoúčelovým serverem Azure Database for PostgreSQL?

Jednoúčelový server Azure Database for PostgreSQL plánuje změnu kořenového certifikátu od prosince 2022 (12.2022) jako součást standardních osvědčených postupů údržby a zabezpečení. Tento článek obsahuje další podrobnosti o změnách, ovlivněných prostředcích a krocích potřebných k zajištění toho, aby vaše aplikace udržovala připojení k databázovému serveru.

Proč se vyžaduje aktualizace kořenového certifikátu?

V minulosti mohli uživatelé Azure Database for PostgreSQL použít pouze předdefinovaný certifikát pro připojení k serveru PostgreSQL, který se zde nachází. Fórum prohlížeče certifikační autority (CA) však nedávno publikovalo zprávy o více certifikátech vydaných dodavateli certifikační autority, které nedodržují předpisy.

Podle požadavků na dodržování předpisů v oboru začali dodavatelé certifikační autority odvolat certifikáty certifikační autority pro nekompatibilní certifikační autority, které vyžadují, aby servery používaly certifikáty vydané certifikačními autoritami a podepsané certifikáty certifikační autority od certifikačních autorit vyhovujících certifikačním autoritám. Vzhledem k tomu, že služba Azure Database for PostgreSQL používala jeden z těchto nekompatibilních certifikátů, museli jsme certifikát otočit na vyhovující verzi, abychom minimalizovali potenciální hrozbu pro vaše servery Postgres.

Nový certifikát se zavádí a platí od prosince 2022 (12/2022).

Jaká změna byla naplánována od prosince 2022 (12/2022)?

Od prosince 2022 se kořenový certifikát BaltimoreCyberTrustRoot nahradí kompatibilní verzí , která se označuje jako kořenový certifikát DigiCertGlobalRootG2 . Pokud vaše aplikace využívají funkci verify-ca nebo verify-full jako hodnotu parametru sslmode v připojení databázového klienta, musí postupovat podle pokynů pro přidání nových certifikátů do úložiště certifikátů, aby se zachovalo připojení.

Musím v klientovi udělat nějaké změny, aby se zachovalo připojení?

Na straně klienta nejsou vyžadovány žádné změny kódu nebo aplikace. Pokud budete postupovat podle níže uvedených doporučení k aktualizaci certifikátů, budete se moct i nadále připojovat, dokud se certifikát BaltimoreCyberTrustRoot neodebere z kombinovaného certifikátu certifikační autority . Doporučujeme neodebrat BaltimoreCyberTrustRoot z kombinovaného certifikátu certifikační autority, dokud si nebudete moct dál všimnout, aby se zachovalo připojení.

Potřebuji provést všechny změny klientských certifikátů

Ve výchozím nastavení PostgreSQL neprovádí žádné ověření certifikátu serveru. To znamená, že je stále teoreticky možné falšování identity serveru (například úpravou záznamu DNS nebo převzetím IP adresy serveru) bez znalosti klienta. Aby se zabránilo falšování identity, musí se použít ověření certifikátu SSL na klientovi. Takové ověření je možné nastavit prostřednictvím klienta aplikace připojovací řetězec hodnotu režimu ssl – verify-ca nebo verify-full. Pokud zvolíte tyto hodnoty režimu ssl, měli byste postupovat podle pokynů v další části.

Doporučení k aktualizaci klientského certifikátu

  • Stáhněte si BaltimoreCyberTrustRoot & DigiCertGlobalRootG2 kořenovou certifikační autoritu z následujících odkazů:

  • Pokud chcete zabránit budoucímu přerušení, doporučujeme do důvěryhodného úložiště přidat také následující kořeny:

  • Vygenerujte kombinované úložiště certifikátů certifikační autority s certifikáty BaltimoreCyberTrustRoot i DigiCertGlobalRootG2.

    • Pro uživatele Javy (PostgreSQL JDBC) pomocí DefaultJavaSSLFactory spusťte:

      keytool -importcert -alias PostgreSQLServerCACert  -file D:\BaltimoreCyberTrustRoot.crt.pem  -keystore truststore -storepass password -noprompt
      
      keytool -importcert -alias PostgreSQLServerCACert2  -file D:\DigiCertGlobalRootG2.crt.pem -keystore truststore -storepass password  -noprompt
      

      Potom nahraďte původní soubor úložiště klíčů novým vygenerovaným souborem:

      • System.setProperty("javax.net.ssl.trustStore";"path_to_truststore_file");
      • System.setProperty("javax.net.ssl.trustStorePassword","password");
    • Pro uživatele rozhraní .NET (Npgsql) ve Windows se ujistěte, že v úložišti certifikátů Windows existují globální kořenové autority Baltimore CyberTrust a DigiCert Global G2 . Pokud nějaké certifikáty neexistují, naimportujte chybějící certifikát.

      Certifikát .net pro Azure Database for PostgreSQL

    • Pro uživatele platformy .NET (Npgsql) v Linuxu používajících SSL_CERT_DIR se ujistěte, že v adresáři uvedeném SSL_CERT_DIR existují oba nástroje BaltimoreCyberTrustRoot a DigiCertGlobalRootG2 . Pokud nějaké certifikáty neexistují, vytvořte chybějící soubor certifikátu.

    • Pro ostatní uživatele klienta PostgreSQL můžete sloučit dva soubory certifikátů certifikační autority, jako je tento formát níže.


      ----- CERTIFIKÁTBEGIN-----
      (kořenový CERTIFIKÁT CA1: BaltimoreCyberTrustRoot.crt.pem)
      -----END CERTIFICATE-----
      -----BEGIN CERTIFICATE-----
      (root CA2: DigiCertGlobalRootG2.crt.pem)
      -----END CERTIFICATE-----

  • Nahraďte původní soubor pem kořenové certifikační autority sloučeným kořenovým souborem CA a restartujte aplikaci nebo klienta.

  • V budoucnu můžete po nasazení nového certifikátu na straně serveru změnit soubor pem certifikační autority na DigiCertGlobalRootG2.crt.pem.

Poznámka:

Certifikát Baltimore nepřesouvejte ani neměňte, dokud nedojde ke změně certifikátu. Jakmile bude změna hotová, pošleme nám zprávu, po které je bezpečné, aby odhodili certifikát Baltimore.

Co když jsme odebrali certifikát BaltimoreCyberTrustRoot?

Při připojování k serveru Azure Database for PostgreSQL se můžou objevit chyby připojení. Abyste zachovali připojení, musíte znovu nakonfigurovat ssl s certifikátem BaltimoreCyberTrustRoot .

Nejčastější dotazy

1. Pokud nepoužívám protokol SSL/TLS, musím pořád aktualizovat kořenovou certifikační autoritu?

Pokud nepoužíváte PROTOKOL SSL/TLS, nevyžadují se žádné akce.

2. Pokud používám protokol SSL/TLS, musím restartovat databázový server, aby se aktualizovala kořenová certifikační autorita?

Ne, abyste mohli začít používat nový certifikát, nemusíte restartovat databázový server. Jedná se o změnu na straně klienta a příchozí připojení klientů musí používat nový certifikát, aby se zajistilo, že se můžou připojit k databázovému serveru.

3. Návody vědět, jestli používám SSL/TLS s ověřením kořenového certifikátu?

Pokud chcete zjistit, jestli připojení ověřují kořenový certifikát, zkontrolujte připojovací řetězec.

  • Pokud váš připojovací řetězec obsahuje sslmode=verify-ca nebo sslmode=verify-full, musíte certifikát aktualizovat.
  • Pokud vaše připojovací řetězec zahrnuje sslmode=disable, sslmode=allow, sslmode=prefernebo sslmode=require, nemusíte aktualizovat certifikáty.
  • Pokud váš připojovací řetězec neurčuje sslmode, nemusíte aktualizovat certifikáty.

Pokud používáte klienta, který abstrahuje připojovací řetězec pryč, projděte si dokumentaci klienta a zjistěte, jestli ověřuje certifikáty. Pokud chcete porozumět sslmodu PostgreSQL, projděte si popisy režimu SSL v dokumentaci k PostgreSQL.

4. Jaký dopad má použití služby App Service se službou Azure Database for PostgreSQL?

V případě aplikačních služeb Azure, které se připojují ke službě Azure Database for PostgreSQL, můžeme mít dva možné scénáře, a to závisí na tom, jak s vaší aplikací používáte SSL.

  • Tento nový certifikát byl přidán do služby App Service na úrovni platformy. Pokud ve vaší aplikaci používáte certifikáty SSL zahrnuté na platformě služby App Service, není potřeba žádná akce.
  • Pokud do kódu explicitně zahrnete cestu k souboru certifikátu SSL, budete muset stáhnout nový certifikát a aktualizovat kód tak, aby používal nový certifikát. Dobrým příkladem tohoto scénáře je použití vlastních kontejnerů ve službě App Service jako sdílené v dokumentaci ke službě App Service.

5. Jaký dopad má použití služeb Azure Kubernetes Services (AKS) se službou Azure Database for PostgreSQL?

Pokud se pokoušíte připojit ke službě Azure Database for PostgreSQL pomocí služby Azure Kubernetes Services (AKS), je to podobné přístupu z hostitelského prostředí vyhrazených zákazníků. Postup najdete tady.

6. Jaký dopad má použití služby Azure Data Factory k připojení ke službě Azure Database for PostgreSQL?

Konektor s využitím prostředí Azure Integration Runtime využívá certifikáty ve službě Windows Certificate Store v prostředí hostované v Azure. Tyto certifikáty jsou již kompatibilní s nově použitými certifikáty, a proto není nutná žádná akce.

Pro konektor pomocí místního prostředí Integration Runtime, kde explicitně zahrnete cestu k souboru certifikátu SSL ve vašem připojovací řetězec, musíte stáhnout nový certifikát a aktualizovat připojovací řetězec, aby ho mohli používat.

7. Potřebuji pro tuto změnu naplánovat výpadek údržby databázového serveru?

Ne. Vzhledem k tomu, že tato změna je pouze na straně klienta pro připojení k databázovému serveru, pro tuto změnu není potřeba žádný výpadek údržby databázového serveru.

8. Pokud vytvořím nový server po 30. listopadu 2022, budu ovlivněn?

Pro servery vytvořené po 30. listopadu 2022 budete dál používat BaltimoreCyberTrustRoot společně s novými kořenovými certifikáty DigiCertGlobalRootG2 v úložišti certifikátů SSL klienta databáze, aby se vaše aplikace mohli připojit pomocí SSL.

9. Jak často Microsoft aktualizuje své certifikáty nebo jaké jsou zásady vypršení platnosti?

Tyto certifikáty používané službou Azure Database for PostgreSQL poskytují důvěryhodné certifikační autority (CA). Podpora těchto certifikátů je proto svázaná s podporou těchto certifikátů certifikační autoritou. Platnost certifikátu BaltimoreCyberTrustRoot je naplánovaná na vypršení platnosti v roce 2025, takže Microsoft musí provést změnu certifikátu před vypršením platnosti. V případě, že v těchto předdefinovaných certifikátech existují nepředvídatelné chyby, musí Společnost Microsoft provést obměnu certifikátů co nejdříve podobně jako při změně provedené 15. února 2021, aby se zajistilo, že služba bude vždy zabezpečená a vyhovující.

10. Pokud používám repliky pro čtení, musím tuto aktualizaci provést pouze na primárním serveru nebo replikách pro čtení?

Vzhledem k tomu, že tato aktualizace je změna na straně klienta, pokud klient používá ke čtení dat ze serveru repliky, musíte změny použít i pro tyto klienty.

11. Máme dotaz na straně serveru k ověření, jestli se používá SSL?

Pokud chcete ověřit, jestli pro připojení k serveru používáte připojení SSL, projděte si ověření SSL.

12. Je potřeba provést akci, pokud již mám DigiCertGlobalRootG2 v souboru certifikátu?

Ne. Pokud už soubor certifikátu obsahuje DigiCertGlobalRootG2, není potřeba nic dělat.

13. Jak můžu zkontrolovat certifikát odeslaný serverem?

Existuje mnoho nástrojů, které můžete použít. Například DigiCert má užitečný nástroj , který zobrazuje řetěz certifikátů libovolného názvu serveru. (Tento nástroj funguje s veřejně přístupným serverem, nemůže se připojit k serveru, který je součástí virtuální sítě. Dalším nástrojem, který můžete použít, je OpenSSL v příkazovém řádku. Pomocí této syntaxe můžete zkontrolovat certifikáty:

openssl s_client -starttls postgres -showcerts -connect <your-postgresql-server-name>:5432

14. Co když mám další otázky?

Pokud máte další dotazy, získejte odpovědi od odborníků z komunity prostřednictvím Microsoft Q&A. Pokud máte plán podpory a potřebujete technickou pomoc, vytvořte žádost o podporu:

  • V případě typu Problém vyberte Možnost Technical.< a1/> (Technický).
  • V části Předplatné vyberte své předplatné.
  • V případě služby vyberte My Services (Moje služby) a pak vyberte Azure Database for PostgreSQL – Single Server.
  • V případě typu Problém vyberte Zabezpečení.
  • V podtypu Problému vyberte Azure Encryption and Infrastructure Double Encryption.