Informatie over de wijzigingen in de basis-CA-wijziging voor Azure Database for MySQL enkele server
VAN TOEPASSING OP: Azure Database for MySQL - enkele server
Belangrijk
Azure Database for MySQL enkele server bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan een upgrade uit te voeren naar een flexibele Azure Database for MySQL-server. Zie Wat gebeurt er met Azure Database for MySQL Enkele server voor meer informatie over migreren naar Azure Database for MySQL Flexibele server ?
Azure Database for MySQL enkele server als onderdeel van de aanbevolen procedures voor standaardonderhoud en beveiliging voltooien de wijziging van het basiscertificaat vanaf oktober 2022. 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.
Notitie
Dit artikel is van toepassing op Azure Database for MySQL - Alleen enkele server . Voor Azure Database for MySQL - Flexible Server is het certificaat dat nodig is voor communicatie via SSL DigiCert Global Root CA
Dit artikel bevat verwijzingen naar de term slave, een term die Microsoft niet meer gebruikt. Zodra de term uit de software wordt verwijderd, verwijderen we deze uit dit artikel.
Waarom is een update van het basiscertificaat vereist?
Azure Database for MySQL-gebruikers kunnen alleen het vooraf gedefinieerde certificaat gebruiken om verbinding te maken met hun MySQL-server, die zich hier bevindt. Het browserforum van de certificeringsinstantie (CA) heeft onlangs rapporten gepubliceerd van meerdere certificaten die door CA-leveranciers zijn uitgegeven 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 MySQL een van deze niet-compatibele certificaten heeft gebruikt, moesten we het certificaat roteren naar de compatibele versie om de potentiële bedreiging voor uw MySQL-servers te minimaliseren.
Moet ik wijzigingen aanbrengen op mijn client om de connectiviteit te behouden?
Als u de onderstaande stappen hebt gevolgd onder Een gecombineerd CA-certificaat maken, kunt u verbinding blijven maken zolang het BaltimoreCyberTrustRoot-certificaat niet wordt verwijderd uit het gecombineerde CA-certificaat. Om de connectiviteit te behouden, raden we u aan om de BaltimoreCyberTrustRoot in uw gecombineerde CA-certificaat tot nader op de hoogte te houden.
Een gecombineerd CA-certificaat maken
Gebruik de volgende stappen om te voorkomen dat de beschikbaarheid van uw toepassing wordt onderbroken omdat certificaten onverwacht worden ingetrokken of als u een certificaat wilt bijwerken dat is ingetrokken. Het idee is om een nieuw PEM-bestand te maken, dat het huidige certificaat en het nieuwe certificaat combineert en tijdens de validatie van het SSL-certificaat een van de toegestane waarden gebruikt. Raadpleeg de volgende stappen:
Download BaltimoreCyberTrustRoot & DigiCertGlobalRootG2 Root CA via de volgende koppelingen:
Genereer een gecombineerd CA-certificaatarchief met zowel BaltimoreCyberTrustRoot - als DigiCertGlobalRootG2-certificaten .
Voor Gebruikers van Java (MySQL Connector/J) voert u het volgende uit:
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
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 (MySQL Connector/NET, MySQLConnector) moet u ervoor zorgen dat BaltimoreCyberTrustRoot en DigiCertGlobalRootG2 beide bestaan in het Windows-certificaatarchief, vertrouwde basiscertificeringsinstanties. Als er geen certificaten bestaan, importeert u het ontbrekende certificaat.
Voor .NET-gebruikers in Linux die gebruikmaken 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 gebruikers van (MySQL Client/MySQL Workbench/C/C++/Python/Ruby/PHP/NodeJS/Perl/Swift) kunt u twee CA-certificaatbestanden samenvoegen in de volgende indeling:
-----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 in de toekomst aan de serverzijde is geïmplementeerd, kunt u 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 nadat de wijziging is voltooid en dan is het veilig om het Baltimore-certificaat te verwijderen.
Wat gebeurt er als we het BaltimoreCyberTrustRoot-certificaat hebben verwijderd?
Er treden connectiviteitsfouten op tijdens het maken van verbinding met uw Azure Database for MySQL-server. U moet SSL opnieuw configureren met het BaltimoreCyberTrustRoot-certificaat om de connectiviteit te behouden.
Veelgestelde vragen
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.
Wanneer ondergaat mijn exemplaar van één server een wijziging in het basiscertificaat?
De migratie van BaltimoreCyberTrustRoot naar DigiCertGlobalRootG2 wordt uitgevoerd in alle regio's van Azure vanaf oktober 2022 in fasen. Volg de stappen onder Een gecombineerd CA-certificaat maken om ervoor te zorgen dat u geen verbinding met uw server verliest. Gecombineerd CA-certificaat zorgt voor connectiviteit via SSL met uw exemplaar van één server met een van deze twee certificaten.
Wanneer kan ik het BaltimoreCyberTrustRoot-certificaat volledig verwijderen?
Zodra de migratie is voltooid in alle Azure-regio's, verzenden we een communicatiebericht dat u veilig bent om één CA DigiCertGlobalRootG2-certificaat te wijzigen.
Ik geef geen CA-certificaat op tijdens het maken van verbinding met mijn exemplaar van één server via SSL, moet ik nog steeds de bovenstaande stappen uitvoeren?
Als u zowel het CA-basiscertificaat in uw vertrouwde basisarchief hebt, zijn er geen verdere acties vereist. Dit geldt ook voor de clientstuurprogramma's die gebruikmaken van het lokale archief voor toegang tot het basis-CA-certificaat.
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 basiscertificaat 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.
Hoe kan ik weten of ik SSL/TLS gebruik met verificatie van het basiscertificaat?
U kunt bepalen of uw verbindingen het basiscertificaat verifiëren door uw verbindingsreeks te controleren.
- Als uw verbindingsreeks bevat
sslmode=verify-ca
ofsslmode=verify-identity
, moet u het certificaat bijwerken. - Als uw verbindingsreeks certificaten bevat
sslmode=disable
,sslmode=allow
ofsslmode=prefer
alssslmode=require
u 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 de verbindingsreeks wordt geabstraheerd, raadpleegt u de documentatie van de client om te begrijpen of certificaten worden geverifieerd.
Wat is de impact van het gebruik van App Service met Azure Database for MySQL?
Voor Azure-app-services die verbinding maken met Azure Database for MySQL, zijn er twee mogelijke scenario's, 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 geen actie te ondernemen. Dit is het meest voorkomende scenario.
- Als u expliciet het pad naar het SSL-certificaatbestand in uw code opgeeft, moet u het nieuwe certificaat downloaden en een gecombineerd certificaat produceren zoals hierboven vermeld en het certificaatbestand gebruiken. Een goed voorbeeld van dit scenario is wanneer u aangepaste containers in App Service gebruikt als gedeeld in de App Service-documentatie. Dit is een ongebruikelijk scenario, maar we hebben gezien dat sommige gebruikers dit gebruiken.
Wat is de impact van het gebruik van Azure Kubernetes Services (AKS) met Azure Database for MySQL?
Als u verbinding probeert te maken met Azure Database for MySQL met behulp van Azure Kubernetes Services (AKS), is dit vergelijkbaar met toegang vanuit een toegewezen klantenhostomgeving. Raadpleeg de stappen hier.
Wat is de impact van het gebruik van Azure Data Factory om verbinding te maken met Azure Database for MySQL?
Voor een connector die Gebruikmaakt van Azure Integration Runtime, gebruikt de connector 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 een connector die gebruikmaakt van zelf-hostende Integration Runtime, waarbij u het pad naar het SSL-certificaatbestand expliciet opneemt in uw verbindingsreeks, moet u het nieuwe certificaat downloaden en de verbindingsreeks bijwerken om het te gebruiken.
Moet ik onderhoud van een databaseserver plannen voor deze wijziging?
Nee Omdat de wijziging zich alleen aan de clientzijde bevindt om verbinding te maken met de databaseserver, is er geen uitvaltijd voor onderhoud nodig voor de databaseserver voor deze wijziging.
Hoe vaak werkt Microsoft hun certificaten bij of wat is het verloopbeleid?
Deze certificaten die door Azure Database for MySQL 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 in 2025 te verlopen, zodat Microsoft een certificaatwijziging moet 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.
Als ik leesreplica's gebruik, moet ik deze update alleen uitvoeren op de bronserver 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.
Als ik gegevensreplicatie gebruik, moet ik een actie uitvoeren?
Als u replicatie van gegevens gebruikt om verbinding te maken met Azure Database for MySQL, moet u rekening houden met het volgende:
Als de gegevensreplicatie afkomstig is van een virtuele machine (on-premises of virtuele Azure-machine) naar Azure Database for MySQL, moet u controleren of SSL wordt gebruikt om de replica te maken. Voer SHOW SLAVE STATUS uit en controleer de volgende instelling.
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
Als u ziet dat het certificaat is opgegeven voor de CA_file, SSL_Cert en SSL_Key, moet u het bestand bijwerken door het nieuwe certificaat toe te voegen en een gecombineerd certificaatbestand te maken.
Als de gegevensreplicatie zich tussen twee Azure Database for MySQL-servers bevindt, moet u de replica opnieuw instellen door CALL mysql.az_replication_change_master uit te voeren en het nieuwe dubbele basiscertificaat op te geven als de laatste parameter master_ssl_ca.
Is er een query aan de serverzijde om te bepalen 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.
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.
Waarom moet ik mijn basiscertificaat bijwerken als ik php-stuurprogramma gebruik met enableRedirect?
Om aan de nalevingsvereisten te voldoen, zijn de CA-certificaten van de hostserver gewijzigd van BaltimoreCyberTrustRoot in DigiCertGlobalRootG2. Met deze update kunnen databaseverbindingen met behulp van het PHP-clientstuurprogramma met enableRedirect geen verbinding meer maken met de server, omdat de clientapparaten zich niet bewust zijn van de wijziging van het certificaat en de nieuwe basis-CA-gegevens. Clientapparaten die PHP-omleidingsstuurprogramma's gebruiken, maken rechtstreeks verbinding met de hostserver en omzeilen de gateway. Raadpleeg deze koppeling voor meer informatie over architectuur van azure Database for MySQL enkele server.
Wat gebeurt er als ik nog vragen heb?
Voor vragen kunt u antwoorden krijgen van community-experts in Microsoft Q&A. Neem contact met ons op als u een ondersteuningsplan hebt en technische hulp nodig hebt.