Grundlegendes zu den Änderungen im Zusammenhang mit der Stammzertifizierungsstelle für Azure Database for MySQL Single Server

GILT FÜR: Azure Database for MySQL – Single Server

Wichtig

Azure Database for MySQL single server is on the retirement path. Es wird dringend empfohlen, ein Upgrade auf azure Database for MySQL flexiblen Server durchzuführen. Weitere Informationen zum Migrieren zu Azure Database for MySQL flexible Server finden Sie unter Was geschieht mit Azure Database for MySQL Single Server?

Azure Database for MySQL Single Server wird im Rahmen der Standardwartung und der bewährten Sicherheitsmethoden die Änderung des Stammzertifikats ab Oktober 2022 abschließen. In diesem Artikel erhalten Sie ausführlichere Informationen zu den Änderungen, den betroffenen Ressourcen sowie den Schritten, die erforderlich sind, um sicherzustellen, dass die Konnektivität Ihrer Anwendung mit dem Datenbankserver bestehen bleibt.

Hinweis

Dieser Artikel betrifft NUR Azure Database for MySQL Single Server. Bei Azure Database for MySQL Flexible Server ist DigiCert Global Root CA das für die Kommunikation über SSL erforderliche Zertifikat.

Dieser Artikel enthält Verweise auf den Begriff Slave, einen Begriff, den Microsoft nicht mehr verwendet. Sobald der Begriff aus der Software entfernt wurde, wird er auch aus diesem Artikel entfernt.

Warum ist eine Aktualisierung des Stammzertifikats erforderlich?

Benutzer von Azure Database for MySQL können eine Verbindung mit ihrem MySQL-Server nur mithilfe des vordefinierten Zertifikats herstellen, das sich hier befindet. Im Zertifizierungsstellen-Browserforum wurden jedoch kürzlich gemeldet, dass mehrere von Zertifizierungsstellenanbietern ausgestellte Zertifikate nicht konform sind.

Entsprechend den Konformitätsanforderungen der Branche haben Zertifizierungsstellenanbieter damit begonnen, Zertifizierungsstellenzertifikate für nicht konforme Zertifizierungsstellen zu widerrufen. Deshalb müssen Server Zertifikate verwenden, die von konformen Zertifizierungsstellen ausgestellt und durch Zertifizierungsstellenzertifikate von diesen Zertifizierungsstellen signiert wurden. Da Azure Database for MySQL eines dieser nicht konformen Zertifikate verwendete, musste das Zertifikat zur konformen Version rotiert werden, um die potenzielle Bedrohung für Ihre MySQL-Server zu minimieren.

Muss ich Änderungen an meinem Client vornehmen, um die Konnektivität aufrechtzuerhalten?

Wenn Sie die unter Erstellen eines kombinierten Zertifizierungsstellenzertifikats genannten Schritte befolgt haben, können Sie weiterhin eine Verbindung herstellen, solange das BaltimoreCyberTrustRoot-Zertifikat nicht aus dem kombinierten Zertifizierungsstellenzertifikat entfernt wird. Zur Aufrechterhaltung der Konnektivität empfehlen wir, dass Sie das BaltimoreCyberTrustRoot-Zertifikat bis auf Weiteres nicht aus Ihrem kombinierten Zertifizierungsstellenzertifikat entfernen.

Erstellen eines kombinierten Zertifizierungsstellenzertifikats

