Memahami perubahan dalam perubahan CA Akar untuk server tunggal Azure Database for MySQL

BERLAKU UNTUKAzure Database for MySQL - Server Tunggal

Penting

Server tunggal Azure Database for MySQL berada di jalur penghentian. Kami sangat menyarankan Agar Anda meningkatkan ke server fleksibel Azure Database for MySQL. Untuk informasi selengkapnya tentang migrasi ke server fleksibel Azure Database for MySQL, lihat Apa yang terjadi pada Server Tunggal Azure Database for MySQL?

Server tunggal Azure Database for MySQL sebagai bagian dari pemeliharaan standar dan praktik terbaik keamanan akan menyelesaikan perubahan sertifikat akar mulai Oktober 2022. Artikel ini memberi Anda detail selengkapnya tentang perubahan yang akan datang, sumber daya yang akan terpengaruh, dan langkah-langkah yang diperlukan untuk memastikan bahwa aplikasi Anda mempertahankan konektivitas ke server database Anda.

Catatan

Artikel ini berlaku HANYA untuk Azure Database for MySQL - Server Tunggal. Untuk Azure Database for MySQL - Server Fleksibel, sertifikat yang diperlukan untuk berkomunikasi melalui SSL adalah DigiCert Global Root CA

Artikel ini berisi referensi ke istilah slave, istilah yang tidak lagi digunakan Microsoft. Saat istilah dihapus dari perangkat lunak, kami akan menghapusnya dari artikel ini.

Mengapa pembaruan sertifikat akar diperlukan?

Pengguna Azure Database for MySQL hanya dapat menggunakan sertifikat yang telah ditentukan untuk menyambungkan ke server MySQL mereka yang berada di sini. Tetapi, forum SQL Browser Otoritas Sertifikat (OS) baru-baru ini menerbitkan laporan bahwa beberapa sertifikat yang dikeluarkan oleh vendor OS tidak sesuai.

Berdasarkan persyaratan kepatuhan industri, vendor CA mulai mencabut sertifikat CA dari CA yang tidak patuh dan mengharuskan server untuk menggunakan sertifikat yang dikeluarkan oleh CA yang patuh dan ditandatangani oleh sertifikat CA dari CA yang patuh. Karena Azure Database for MySQL menggunakan salah satu sertifikat yang tidak sesuai ini, kami perlu memutar sertifikat ke versi yang sesuai untuk meminimalkan potensi ancaman terhadap server MySQL Anda.

Apakah saya perlu membuat perubahan pada klien saya untuk mempertahankan konektivitas?

Jika Anda mengikuti langkah-langkah yang disebutkan di bawah buat sertifikat OS sertifikat digital di bawah ini, Anda masih dapat terus tersambung selama BaltimoreCyberTrustRoot sertifikat tidak dihapus dari sertifikat digital. Untuk menjaga konektivitas, kami sarankan untuk tidak menghapus BaltimoreCyberTrustRoot dari sertifikat CA gabungan Anda sampai ada pemberitahuan lebih lanjut.

Buat sertifikat OS gabungan

