Share via


Inzicht in de wijzigingen in de basis-CA-wijziging voor Azure Database for PostgreSQL Enkele server

VAN TOEPASSING OP: Azure Database for PostgreSQL - enkele server

Belangrijk

Azure Database for PostgreSQL - Enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan om een upgrade uit te voeren naar Azure Database for PostgreSQL - Flexible Server. Zie Wat gebeurt er met Azure Database for PostgreSQL Enkele server voor meer informatie over migreren naar Azure Database for PostgreSQL - Flexible Server.

Azure Database for PostgreSQL Single Server plant de basiscertificaatwijziging vanaf december 2022 (12/2022) als onderdeel van de aanbevolen procedures voor standaardonderhoud en beveiliging. In dit artikel vindt u meer informatie over de wijzigingen, de betrokken resources en de stappen die nodig zijn om ervoor te zorgen dat uw toepassing de verbinding met uw databaseserver behoudt.

Waarom is update van basiscertificaat vereist?

In het verleden konden Gebruikers van Azure Database for PostgreSQL alleen het vooraf gedefinieerde certificaat gebruiken om verbinding te maken met hun PostgreSQL-server, die zich hier bevindt. Het browserforum van de certificeringsinstantie (CA) heeft echter onlangs rapporten gepubliceerd van meerdere certificaten die zijn uitgegeven door CA-leveranciers om niet-compatibel te zijn.

Volgens de nalevingsvereisten van de branche zijn CA-leveranciers begonnen met het intrekken van CA-certificaten voor niet-compatibele CA's, waarbij servers certificaten moeten gebruiken die zijn uitgegeven door compatibele CA's en ondertekend door CA-certificaten van die compatibele CA's. Omdat Azure Database for PostgreSQL een van deze niet-compatibele certificaten heeft gebruikt, moesten we het certificaat roteren naar de compatibele versie om de potentiële bedreiging voor uw Postgres-servers te minimaliseren.

Het nieuwe certificaat wordt geïmplementeerd en is van kracht vanaf december 2022 (12/2022).

Welke wijziging is gepland vanaf december 2022 (12/2022)?

Vanaf december 2022 wordt het BaltimoreCyberTrustRoot-basiscertificaat vervangen door een compatibele versie die bekend staat als DigiCertGlobalRootG2-basiscertificaat . Als uw toepassingen profiteren van verify-ca of verify-full als waarde van de sslmode-parameter in de databaseclientconnectiviteit, moet u de aanwijzingen volgen om nieuwe certificaten toe te voegen aan het certificaatarchief om de connectiviteit te behouden.

Moet ik wijzigingen aanbrengen op mijn client om de connectiviteit te behouden?

Er zijn geen code- of toepassingswijzigingen vereist aan de clientzijde. als u de onderstaande aanbeveling voor certificaatupdates volgt, kunt u nog steeds verbinding blijven maken zolang het BaltimoreCyberTrustRoot-certificaat niet uit het gecombineerde CA-certificaat wordt verwijderd . We raden u aan om de BaltimoreCyberTrustRoot pas uit uw gecombineerde CA-certificaat te verwijderen als u verder op de hoogte bent van de connectiviteit.

Moet ik wijzigingen aanbrengen in clientcertificaten?

PostgreSQL voert standaard geen verificatie uit van het servercertificaat. Dit betekent dat het nog steeds theoretisch mogelijk is om de serveridentiteit te spoofen (bijvoorbeeld door een DNS-record te wijzigen of door het IP-adres van de server over te nemen) zonder dat de client dat weet. Om mogelijke adresvervalsing te voorkomen, moet ssl-certificaatverificatie op de client worden gebruikt. Dergelijke verificatie kan worden ingesteld via de toepassingsclient verbindingsreeks waarde voor ssl-modus : verify-ca of verify-full. Als deze ssl-moduswaarden zijn gekozen, volgt u de aanwijzingen in de volgende sectie.