Wenn Sie verhindern möchten, dass die Verfügbarkeit Ihrer Anwendung infolge von unerwartet widerrufenen Zertifikaten unterbrochen wird, oder wenn Sie ein widerrufenes Zertifikat aktualisieren möchten, führen Sie die folgenden Schritte aus. Dadurch soll eine neue PEM-Datei erstellt werden, die das aktuelle Zertifikat und das neue Zertifikat kombiniert. Während der SSL-Zertifikatüberprüfung wird einer der zulässigen Werte verwendet. Sehen Sie sich die folgenden Schritte an:

  1. Laden Sie die Stammzertifizierungsstellen BaltimoreCyberTrustRoot und DigiCertGlobalRootG2 über die folgenden Links herunter:

  2. Generieren Sie einen kombinierten Zertifizierungsstellen-Zertifikatspeicher, in dem sowohl BaltimoreCyberTrustRoot als auch DigiCertGlobalRootG2 enthalten sind.

    • Führen Sie für Java-Benutzer (MySQL-Connector/J) Folgendes aus:

      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
      

      Ersetzen Sie dann die ursprüngliche Keystore-Datei durch die neu generierte Datei:

      • System.setProperty("javax.net.ssl.trustStore","Pfad_zur_Truststore-Datei");
      • System.setProperty("javax.net.ssl.trustStorePassword","Kennwort");
    • Stellen Sie bei .NET-Benutzern (MySQL-Connector/NET, MySQLConnector) sicher, dass BaltimoreCyberTrustRoot und DigiCertGlobalRootG2 im Windows-Zertifikatspeicher unter vertrauenswürdigen Stammzertifizierungsstellen enthalten sind. Ist eines der Zertifikate nicht vorhanden, importieren Sie das fehlende Zertifikat.

      Azure Database for MySQL .NET cert diagram

    • Stellen Sie bei .NET-Benutzern unter Linux, die SSL_CERT_DIR verwenden, sicher, dass BaltimoreCyberTrustRoot und DigiCertGlobalRootG2 in dem durch SSL_CERT_DIR angegebenen Verzeichnis enthalten sind. Ist eines der Zertifikate nicht vorhanden, erstellen Sie die fehlende Zertifikatsdatei.

    • Bei anderen Benutzern (MySQL-Client/MySQL Workbench/C/C++/Go/Python/Ruby/PHP/NodeJS/Perl/Swift) können Sie zwei ZS-Zertifikatsdateien im folgenden Format zusammenführen:

      -----BEGIN CERTIFICATE-----
      (Root CA1: BaltimoreCyberTrustRoot.crt.pem)
      -----END CERTIFICATE-----
      -----BEGIN CERTIFICATE-----
      (Root CA2: DigiCertGlobalRootG2.crt.pem)
      -----END CERTIFICATE-----
      
  3. Ersetzen Sie die ursprüngliche PEM-Datei der Stammzertifizierungsstelle durch die kombinierte Datei der Stammzertifizierungsstelle, und starten Sie die Anwendung bzw. den Client neu.

    Nachdem das neue Zertifikat auf der Serverseite bereitgestellt wurde, können Sie in Zukunft die PEM-Datei der Zertifizierungsstelle in „DigiCertGlobalRootG2.crt.pem“ ändern.

Hinweis

Bitte löschen oder ändern Sie das Baltimore-Zertifikat erst, nachdem die Zertifikatänderung vorgenommen wurde. Nach Abschluss der Änderung werden wir Ihnen eine Mitteilung senden. Dann können Sie das Baltimore-Zertifikat sicher trennen.

Was geschieht, wenn das BaltimoreCyberTrustRoot-Zertifikat entfernt wurde?

Während Sie eine Verbindung mit Ihrem Azure Database for MySQL-Server herstellen, treten Konnektivitätsfehler auf. Sie müssen SSL mit dem BaltimoreCyberTrustRoot-Zertifikat erneut konfigurieren, um die Konnektivität aufrechtzuerhalten.

Häufig gestellte Fragen

Muss ich die Stammzertifizierungsstelle auch aktualisieren, wenn ich SSL/TLS nicht verwende?

Wenn Sie SSL/TLS nicht verwenden, sind keine Aktionen erforderlich.

Wann wird das Stammzertifikat meiner Einzelserverinstanz geändert?

Die Migration von BaltimoreCyberTrustRoot zu DigiCertGlobalRootG2 wird in allen Regionen von Azure ab Oktober 2022 in Phasen durchgeführt. Führen Sie die unter Erstellen eines kombinierten Zertifizierungsstellenzertifikats genannten Schritte aus, um sicherzustellen, dass die Verbindung mit Ihrem Server nicht verloren geht. Das kombinierte Zertifizierungsstellenzertifikat ermöglicht Konnektivität über SSL mit Ihrer Einzelserverinstanz mit einem dieser beiden Zertifikate.

Wann kann ich das BaltimoreCyberTrustRoot-Zertifikat vollständig entfernen?

Sobald die Migration in allen Azure-Regionen erfolgreich abgeschlossen wurde, senden wir eine Mitteilung, dass Sie das einzelne DigiCertGlobalRootG2-Zertifizierungsstellenzertifikat sicher ändern können.

Ich gebe beim Herstellen einer Verbindung mit meiner Einzelserverinstanz über SSL kein Zertifizierungsstellenzertifikat an. Muss ich die oben genannten Schritte dennoch ausführen?

