Dela via


Förstå ändringarna i rotcertifikatutfärdarändringen för Azure Database for MySQL – enskild server

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

Viktigt!

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

Azure Database for MySQL – enskild server som en del av metodtipsen för standardunderhåll och säkerhet slutför rotcertifikatändringen från och med oktober 2022. Den här artikeln innehåller mer information om ändringarna, vilka resurser som påverkas och de steg som krävs för att säkerställa att programmet upprätthåller anslutningen till databasservern.

Kommentar

Den här artikeln gäller endast för Azure Database for MySQL – enskild server . För Azure Database for MySQL – flexibel server är certifikatet som behövs för att kommunicera via SSL DigiCert global rotcertifikatutfärdare

Den här artikeln innehåller referenser till termen slav, en term som Microsoft inte längre använder. När termen tas bort från programvaran tar vi bort den från den här artikeln.

Varför krävs en rotcertifikatuppdatering?

Azure Database for MySQL-användare kan bara använda det fördefinierade certifikatet för att ansluta till sin MySQL-server, som finns här. Certifikatutfärdare (CA) Webbläsarforum publicerade nyligen rapporter om flera certifikat som utfärdats av CA-leverantörer för att vara icke-kompatibla.

Enligt branschens efterlevnadskrav började CA-leverantörer återkalla CA-certifikat för icke-kompatibla certifikatutfärdare, kräva att servrar använder certifikat som utfärdats av kompatibla certifikatutfärdare och signerats av CA-certifikat från dessa kompatibla certifikatutfärdare. Eftersom Azure Database for MySQL använde ett av dessa icke-kompatibla certifikat behövde vi rotera certifikatet till den kompatibla versionen för att minimera det potentiella hotet mot dina MySQL-servrar.

Behöver jag göra några ändringar på min klient för att upprätthålla anslutningen?

Om du har följt stegen under Skapa ett kombinerat CA-certifikat nedan kan du fortsätta att ansluta så länge BaltimoreCyberTrustRoot-certifikatet inte tas bort från det kombinerade CA-certifikatet. För att upprätthålla anslutningen rekommenderar vi att du behåller BaltimoreCyberTrustRoot i ditt kombinerade CA-certifikat tills vidare.

Skapa ett kombinerat CA-certifikat

Använd följande steg för att undvika avbrott i programmets tillgänglighet till följd av att certifikat oväntat återkallas eller för att uppdatera ett certifikat som har återkallats. Tanken är att skapa en ny .pem-fil som kombinerar det aktuella certifikatet och det nya och under SSL-certifikatverifieringen används ett av de tillåtna värdena. Se följande steg:

  1. Ladda ned BaltimoreCyberTrustRoot & DigiCertGlobalRootG2 Root CA från följande länkar:

  2. Generera ett kombinerat CA-certifikatarkiv med både BaltimoreCyberTrustRoot - och DigiCertGlobalRootG2-certifikat ingår.

    • För Java-användare (MySQL Connector/J) kör du:

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

      Ersätt sedan den ursprungliga nyckellagringsfilen med den nya genererade:

      • System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file");
      • System.setProperty("javax.net.ssl.trustStorePassword","password");
    • För .NET-användare (MySQL Connector/NET, MySQLConnector) kontrollerar du att Både BaltimoreCyberTrustRoot och DigiCertGlobalRootG2 finns i Windows Certificate Store, Betrodda rotcertifikatutfärdare. Om det inte finns några certifikat importerar du det saknade certifikatet.

      Azure Database for MySQL .NET-certifikatdiagram

    • För .NET-användare i Linux med SSL_CERT_DIR kontrollerar du att Både BaltimoreCyberTrustRoot och DigiCertGlobalRootG2 finns i katalogen som anges av SSL_CERT_DIR. Om det inte finns några certifikat skapar du den saknade certifikatfilen.

    • För andra (MySQL Client/MySQL Workbench/C/C++/Go/Python/Ruby/PHP/NodeJS/Perl/Swift) kan du sammanfoga två CA-certifikatfiler i följande format:

      -----BEGIN CERTIFICATE-----
      (Root CA1: BaltimoreCyberTrustRoot.crt.pem)
      -----END CERTIFICATE-----
      -----BEGIN CERTIFICATE-----
      (Root CA2: DigiCertGlobalRootG2.crt.pem)
      -----END CERTIFICATE-----
      
  3. Ersätt den ursprungliga rot-CA pem-filen med den kombinerade rot-CA-filen och starta om programmet/klienten.

    När det nya certifikatet har distribuerats på serversidan kan du i framtiden ändra din CA pem-fil till DigiCertGlobalRootG2.crt.pem.