Untuk menghindari gangguan ketersediaan aplikasi Anda sebagai akibat dari sertifikat yang tiba-tiba dicabut, atau untuk memperbarui sertifikat yang telah dicabut, gunakan langkah-langkah berikut. Tujuan dari hal ini adalah untuk membuat file .pem baru, yang menggabungkan sertifikasi saat ini dengan yang baru dan selama validasi sertifikasi SSL, salah satu nilai yang diizinkan akan digunakan. Lihat langkah-langkah berikut:

  1. Unduh CA Akar BaltimoreCyberTrustRoot & DigiCertGlobalRootG2 dari tautan di bawah ini:

  2. Buat simpanan sertifikat CA gabungan dengan BaltimoreCyberTrustRoot dan disertakan sertifikat DigiCertGlobalRootG2.

    • Untuk pengguna Java (MySQL Connector/J), jalankan:

      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
      

      Kemudian ganti file keystore asli dengan yang baru dihasilkan:

      • System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file");
      • System.setProperty("javax.net.ssl.trustStorePassword","password");
    • Untuk pengguna .NET (MySQL Connector/NET, MySQLConnector), pastikan BaltimoreCyberTrustRoot dan DigiCertGlobalRootG2 keduanya ada di Penyimpanan Sertifikat Windows, Otoritas Sertifikasi Akar Tepercaya. Jika ada sertifikat yang tidak tersedia, impor sertifikat yang hilang.

      Azure Database for MySQL .NET cert diagram

    • Untuk pengguna .NET di Linux menggunakan SSL_CERT_DIR, pastikan BaltimoreCyberTrustRoot dan DigiCertGlobalRootG2 ada di direktori yang ditunjukkan oleh SSL_CERT_DIR. Jika ada sertifikat yang tidak tersedia, buat sertifikat yang hilang.

    • Untuk pengguna lain (MySQL Client/MySQL Workbench/C/C++/Go/Python/Ruby/PHP/NodeJS/Perl/Swift), Anda dapat menggabungkan dua file sertifikat CA seperti format berikut ini:

      -----BEGIN CERTIFICATE-----
      (Root CA1: BaltimoreCyberTrustRoot.crt.pem)
      -----END CERTIFICATE-----
      -----BEGIN CERTIFICATE-----
      (Root CA2: DigiCertGlobalRootG2.crt.pem)
      -----END CERTIFICATE-----
      
  3. Ganti file pem CA akar asli dengan file CA root gabungan dan hidupkan ulang aplikasi / klien Anda.

    Selanjutnya, setelah sertifikat baru disebarkan ke sisi server, Anda dapat mengubah file pem CA Anda menjadi DigiCertGlobalRootG2.crt.pem.

Catatan

Harap jangan hapus atau mengubah Baltimore sertifikat sampai perubahan sertifikasi dilakukan. Kami akan mengirim komunikasi setelah perubahan selesai dan kemudian akan aman untuk menjatuhkan sertifikat Baltimore.

Bagaimana jika kita menghapus sertifikat BaltimoreCyberTrustRoot?

Anda akan mulai menemui kesalahan konektivitas saat menyambungkan ke server Azure Database for MySQL Anda. Anda perlu mengonfigurasikan SSL dengan BaltimoreCyberTrustRoot sertifikat lagi untuk menjaga konektivitas.

Pertanyaan yang Sering Ditanyakan

Jika saya tidak menggunakan SSL/TLS, apakah saya masih perlu memperbarui CA akar?

Tidak ada tindakan diperlukan jika Anda tidak menggunakan SSL/ TLS.

Kapan instans server tunggal saya akan mengalami perubahan sertifikat akar?

Migrasi dari BaltimoreCyberTrustRoot ke DigiCertGlobalRootG2 akan dilakukan di semua wilayah Azure mulai Oktober 2022 secara bertahap. Untuk memastikan bahwa Anda tidak kehilangan konektivitas ke server Anda, ikuti langkah-langkah yang disebutkan di bawah Buat sertifikat CA gabungan. Sertifikat OS gabungan akan memungkinkan konektivitas melalui SSL ke instans server tunggal Anda dengan salah satu dari dua sertifikat ini.

Kapan saya dapat menghapus sertifikat BaltimoreCyberTrustRoot sepenuhnya?

Setelah migrasi berhasil diselesaikan di semua wilayah Azure, kami akan mengirim posting komunikasi yang aman untuk mengubah satu sertifikat CA DigiCertGlobalRootG2 .

Saya tidak menentukan sertifikasi CA saat menyambungkan ke instans server tunggal saya melalui SSL, apakah saya masih perlu melakukan langkah-langkah yang disebutkan di atas?