Wenn Sie über das Zertifizierungsstelle-Stammzertifikat im vertrauenswürdigen Stammspeicher verfügen, sind keine weiteren Aktionen erforderlich. Dies gilt auch für Ihre Clienttreiber, die den lokalen Speicher für den Zugriff auf das Zertifizierungsstellen-Stammzertifikat verwenden.

Muss ich bei Verwendung von SSL/TLS meinen Datenbankserver neu starten, um die Stammzertifizierungsstelle zu aktualisieren?

Nein, der Datenbankserver muss nicht neu gestartet werden, damit das neue Zertifikat verwendet werden kann. Dieses Stammzertifikat ist eine clientseitige Änderung, und die eingehenden Clientverbindungen müssen das neue Zertifikat verwenden, um sicherzustellen, dass sie eine Verbindung mit dem Datenbankserver herstellen können.

Wie kann ich feststellen, ob ich SSL/TLS mit Stammzertifikatüberprüfung verwende?

Durch Überprüfen der Verbindungszeichenfolge können Sie ermitteln, ob Ihre Verbindungen das Stammzertifikat überprüfen.

  • Wenn Ihre Verbindungszeichenfolge sslmode=verify-ca oder sslmode=verify-identity enthält, müssen Sie das Zertifikat aktualisieren.
  • Wenn Ihre Verbindungszeichenfolge sslmode=disable, sslmode=allow, sslmode=prefer oder sslmode=require enthält, müssen Sie keine Zertifikate aktualisieren.
  • Wenn in Ihrer Verbindungszeichenfolge „sslmode“ nicht angegeben ist, müssen Sie keine Zertifikat aktualisieren.

Wenn Sie einen Client verwenden, der die Verbindungszeichenfolge abstrahiert, lesen Sie die Dokumentation des Clients, um zu ermitteln, ob Zertifikate überprüft werden.

Welche Auswirkungen hat es, wenn App Service bei Azure Database for MySQL verwendet wird?

Für Azure App Service-Instanzen, die eine Verbindung mit Azure Database for MySQL herstellen, gibt es zwei mögliche Szenarien – abhängig davon, wie Sie SSL bei Ihrer Anwendung verwenden.

  • Dieses neue Zertifikat wurde App Service auf Plattformebene hinzugefügt. Wenn Sie die SSL-Zertifikate verwenden, die in der App Service-Plattform in Ihrer Anwendung enthalten sind, ist keine Aktion erforderlich. Dies ist das häufigste Szenario.
  • Wenn Sie den Pfad zur SSL-Zertifikatsdatei explizit in den Code einschließen, müssen Sie das neue Zertifikat herunterladen und wie oben beschrieben ein kombiniertes Zertifikat erstellen und die Zertifikatsdatei verwenden. Ein gutes Beispiel für dieses Szenario ist die Verwendung von benutzerdefinierten Containern in App Service, wie es in der App Service-Dokumentation beschrieben ist. Dies ist ein ungewöhnliches Szenario, doch haben wir festgestellt, dass es von einigen Benutzern verwendet wird.

Welche Auswirkungen hat es, wenn Azure Kubernetes Service (AKS) bei Azure Database for MySQL verwendet wird?

Wenn Sie versuchen, mithilfe von Azure Kubernetes Service (AKS) eine Verbindung mit Azure Database for MySQL herzustellen, ähnelt dies dem Zugriff über eine dedizierte Kundenhostumgebung. Die entsprechenden Schritte finden Sie hier.

Welche Auswirkungen hat es, wenn Azure Data Factory zum Herstellen einer Verbindung mit Azure Database for MySQL verwendet wird?

Ein Connector, der Azure Integration Runtime verwendet, nutzt Zertifikate im Windows-Zertifikatspeicher in der von Azure gehosteten Umgebung. Weil diese Zertifikate mit den neu angewendeten Zertifikaten bereits kompatibel sind, ist keine Aktion erforderlich.

Bei einem Connector, der die selbstgehostete Integration Runtime verwendet, für die Sie den Pfad zur SSL-Zertifikatsdatei explizit in die Verbindungszeichenfolge einschließen, müssen Sie das neue Zertifikat herunterladen und die Verbindungszeichenfolge aktualisieren, damit es verwendet werden kann.

Muss ich für diese Änderung eine Wartungsdowntime für den Datenbankserver planen?

