다음을 통해 공유


Azure Database for MySQL에 대한 루트 인증서 회전

보안 및 규정 준수 표준을 유지하기 위해 2025년 9월 1일 이후에 Azure Database for MySQL 유연한 서버에 대한 루트 인증서를 변경하기 시작합니다.

현재 루트 인증서 DigiCert 전역 루트 CA 는 두 개의 새 루트 인증서로 대체됩니다.

  • DigiCert 글로벌 루트 G2
  • Microsoft RSA 루트 인증 기관 2017

루트 인증서 확인과 함께 TLS(전송 계층 보안)를 사용하는 경우 전환 기간 동안 세 개의 루트 인증서가 모두 설치되어 있어야 합니다. 모든 인증서가 변경되면 저장소에서 이전 SHA-1 루트 인증서 DigiCert Global Root CA 를 제거할 수 있습니다. 2025년 9월 1일 이전에 새 인증서를 추가하지 않으면 데이터베이스에 대한 연결이 실패합니다.

이 문서에서는 두 개의 새 루트 인증서를 추가하는 방법에 대한 지침과 자주 묻는 질문에 대한 답변을 제공합니다.

Note

SHA-1의 지속적인 사용이 차단기이고 일반 출시 전에 인증서를 변경하려는 경우 이 문서의 지침에 따라 클라이언트에서 결합된 CA(인증 기관) 인증서를 만듭니다. 그런 다음 지원 요청을 열어 Azure Database for MySQL에 대한 인증서를 회전합니다.

루트 인증서 업데이트가 필요한 이유는 무엇인가요?

Azure Database for MySQL 사용자는 미리 정의된 인증서만 사용하여 MySQL 서버 인스턴스에 연결할 수 있습니다. 이러한 인증서는 루트 인증 기관에서 서명합니다. 현재 인증서는 DigiCert 글로벌 루트 CA에 의해 서명됩니다. SHA-1을 사용합니다. SHA-1 해시 알고리즘은 검색된 취약성으로 인해 상당히 안전하지 않습니다. 더 이상 보안 표준을 준수하지 않습니다.

문제를 해결하려면 규격 루트 인증 기관에서 서명한 인증서로 순환해야 합니다.

클라이언트에서 루트 인증서 저장소를 업데이트하는 방법

애플리케이션이 루트 인증서 회전 후 Azure Database for MySQL에 연결할 수 있도록 하려면 클라이언트에서 루트 인증서 저장소를 업데이트합니다. 루트 인증서 확인과 함께 SSL/TLS를 사용하는 경우 루트 인증서 저장소를 업데이트합니다.

다음 단계에서는 클라이언트에서 루트 인증서 저장소를 업데이트하는 프로세스를 안내합니다.

  1. 세 개의 루트 인증서를 다운로드합니다. DigiCert 글로벌 루트 CA 인증서를 설치한 경우 첫 번째 다운로드를 건너뛸 수 있습니다.

  2. DigiCert 글로벌 루트 CA 인증서를 다운로드합니다.

  3. DigiCert 글로벌 루트 G2 인증서를 다운로드합니다.

  4. Microsoft RSA 루트 인증 기관 2017 인증서를 다운로드합니다.

  5. 다운로드한 인증서를 클라이언트 인증서 저장소에 추가합니다. 프로세스는 클라이언트 유형에 따라 달라집니다.

Java 클라이언트 업데이트

루트 인증서 회전에 대한 Java 클라이언트 인증서를 업데이트하려면 다음 단계를 수행합니다.

신뢰할 수 있는 새 루트 인증서 저장소 만들기

Java 사용자의 경우 다음 명령을 실행하여 신뢰할 수 있는 루트 인증서 저장소를 만듭니다.

keytool -importcert -alias MySqlFlexServerCACert  -file digiCertGlobalRootCA.crt.pem  -keystore truststore -storepass password -noprompt
keytool -importcert -alias MySqlFlexServerCACert2  -file digiCertGlobalRootG2.crt.pem -keystore truststore -storepass password -noprompt
keytool -importcert -alias MicrosoftRSARootCert2017  -file MicrosoftRSARootCertificateAuthority2017.crt -keystore truststore -storepass password -noprompt