Jika Anda memiliki sertifikat akar CA di penyimpanan akar tepercaya Anda, maka tidak ada tindakan lebih lanjut yang diperlukan. Ini juga berlaku untuk driver klien Anda yang menggunakan penyimpanan lokal untuk mengakses sertifikat OS akar.

Jika saya menggunakan SSL / TLS, apakah saya perlu menghidupkan ulang server database saya untuk memperbarui CA akar?

Tidak, Anda tidak perlu memulai ulang server database untuk mulai menggunakan sertifikat baru. Sertifikat akar ini merupakan perubahan pada sisi komputer klien dan koneksi komputer klien masuk perlu menggunakan sertifikat baru untuk memastikan bahwa mereka dapat tersambung ke server database.

Bagaimana cara mengetahui jika saya menggunakan SSL/TLS dengan verifikasi sertifikat akar?

Anda dapat mengidentifikasi apakah koneksi Anda memverifikasi sertifikat akar dengan meninjau string koneksi Anda.

  • Jika string koneksi Anda termasuk sslmode=verify-ca atau sslmode=verify-identity, Anda perlu memperbarui sertifikat.
  • Jika string koneksi Anda termasuk sslmode=disable, sslmode=allow, sslmode=prefer, atau sslmode=require, Anda tidak perlu memperbarui sertifikat.
  • Jika string koneksi Anda tidak menentukan sslmode, Anda tidak perlu memperbarui sertifikat.

Jika Anda menggunakan klien yang mengabstraksi string koneksi, tinjau dokumentasi klien untuk memahami apakah itu memverifikasi sertifikat.

Apa dampak dari menggunakan App Service dengan Azure Database for MySQL?

Untuk layanan aplikasi Azure yang tersambung ke Azure Database for MySQL, terdapat dua kemungkinan yang tergantung pada cara Anda menggunakan SSL dengan aplikasi Anda.

  • Sertifikat baru ini telah ditambahkan ke App Service di tingkat platform. Jika Anda menggunakan sertifikat SSL yang disertakan pada platform App Service di aplikasi Anda, maka tidak ada tindakan yang diperlukan. Ini adalah skenario yang paling umum.
  • Jika Anda menyertakan jalur ke file sertifikasi SSL dalam kode Anda, maka Anda harus mengunduh sertifikasi baru dan menghasilkan sertifikat gabungan seperti yang disebutkan di atas dan menggunakan file sertifikat. Contoh yang baik dari skenario ini adalah ketika Anda menggunakan kontainer kustom di App Service seperti yang dibagikan dalam Dokumentasi App Service. Ini adalah skenario yang tidak biasa tetapi kami telah menemukan beberapa pengguna yang menggunakan ini.

Apa dampak dari menggunakan Azure Kubernetes Services (AKS) dengan Azure Database for MySQL?

Jika Anda mencoba untuk tersambung ke Azure Database for MySQL menggunakan Azure Kubernetes Services (AKS), itu mirip dengan akses dari lingkungan host pelanggan khusus. Lihat langkah-langkahnya di sini.

Apa dampak dari menggunakan Azure Data Factory untuk menyambungkan ke Azure Database for MySQL?

Untuk konektor yang menggunakan Azure Integration Runtime, konektor menggunakan sertifikat di Penyimpanan Sertifikat Windows dari lingkungan yang di-hosting Azure. Sertifikat ini sudah kompatibel dengan sertifikat yang baru diterapkan sehingga tidak ada tindakan yang diperlukan.

Untuk konektor yang menggunakan Integration Runtime yang di-hosting Sendiri di mana Anda secara eksplisit menyertakan jalur ke file sertifikasi SSL dalam string koneksi Anda, Anda harus mengunduh sertifikat baru dan memperbarui string koneksi untuk menggunakannya.

Apakah saya perlu merencanakan waktu henti pemeliharaan server database untuk perubahan ini?

Tidak. Karena perubahan ini hanya pada sisi komputer klien untuk tersambung ke server database, tidak ada waktu henti pemeliharaan yang diperlukan untuk server database dari perubahan ini.