Nein. Da die Änderung nur auf der Clientseite geschieht, um eine Verbindung mit dem Datenbankserver herzustellen, ist dafür keine Wartungsdowntime beim Datenbankserver erforderlich.

Wie oft aktualisiert Microsoft seine Zertifikate, bzw. welche Ablaufrichtlinie gilt?

Diese von Azure Database for MySQL verwendeten Zertifikate werden von vertrauenswürdigen Zertifizierungsstellen (ZS) bereitgestellt. Die Unterstützung dieser Zertifikate ist also an die Unterstützung dieser Zertifikate durch die ZS gebunden. Das BaltimoreCyberTrustRoot-Zertifikat läuft im Jahr 2025 ab, sodass Microsoft vor dem Ablauf eine Zertifikatänderung durchführen muss. Sollten in diesen vordefinierten Zertifikaten unvorhergesehene Fehler auftreten, muss Microsoft die Zertifikatrotation frühestens wie die Änderung am 15. Februar 2021 durchführen, um zu gewährleisten, dass der Dienst jederzeit sicher und konform ist.

Muss ich bei Verwendung von Lesereplikaten dieses Update nur auf dem Quellserver oder für die gelesenen Replikate ausführen?

Da dieses Update eine clientseitige Änderung ist, müssen Sie die Änderungen auch für diese Clients anwenden, wenn der Client Daten vom Replikatserver gelesen hat.

Muss ich bei Verwendung der Datenreplikation eine Aktion ausführen?

Wenn Sie die Datenreplikation verwenden, um eine Verbindung mit Azure Database for MySQL herzustellen, müssen Sie zwei Punkte berücksichtigen:

  • Wenn die Datenreplikation von einem virtuellen Computer (lokal oder Azure-VM) zu Azure Database for MySQL erfolgt, müssen Sie überprüfen, ob zum Erstellen des Replikats SSL verwendet wird. Führen Sie SHOW SLAVE STATUS aus, und überprüfen Sie die folgende Einstellung.

    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
    

    Wenn Sie sehen, dass das Zertifikat für „CA_file“, „SSL_Cert“ und „SSL_Key“ bereitgestellt wird, müssen Sie die Datei aktualisieren, indem Sie das neue Zertifikat hinzufügen und eine kombinierte Zertifikatsdatei erstellen.

  • Wenn die Datenreplikation zwischen zwei Azure Database for MySQL-Servern erfolgt, müssen Sie das Replikat zurücksetzen, indem Sie CALL mysql.az_replication_change_master ausführen und das neue duale Stammzertifikat als letzten Parameter (master_ssl_ca) bereitstellen.

Gibt es eine serverseitige Abfrage zur Ermittlung, ob SSL verwendet wird?

Um zu überprüfen, ob Sie eine SSL-Verbindung zum Herstellen einer Verbindung mit dem Server verwenden, lesen Sie die Informationen unter Überprüfen der SSL-Verbindung.

Ist eine Aktion erforderlich, wenn sich DigiCertGlobalRootG2 bereits in meiner Zertifikatsdatei befindet?

Nein Wenn in Ihrer Zertifikatsdatei DigiCertGlobalRootG2 bereits enthalten ist, ist keine Aktion erforderlich.

Warum muss ich mein Stammzertifikat aktualisieren, wenn ich den PHP-Treiber mit enableRedirect verwende?

Um Complianceanforderungen zu erfüllen, wurden die Zertifizierungsstellenzertifikate des Hostservers von BaltimoreCyberTrustRoot in DigiCertGlobalRootG2 geändert. Mit diesem Update können Datenbankverbindungen, die den PHP-Clienttreiber mit enableRedirect verwenden, keine Verbindung mehr mit dem Server herstellen, da die Clientgeräte nichts von der Zertifikatsänderung und den neuen Details der Stammzertifizierungsstelle wissen. Clientgeräte, die PHP-Umleitungstreiber verwenden, verbinden sich direkt mit dem Hostserver, um das Gateway zu umgehen. Weitere Informationen zur Architektur von Azure Database for MySQL Single Server finden Sie unter diesem Link.

Wie gehe ich vor, wenn ich weitere Fragen habe?

Bei Fragen können Sie Antworten von Communityexperten unter Microsoft Q&A erhalten. Wenn Sie über einen Supportplan verfügen und technische Hilfe benötigen, kontaktieren Sie uns.