Kommentar

Ta inte bort eller ändra Baltimore-certifikatet förrän certifikatändringen har gjorts. Vi skickar en kommunikation när ändringen är klar och då är det säkert att släppa Baltimore-certifikatet.

Tänk om vi tog bort BaltimoreCyberTrustRoot-certifikatet?

Du börjar stöta på anslutningsfel när du ansluter till din Azure Database for MySQL-server. Du måste konfigurera SSL med BaltimoreCyberTrustRoot-certifikatet igen för att upprätthålla anslutningen.

Vanliga frågor och svar

Behöver jag fortfarande uppdatera rotcertifikatutfärdare om jag inte använder SSL/TLS?

Inga åtgärder krävs om du inte använder SSL/TLS.

När kommer min enskild serverinstans att genomgå rotcertifikatändring?

Migreringen från BaltimoreCyberTrustRoot till DigiCertGlobalRootG2 utförs i alla regioner i Azure från och med oktober 2022 i faser. För att se till att du inte förlorar anslutningen till servern följer du stegen som anges under Skapa ett kombinerat CA-certifikat. Kombinerat CA-certifikat tillåter anslutning via SSL till din enda serverinstans med något av dessa två certifikat.

När kan jag ta bort BaltimoreCyberTrustRoot-certifikatet helt?

När migreringen har slutförts i alla Azure-regioner skickar vi ett kommunikationsinlägg som du är säker på att ändra ett enskilt CA DigiCertGlobalRootG2-certifikat .

Jag anger inget certifikatutfärdarcertifikat när jag ansluter till min enda serverinstans via SSL. Behöver jag fortfarande utföra stegen som nämns ovan?

Om du har både CA-rotcertifikatet i ditt betrodda rotarkiv krävs inga ytterligare åtgärder. Detta gäller även för klientdrivrutiner som använder lokalt arkiv för åtkomst till rotcertifikatutfärdarcertifikat.

Behöver jag starta om databasservern för att uppdatera rotcertifikatutfärdare om jag använder SSL/TLS?

Nej, du behöver inte starta om databasservern för att börja använda det nya certifikatet. Det här rotcertifikatet är en ändring på klientsidan och de inkommande klientanslutningarna måste använda det nya certifikatet för att säkerställa att de kan ansluta till databasservern.

Hur vet jag om jag använder SSL/TLS med rotcertifikatverifiering?

Du kan identifiera om dina anslutningar verifierar rotcertifikatet genom att granska dina niska veze.

  • Om din niska veze innehåller sslmode=verify-ca eller sslmode=verify-identitymåste du uppdatera certifikatet.
  • Om din niska veze innehåller sslmode=disable, sslmode=allow, sslmode=prefereller sslmode=require, behöver du inte uppdatera certifikat.
  • Om din niska veze inte anger sslmode behöver du inte uppdatera certifikat.

Om du använder en klient som abstraherar bort niska veze läser du klientens dokumentation för att förstå om den verifierar certifikat.

Vad är effekten av att använda App Service med Azure Database for MySQL?

För Azure-apptjänster som ansluter till Azure Database for MySQL finns det två möjliga scenarier beroende på hur du använder SSL med ditt program.

  • Det här nya certifikatet har lagts till i App Service på plattformsnivå. Om du använder de SSL-certifikat som ingår på App Service-plattformen i ditt program behövs ingen åtgärd. Det här är det vanligaste scenariot.
  • Om du uttryckligen inkluderar sökvägen till SSL-certifikatfilen i koden måste du ladda ned det nya certifikatet och skapa ett kombinerat certifikat enligt ovan och använda certifikatfilen. Ett bra exempel på det här scenariot är när du använder anpassade containrar i App Service som delas i App Service-dokumentationen. Det här är ett ovanligt scenario, men vi har sett vissa användare använda detta.

Vad är effekten av att använda Azure Kubernetes Services (AKS) med Azure Database for MySQL?

Om du försöker ansluta till Azure Database for MySQL med hjälp av Azure Kubernetes Services (AKS) liknar det åtkomsten från en värdmiljö för dedikerade kunder. Se stegen här.