Aanbeveling voor update van clientcertificaat

  • Download BaltimoreCyberTrustRoot & DigiCertGlobalRootG2 Root CA via koppelingen hieronder:

  • Als u toekomstige onderbrekingen wilt voorkomen, is het ook raadzaam om de volgende roots toe te voegen aan het vertrouwde archief:

  • Genereer een gecombineerd CA-certificaatarchief met zowel BaltimoreCyberTrustRoot - als DigiCertGlobalRootG2-certificaten .

    • Voor Gebruikers van Java (PostgreSQL JDBC) die DefaultJavaSSLFactory gebruiken, voert u het volgende uit:

      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
      

      Vervang vervolgens het oorspronkelijke sleutelarchiefbestand door het nieuwe gegenereerde bestand:

      • System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file");
      • System.setProperty("javax.net.ssl.trustStorePassword","password");
    • Voor .NET-gebruikers (Npgsql) in Windows moet u ervoor zorgen dat Baltimore CyberTrust Root en DigiCert Global Root G2 beide bestaan in het Windows-certificaatarchief, vertrouwde basiscertificeringsinstanties. Als er geen certificaten bestaan, importeert u het ontbrekende certificaat.

      Azure Database for PostgreSQL .net-certificaat

    • Voor .NET-gebruikers (Npgsql) op Linux met behulp van SSL_CERT_DIR moet u ervoor zorgen dat BaltimoreCyberTrustRoot en DigiCertGlobalRootG2 beide aanwezig zijn in de map die wordt aangegeven door SSL_CERT_DIR. Als er geen certificaten bestaan, maakt u het ontbrekende certificaatbestand.

    • Voor andere PostgreSQL-clientgebruikers kunt u twee CA-certificaatbestanden zoals hieronder samenvoegen


      -----BEGIN CERTIFICATE-----
      (Root CA1: BaltimoreCyberTrustRoot.crt.pem)
      -----END CERTIFICATE-----
      -----BEGIN CERTIFICATE-----
      (Root CA2: DigiCertGlobalRootG2.crt.pem)
      -----END CERTIFICATE-----

  • Vervang het oorspronkelijke BASIS-CA-pem-bestand door het gecombineerde basis-CA-bestand en start de toepassing/client opnieuw op.

  • Nadat het nieuwe certificaat aan de serverzijde is geïmplementeerd, kunt u in de toekomst uw CA pem-bestand wijzigen in DigiCertGlobalRootG2.crt.pem.

Notitie

Verwijder of wijzig het Baltimore-certificaat pas nadat de wijziging van het certificaat is aangebracht. We sturen een communicatie zodra de wijziging is voltooid, waarna het veilig is voor hen om het Baltimore-certificaat te verwijderen.

Wat gebeurt er als we het BaltimoreCyberTrustRoot-certificaat hebben verwijderd?

Mogelijk krijgt u connectiviteitsfouten tijdens het maken van verbinding met uw Azure Database for PostgreSQL-server. U moet SSL configureren met Het BaltimoreCyberTrustRoot-certificaat om de connectiviteit te behouden.

Veelgestelde vragen

1. Als ik geen SSL/TLS gebruik, moet ik nog steeds de basis-CA bijwerken?

Er zijn geen acties vereist als u geen SSL/TLS gebruikt.

2. Als ik SSL/TLS gebruik, moet ik mijn databaseserver opnieuw opstarten om de basis-CA bij te werken?

Nee, u hoeft de databaseserver niet opnieuw op te starten om het nieuwe certificaat te gaan gebruiken. Dit is een wijziging aan de clientzijde en de binnenkomende clientverbindingen moeten het nieuwe certificaat gebruiken om ervoor te zorgen dat ze verbinding kunnen maken met de databaseserver.

3. Hoe kan ik weten of ik SSL/TLS gebruik met basiscertificaatverificatie?

U kunt bepalen of uw verbindingen het basiscertificaat verifiëren door uw verbindingsreeks te controleren.

  • Als uw verbindingsreeks bevat sslmode=verify-ca ofsslmode=verify-full, moet u het certificaat bijwerken.
  • Als uw verbindingsreeks certificaten bevatsslmode=disable, sslmode=allowof sslmode=preferals sslmode=requireu certificaten niet hoeft bij te werken.
  • Als uw verbindingsreeks geen sslmode opgeeft, hoeft u geen certificaten bij te werken.

Als u een client gebruikt waarmee het verbindingsreeks wordt geabstraheerd, raadpleegt u de documentatie van de client om te begrijpen of certificaten worden geverifieerd. Raadpleeg de beschrijvingen van de SSL-modus in de PostgreSQL-documentatie voor meer informatie over PostgreSQL sslmode.

4. Wat is de impact als u App Service gebruikt met Azure Database for PostgreSQL?

Voor Azure-app-services, die verbinding maken met Azure Database for PostgreSQL, kunnen we twee mogelijke scenario's hebben en is het afhankelijk van hoe u SSL gebruikt met uw toepassing.

  • Dit nieuwe certificaat is toegevoegd aan App Service op platformniveau. Als u de SSL-certificaten gebruikt die zijn opgenomen in het App Service-platform in uw toepassing, hoeft u niets te doen.
  • Als u expliciet het pad naar het SSL-certificaatbestand in uw code opgeeft, moet u het nieuwe certificaat downloaden en de code bijwerken om het nieuwe certificaat te gebruiken. Een goed voorbeeld van dit scenario is wanneer u aangepaste containers in App Service gebruikt als gedeeld in de App Service-documentatie

