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 wird eingestellt. Es wird dringend empfohlen, ein Upgrade auf Azure Database for MySQL Flexible Server auszufü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 as part of standard maintenance and security best practices complete the root certificate change starting October 2022. 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.
Gemäß den Complianceanforderungen der Branche begannen Zertifizierungsstellenanbieter, Zertifizierungsstellenzertifikate für nicht kompatible Zertifizierungsstellen zu widerrufen, die Server zur Verwendung von Zertifikaten, die von konformen Zertifizierungsstellen ausgestellt wurden, und von Zertifizierungsstellenzertifikaten von diesen konformen Zertifizierungsstellen signiert. Da azure Database for MySQL eines dieser nicht kompatiblen Zertifikate verwendet hat, mussten wir das Zertifikat in die kompatible Version drehen, 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:
Laden Sie die Stammzertifizierungsstellen BaltimoreCyberTrustRoot und DigiCertGlobalRootG2 über die folgenden Links herunter:
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.
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-----
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?
Beim Herstellen einer Verbindung mit Ihrer Azure-Datenbank für MySQL-Server treten Verbindungsfehler 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 meine Einzelserverinstanz einer Änderung des Stammzertifikats unterzogen?
Die Migration von BaltimoreCyberTrustRoot zu DigiCertGlobalRootG2 wird in allen Regionen von Azure ab Oktober 2022 in Phasen durchgeführt. Um sicherzustellen, dass keine Verbindung mit Ihrem Server verloren geht, führen Sie die unter "Erstellen eines kombinierten Zertifizierungsstellenzertifikats" genannten Schritte aus. 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 erfolgreich in allen Azure-Regionen abgeschlossen wurde, senden wir einen Kommunikationsbeitrag, den Sie sicher sind, einzelnes CA DigiCertGlobalRootG2-Zertifikat zu ändern.
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
odersslmode=verify-identity
enthält, müssen Sie das Zertifikat aktualisieren. - Wenn Ihre Verbindungszeichenfolge
sslmode=disable
,sslmode=allow
,sslmode=prefer
odersslmode=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.
Für einen Connector mit self-hosted Integration Runtime, in dem Sie explizit den Pfad zur SSL-Zertifikatdatei in Ihre Verbindungszeichenfolge einschließen, müssen Sie das neue Zertifikat herunterladen und die Verbindungszeichenfolge aktualisieren, um es zu verwenden.
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. Der Ab lauf des BaltimoreCyberTrustRoot-Zertifikats ist auf 2025 geplant, sodass Microsoft vor dem Ablauf eine Zertifikatsänderung durchführen muss. Falls in diesen vordefinierten Zertifikaten unvorhergesehene Fehler auftreten, muss Microsoft die Zertifikatrotation frühestens ähnlich der Änderung vornehmen, die am 15. Februar 2021 durchgeführt wurde, um sicherzustellen, dass der Dienst sicher und kompatibel 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 die Clients anwenden, die Daten vom Replikatserver gelesen haben.
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 die 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 Zertifikatdatei erstellen.
Wenn die Datenreplikation zwischen zwei Azure-Datenbank für MySQL-Server liegt, 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 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.