Vad är effekten av att använda Azure Data Factory för att ansluta till Azure Database for MySQL?

För en anslutningsapp som använder Azure Integration Runtime använder anslutningsappen certifikat i Windows Certificate Store i den Azure-värdbaserade miljön. Dessa certifikat är redan kompatibla med de nyligen tillämpade certifikaten och därför behövs ingen åtgärd.

För en anslutningsapp med lokalt installerad integrationskörning där du uttryckligen inkluderar sökvägen till SSL-certifikatfilen i din niska veze måste du ladda ned det nya certifikatet och uppdatera niska veze för att använda det.

Behöver jag planera en stilleståndstid för databasserverunderhåll för den här ändringen?

Nej. Eftersom ändringen endast är på klientsidan för att ansluta till databasservern behövs ingen underhållsavbrottstid för databasservern för den här ändringen.

Hur ofta uppdaterar Microsoft sina certifikat eller vad är förfalloprincipen?

Dessa certifikat som används av Azure Database for MySQL tillhandahålls av betrodda certifikatutfärdare (CA). Så stödet för dessa certifikat är kopplat till stöd för dessa certifikat av CA. BaltimoreCyberTrustRoot-certifikatet är schemalagt att upphöra att gälla 2025, så Microsoft måste utföra en certifikatändring innan förfallodatum. Även om det finns oförutsedda buggar i dessa fördefinierade certifikat måste Microsoft göra certifikatrotationen tidigast som den ändring som utfördes den 15 februari 2021 för att säkerställa att tjänsten alltid är säker och kompatibel.

Om jag använder skrivskyddade repliker behöver jag bara utföra den här uppdateringen på källservern eller skrivskyddade repliker?

Eftersom den här uppdateringen är en ändring på klientsidan måste du även tillämpa ändringarna för dessa klienter om klienten använde för att läsa data från replikservern.

Behöver jag utföra någon åtgärd om jag använder datareplikering?

Om du använder datareplikering för att ansluta till Azure Database for MySQL finns det två saker att tänka på:

  • Om datareplikeringen kommer från en virtuell dator (lokal eller virtuell Azure-dator) till Azure Database for MySQL måste du kontrollera om SSL används för att skapa repliken. Kör VISA SLAVSTATUS och kontrollera följande inställning.

    Master_SSL_Allowed            : Yes
    Master_SSL_CA_File            : ~\azure_mysqlservice.pem
    Master_SSL_CA_Path            :
    Master_SSL_Cert               : ~\azure_mysqlclient_cert.pem
    Master_SSL_Cipher             :
    Master_SSL_Key                : ~\azure_mysqlclient_key.pem
    

    Om du ser att certifikatet har angetts för CA_file, SSL_Cert och SSL_Key måste du uppdatera filen genom att lägga till det nya certifikatet och skapa en kombinerad certifikatfil.

  • Om datareplikeringen är mellan två Azure Database for MySQL-servrar måste du återställa repliken genom att köra CALL mysql.az_replication_change_master och ange det nya dubbla rotcertifikatet som den sista parametern master_ssl_ca.

Finns det en fråga på serversidan som avgör om SSL används?

För att kontrollera om du använder SSL-anslutning för att ansluta till servern, se SSL-verifiering.

Behövs det en åtgärd om jag redan har DigiCertGlobalRootG2 i min certifikatfil?

Nej. Det krävs ingen åtgärd om certifikatfilen redan har DigiCertGlobalRootG2.

Varför behöver jag uppdatera mitt rotcertifikat om jag använder PHP-drivrutinen med enableRedirect ?

För att uppfylla efterlevnadskraven ändrades CA-certifikaten för värdservern från BaltimoreCyberTrustRoot till DigiCertGlobalRootG2. Med den här uppdateringen kan databasanslutningar som använder PHP-klientdrivrutinen med enableRedirect inte längre ansluta till servern, eftersom klientenheterna inte känner till certifikatändringen och den nya rotcertifikatutfärdarinformationen. Klientenheter som använder PHP-omdirigeringsdrivrutiner ansluter direkt till värdservern och kringgår gatewayen. Se den här länken för mer information om arkitekturen för Azure Database for MySQL – enskild server.

Vad händer om jag har fler frågor?

För frågor får du svar från communityexperter i Microsoft Q&A. Kontakta oss om du har en supportplan och behöver teknisk hjälp.