5. Wat is de impact als u Azure Kubernetes Services (AKS) gebruikt met Azure Database for PostgreSQL?

Als u verbinding probeert te maken met Azure Database for PostgreSQL met behulp van Azure Kubernetes Services (AKS), is dit vergelijkbaar met toegang vanuit een toegewezen klantenhostomgeving. Raadpleeg de stappen hier.

6. Wat is de impact als u Azure Data Factory gebruikt om verbinding te maken met Azure Database for PostgreSQL?

Voor connector die Azure Integration Runtime gebruikt, maakt de connector gebruik van certificaten in het Windows-certificaatarchief in de door Azure gehoste omgeving. Deze certificaten zijn al compatibel met de zojuist toegepaste certificaten en daarom is er geen actie nodig.

Voor connector die gebruikmaakt van zelf-hostende Integration Runtime, waarbij u expliciet het pad naar het SSL-certificaatbestand in uw verbindingsreeks opneemt, moet u het nieuwe certificaat downloaden en de verbindingsreeks bijwerken om het te gebruiken.

7. Moet ik een onderhoudstijd voor de databaseserver plannen voor deze wijziging?

Nee Omdat de wijziging hier alleen aan de clientzijde staat om verbinding te maken met de databaseserver, is er geen uitvaltijd voor onderhoud nodig voor de databaseserver voor deze wijziging.

8. Als ik na 30 november 2022 een nieuwe server maak, wordt dit beïnvloed?

Voor servers die na 30 november 2022 zijn gemaakt, blijft u de BaltimoreCyberTrustRoot samen met nieuwe DigiCertGlobalRootG2-basiscertificaten in het SSL-certificaatarchief van uw databaseclient gebruiken om verbinding te maken met SSL.

9. Hoe vaak werkt Microsoft hun certificaten bij of wat is het verloopbeleid?

Deze certificaten die door Azure Database for PostgreSQL worden gebruikt, worden geleverd door vertrouwde certificeringsinstanties (CA). De ondersteuning van deze certificaten is dus gekoppeld aan de ondersteuning van deze certificaten door CA. Het BaltimoreCyberTrustRoot-certificaat is gepland om te verlopen in 2025, dus Microsoft moet een certificaatwijziging uitvoeren vóór de vervaldatum. Als er onvoorziene fouten zijn in deze vooraf gedefinieerde certificaten, moet Microsoft het certificaat op zijn vroegst laten rouleren, vergelijkbaar met de wijziging die is uitgevoerd op 15 februari 2021 om ervoor te zorgen dat de service veilig en conform is.

10. Als ik leesreplica's gebruik, moet ik deze update alleen uitvoeren op de primaire server of de leesreplica's?

Omdat deze update een wijziging aan de clientzijde is, moet u ook de wijzigingen voor deze clients toepassen als de client die wordt gebruikt om gegevens van de replicaserver te lezen.

11. Hebben we een query aan de serverzijde om te controleren of SSL wordt gebruikt?

Als u wilt controleren of u een SSL-verbinding gebruikt om verbinding te maken met de server, raadpleegt u SSL-verificatie.

12. Is er een actie nodig als ik de DigiCertGlobalRootG2 al in mijn certificaatbestand heb?

Nee Er is geen actie nodig als uw certificaatbestand al de DigiCertGlobalRootG2 heeft.

13. Hoe kan ik het certificaat controleren dat door de server wordt verzonden?

Er zijn veel hulpprogramma's die u kunt gebruiken. DigiCert heeft bijvoorbeeld een handig hulpprogramma waarmee u de certificaatketen van een servernaam kunt zien. (Dit hulpprogramma werkt met een openbaar toegankelijke server; het kan geen verbinding maken met de server die zich in een virtueel netwerk (VNET) bevindt. Een ander hulpprogramma dat u kunt gebruiken, is OpenSSL in de opdrachtregel. U kunt deze syntaxis gebruiken om certificaten te controleren:

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

14. Wat als ik nog vragen heb?

Als u vragen hebt, kunt u antwoorden krijgen van community-experts in Microsoft Q&A. Als u een ondersteuningsplan hebt en technische hulp nodig hebt, maakt u een ondersteuningsaanvraag:

  • Selecteer Voor type probleem de optie Technisch.
  • Selecteer uw abonnement voor Abonnement.
  • Selecteer Voor Service My Services en selecteer vervolgens Azure Database for PostgreSQL – Enkele server.
  • Bij Probleemtype selecteert u Beveiliging.
  • Voor subtype probleem selecteert u Azure-versleuteling en dubbele infrastructuurversleuteling