그런 다음 원래 키 저장소 파일을 새로 생성된 키 저장소 파일로 바꿉다.

  • System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file");
  • System.setProperty("javax.net.ssl.trustStorePassword","password");

신뢰할 수 있는 기존 루트 인증서 저장소 업데이트

Java 사용자의 경우 다음 명령을 실행하여 신뢰할 수 있는 새 루트 인증서를 기존 신뢰할 수 있는 루트 인증서 저장소에 추가합니다.

keytool -importcert -alias MySqlFlexServerCACert2  -file digiCertGlobalRootG2.crt.pem -keystore truststore -storepass password -noprompt
keytool -importcert -alias MicrosoftRSARootCert2017  -file MicrosoftRSARootCertificateAuthority2017.crt -keystore truststore -storepass password -noprompt

기존 키 저장소를 업데이트하는 경우 및 javax.net.ssl.trustStorePassword 속성을 변경할 javax.net.ssl.trustStore 필요가 없습니다.

.NET 클라이언트 업데이트

루트 인증서 회전에 대한 .NET 클라이언트 인증서를 업데이트하려면 다음 단계를 수행합니다.

Windows의 .NET

Windows의 .NET 사용자의 경우 DigiCert Global Root CA, DigiCert Global Root G2Microsoft RSA 루트 인증 기관 2017 이 신뢰할 수 있는 루트 인증 기관의 Windows 인증서 저장소에 있는지 확인합니다. 인증서가 없으면 가져옵니다.

Azure Database for MySQL .NET 인증서의 스크린샷.

Linux의 .NET

Linux에서 사용하는 SSL_CERT_DIR.NET 사용자의 경우 , DigiCertGlobalRootG2.crt.pemMicrosoft RSA Root Certificate Authority 2017.crt.pem 로 표시된 SSL_CERT_DIR디렉터리에 있는지 확인DigiCertGlobalRootCA.crt.pem합니다. 인증서가 없으면 누락된 인증서 파일을 만듭니다.

Microsoft RSA Root Certificate Authority 2017.crt 다음 명령을 실행하여 인증서를 PEM 형식으로 변환합니다.

openssl x509 -inform der -in MicrosoftRSARootCertificateAuthority2017.crt -out MicrosoftRSARootCertificateAuthority2017.crt.pem

기타 클라이언트

다른 클라이언트를 사용하는 다른 사용자의 경우 세 개의 루트 인증서를 모두 포함하는 결합된 인증서 파일을 만들어야 합니다.

다른 클라이언트는 다음과 같습니다.

  • MySQL Workbench
  • C 또는 C++
  • 가라
  • 파이썬
  • 루비
  • PHP
  • Node.js
  • Perl
  • 재빠르다

단계

  1. 새 텍스트 파일을 만들고 다음으로 저장합니다. combined-ca-certificates.pem
  2. 세 인증서 파일의 내용을 복사하여 다음 형식으로 이 단일 파일에 붙여넣습니다.
-----BEGIN CERTIFICATE-----
(Content from DigiCertGlobalRootCA.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Content from DigiCertGlobalRootG2.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Content from MicrosoftRSARootCertificateAuthority2017.crt.pem)
-----END CERTIFICATE-----

데이터 내 복제 MySQL

주 복제본과 복제본이 모두 Azure에서 호스트되는 데이터 인 복제의 경우 CA 인증서 파일을 다음 형식으로 병합할 수 있습니다.

SET @cert = '-----BEGIN CERTIFICATE-----
(Root CA1:DigiCertGlobalRootCA.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Root CA2: DigiCertGlobalRootG2.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Root CA3: .crt.pem)
-----END CERTIFICATE-----'

다음과 같이 호출 mysql.az_replication_change_master 합니다.

CALL mysql.az_replication_change_master('master.companya.com', 'syncuser', 'P@ssword!', 3306, 'mysql-bin.000002', 120, @cert);

Important

복제본 서버를 다시 부팅합니다.