Seberapa sering Microsoft memperbarui sertifikatnya atau apa kebijakan kedaluwarsanya?

Sertifikat yang digunakan oleh Azure Database for MySQL disediakan oleh Otoritas Sertifikat (CA) tepercaya. Jadi dukungan sertifikat ini terkait dengan dukungan sertifikat ini berdasarkan CA. Sertifikat BaltimoreCyberTrustRoot dijadwalkan berakhir pada tahun 2025 sehingga Microsoft perlu melakukan perubahan sertifikat sebelum kedaluwarsa. Selain itu, jika ada bug yang tidak terduga dalam sertifikat yang telah ditentukan sebelumnya, Microsoft harus membuat rotasi sertifikat semirip mungkin dengan perubahan yang dilakukan pada 15 Februari 2021 untuk memastikan layanan aman dan patuh setiap saat.

Jika saya menggunakan replika baca, apakah saya perlu melakukan pembaruan hanya di server utama atau semua replika baca?

Karena pembaruan ini adalah perubahan sisi komputer klien, jika komputer klien pernah membaca data dari server replika, Anda juga akan perlu menerapkan perubahan untuk komputer klien tersebut.

Jika saya menggunakan Data dalam replikasi, apakah saya perlu melakukan tindakan?

Jika Anda menggunakanData dalam replikasi untuk menyambungkan ke Azure Database for MySQL, ada dua hal yang perlu dipertimbangkan:

  • Jika replikasi data berasal dari mesin virtual (on-prem atau komputer virtual Azure) ke Azure Database for MySQL, Anda perlu memeriksa apakah SSL pernah digunakan untuk membuat replika. Jalankan SHOW SLAVE STATUS dan periksa pengaturan berikut.

    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
    

    Jika Anda melihat sertifikat disediakan untuk CA_file, SSL_Cert, dan SSL_Key, Anda harus memperbarui file dengan menambahkan sertifikat baru dan membuat file sertifikasi gabungan.

  • Jika replikasi data berada di antara dua Azure Database for MySQL, maka Anda harus mengatur ulang replika dengan mengeksekusi PANGGIL mysql.az_replication_change_master dan memberikan sertifikat akar ganda baru sebagai parameter akhir master_ssl_ca.

Apakah ada kueri sisi server untuk mengetahui bilamana SSL sedang digunakan?

Untuk memverifikasi apakah Anda menggunakan koneksi SSL untuk menyambungkan ke server, lihat SSL verifikasi.

Apakah ada tindakan yang diperlukan jika saya sudah memiliki DigiCertGlobalRootG2 dalam file sertifikat saya?

Tidak. Tidak ada tindakan yang diperlukan jika file sertifikat Anda sudah memiliki DigiCertGlobalRootG2.

Mengapa saya perlu untuk perbarui sertifikat akar saya jika saya menggunakan driver PHP dengan enableRedirect ?

Untuk memenuhi persyaratan kepatuhan, sertifikat digital CA server host diubah dari BaltimoreCyberTrustRoot menjadi DigiCertGlobalRootG2. Dengan pembaruan ini, koneksi data menggunakan driver Klien PHP dengan enableRedirect tidak dapat lagi tersambungkan ke server, karena perangkat klien tidak menyadari adanya perubahan sertifikat dan detail OS akar baru. Perangkat klien yang menggunakan PHP:Hypertext Preprocessor pengalihan driver terhubung langsung ke server penyelenggara, melalui gateway. Lihat tautan ini untuk informasi selengkapnya tentang arsitektur server tunggal Azure Database for MySQL.

Bagaimana jika saya memiliki pertanyaan lain?

Jika Anda memiliki pertanyaan, dapatkan jawabannya dari pakar komunitas di Microsoft Q&A. Jika Anda memiliki rencana dukungan dan Anda memerlukan bantuan teknis, hubungi kami.