فهم التغييرات في تغيير المرجع المصدق الجذر لقاعدة بيانات Azure ل MariaDB
أكملت قاعدة بيانات Azure ل MariaDB بنجاح تغيير الشهادة الجذر في 15 فبراير 2021 (02/15/2021) كجزء من أفضل ممارسات الصيانة والأمان القياسية. تمنحك هذه المقالة مزيدا من التفاصيل حول التغييرات والموارد المتأثرة والخطوات اللازمة لضمان احتفاظ التطبيق بالاتصال بخادم قاعدة البيانات.
ملاحظة
تحتوي هذه المقالة على مراجع لمصطلح slave، هو مصطلح لم تعد Microsoft تستخدمه. عند إزالة المصطلح من البرنامج، سنزيله من هذه المقالة.
لماذا يلزم تحديث شهادة الجذر؟
يمكن لقاعدة بيانات Azure لمستخدمي MariaDB فقط استخدام الشهادة المحددة مسبقا للاتصال بقاعدة بيانات Azure لخادم MariaDB، الموجود هنا. ومع ذلك، نشر منتدى مستعرض المرجع المصدق (CA) مؤخرا تقارير عن شهادات متعددة صادرة عن موردي المرجع المصدق لتكون غير متوافقة.
وفقا لمتطلبات الامتثال الخاصة بالصناعة، بدأ بائعو المراجع المصدقة في إلغاء شهادات CA للمراجع غير المتوافقة، مما يتطلب من الخوادم استخدام الشهادات الصادرة عن المراجع المصدقة المتوافقة، والموقعة بواسطة شهادات CA من تلك المراجع المصدقة المتوافقة. نظرا لأن قاعدة بيانات Azure ل MariaDB استخدمت إحدى هذه الشهادات غير المتوافقة، فقد احتجنا إلى تدوير الشهادة إلى الإصدار المتوافق لتقليل التهديد المحتمل لخوادم MySQL.
تم طرح الشهادة الجديدة ودخلت حيز التنفيذ اعتبارا من 15 فبراير 2021 (02/15/2021).
ما هو التغيير الذي تم إجراؤه في 15 فبراير 2021 (02/15/2021)؟
في 15 فبراير 2021 ، تم استبدال شهادة BaltimoreCyberTrustRoot بإصدار متوافق من نفس شهادة BaltimoreCyberTrustRoot لضمان عدم حاجة العملاء الحاليين إلى تغيير أي شيء وليس هناك أي تأثير على اتصالاتهم بالخادم. خلال هذا التغيير ، لم يتم استبدالشهادة BaltimoreCyberTrustRoot ب DigiCertGlobalRootG2 ويتم تأجيل هذا التغيير لإتاحة المزيد من الوقت للعملاء لإجراء التغيير.
هل أحتاج إلى إجراء أي تغييرات على عميلي للحفاظ على الاتصال؟
لا يوجد تغيير مطلوب من جانب العميل. إذا اتبعت توصيتنا السابقة أدناه ، فستظل قادرا على الاستمرار في الاتصال طالما لم تتم إزالة شهادة BaltimoreCyberTrustRoot من شهادة CA المدمجة. نوصي بعدم إزالة BaltimoreCyberTrustRoot من شهادة CA المدمجة حتى إشعار آخر للحفاظ على الاتصال.
التوصية السابقة
قم بتنزيل BaltimoreCyberTrustRootDigiCertGlobalRootG2& CA من الروابط أدناه:
أنشئ متجراً مدمجاً لشهادات CA مع تضمين شهادتي BaltimoreCyberTrustRoot وDigiCertGlobalRootG2.
بالنسبة لمستخدمي Java (موصل MariaDB / J) ، قم بتنفيذ:
keytool -importcert -alias MariaDBServerCACert -file D:\BaltimoreCyberTrustRoot.crt.pem -keystore truststore -storepass password -nopromptkeytool -importcert -alias MariaDBServerCACert2 -file D:\DigiCertGlobalRootG2.crt.pem -keystore truststore -storepass password -nopromptثم استبدل ملف keystore الأصلي بالملف الجديد الذي تم إنشاؤه:
System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file");System.setProperty("javax.net.ssl.trustStorePassword","password");
بالنسبة لمستخدمي .NET (موصل MariaDB / NET ، MariaDBConnector) ، تأكد من وجود كل من BaltimoreCyberTrustRoot و DigiCertGlobalRootG2 في Windows Certificate Store و Trusted Root Certification Authorities. في حالة عدم وجود أي شهادات، قم باستيراد الشهادة المفقودة.
بالنسبة لمستخدمي .NET على Linux باستخدام SSL_CERT_DIR ، تأكد من وجود كل من BaltimoreCyberTrustRoot و DigiCertGlobalRootG2 في الدليل المشار إليه SSL_CERT_DIR. في حالة عدم وجود أي شهادات، قم بإنشاء ملف الشهادة المفقود.
بالنسبة للمستخدمين الآخرين (عميل MariaDB / MariaDB Workbench / C / C ++ / Go / Python / Ruby / PHP / NodeJS / Perl / Swift) ، يمكنك دمج ملفين لشهادة CA مثل هذا التنسيق أدناه
-----BEGIN CERTIFICATE----- (Root CA1: BaltimoreCyberTrustRoot.crt.pem) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (Root CA2: DigiCertGlobalRootG2.crt.pem) -----END CERTIFICATE-----استبدل ملف CA pem الجذر الأصلي بملف CA الجذر المدمج وأعد تشغيل التطبيق/العميل.
في المستقبل ، بعد نشر الشهادة الجديدة على جانب الخادم ، يمكنك تغيير ملف CA pem إلى DigiCertGlobalRootG2.crt.pem.
لماذا لم يتم استبدال شهادة BaltimoreCyberTrustRoot إلى DigiCertGlobalRootG2 خلال هذا التغيير في 15 فبراير 2021؟
قمنا بتقييم استعداد العملاء لهذا التغيير وأدركنا أن العديد من العملاء كانوا يبحثون عن مهلة إضافية لإدارة هذا التغيير. من أجل توفير المزيد من المهلة الزمنية للعملاء للاستعداد ، قررنا تأجيل تغيير الشهادة إلى DigiCertGlobalRootG2 لمدة عام على الأقل لتوفير مهلة كافية للعملاء والمستخدمين النهائيين.
توصياتنا للمستخدمين هي ، استخدم الخطوات المذكورة أعلاه لإنشاء شهادة مدمجة والاتصال بالخادم الخاص بك ولكن لا تقم بإزالة شهادة BaltimoreCyberTrustRoot حتى نرسل رسالة لإزالتها.
ماذا لو أزلنا شهادة BaltimoreCyberTrustRoot؟
ستبدأ في حدوث أخطاء في الاتصال أثناء الاتصال بقاعدة بيانات Azure لخادم MariaDB. ستحتاج إلى تكوين طبقة المقابس الآمنة باستخدام شهادة BaltimoreCyberTrustRoot مرة أخرى للحفاظ على الاتصال.
الأسئلة المتداولة
1. إذا كنت لا أستخدم طبقة المقابس الآمنة / TLS ، فهل ما زلت بحاجة إلى تحديث المرجع المصدق الجذر؟
لا توجد إجراءات مطلوبة إذا كنت لا تستخدم طبقة المقابس الآمنة (SSL/TLS).
2. إذا كنت أستخدم SSL / TLS ، فهل أحتاج إلى إعادة تشغيل خادم قاعدة البيانات الخاص بي لتحديث المرجع المصدق الجذر؟
لا، لست بحاجة إلى إعادة تشغيل خادم قاعدة البيانات لبدء استخدام الشهادة الجديدة. تحديث الشهادة هو تغيير من جانب العميل، وتحتاج اتصالات العميل الواردة إلى استخدام الشهادة الجديدة للتأكد من أنه يمكنهم الاتصال بخادم قاعدة البيانات.
3. كيف أعمل معرفة ما إذا كنت أستخدم SSL / TLS مع التحقق من شهادة الجذر؟
يمكنك تحديد ما إذا كانت اتصالاتك تتحقق من الشهادة الجذر من خلال مراجعة سلسلة الاتصال.
- إذا كانت سلسلة الاتصال تتضمن
sslmode=verify-caأوsslmode=verify-identity، فأنت بحاجة إلى تحديث الشهادة. - إذا كانت سلسلة الاتصال تتضمن
sslmode=disableأو أوsslmode=prefersslmode=allowsslmode=require، فلن تحتاج إلى تحديث الشهادات. - إذا لم تحدد سلسلة الاتصال الخاصة بك وضع sslmode، فلن تحتاج إلى تحديث الشهادات.
إذا كنت تستخدم عميلا يقوم بتجريد سلسلة الاتصال بعيدا، فراجع وثائق العميل لفهم ما إذا كان يتحقق من الشهادات أم لا.
4. ما هو تأثير استخدام خدمة التطبيقات مع قاعدة بيانات Azure ل MariaDB؟
بالنسبة لخدمات تطبيقات Azure، والاتصال بقاعدة بيانات Azure ل MariaDB، هناك سيناريوهان محتملان اعتمادا على كيفية استخدامك لطبقة المقابس الآمنة مع تطبيقك.
- تمت إضافة هذه الشهادة الجديدة إلى App Service على مستوى النظام الأساسي. إذا كنت تستخدم شهادات SSL المضمنة في النظام الأساسي لخدمة التطبيقات في تطبيقك، فلن تكون هناك حاجة إلى اتخاذ أي إجراء. هذا هو السيناريو المعروف.
- إذا كنت تقوم بتضمين المسار إلى ملف شهادة SSL بشكل صريح في التعليمات البرمجية الخاصة بك ، فستحتاج إلى تنزيل الشهادة الجديدة وتحديث الرمز لاستخدام الشهادة الجديدة. مثال جيد على هذا السيناريو هو عند استخدام حاويات مخصصة في App Service كما هو مشترك في وثائق App Service. هذا سيناريو غير شائع ولكننا رأينا بعض المستخدمين يستخدمون هذا.
5. ما هو التأثير عند استخدام Azure Kubernetes Services (AKS) مع قاعدة بيانات Azure ل MariaDB؟
إذا كنت تحاول الاتصال بقاعدة بيانات Azure ل MariaDB باستخدام Azure Kubernetes Services (AKS)، فهذا يشبه الوصول من بيئة مضيفة مخصصة للعملاء. ارجع إلى الخطوات هنا.
6. ما هو التأثير عند استخدام Azure Data Factory للاتصال بقاعدة بيانات Azure ل MariaDB؟
بالنسبة للموصل الذي يستخدم Azure Integration Runtime، يستخدم الموصل الشهادات في مخزن شهادات Windows في البيئة المستضافة بواسطة Azure. هذه الشهادات متوافقة بالفعل مع الشهادات المطبقة حديثا وبالتالي لا يلزم اتخاذ أي إجراء.
بالنسبة للموصل الذي يستخدم Integration Runtime المستضافة ذاتيا حيث تقوم بتضمين المسار إلى ملف شهادة SSL بشكل صريح في سلسلة الاتصال، ستحتاج إلى تنزيل الشهادة الجديدة وتحديث سلسلة الاتصال لاستخدامها.
7. هل أحتاج إلى التخطيط لوقت تعطل صيانة خادم قاعدة البيانات لهذا التغيير؟
كلا. نظرا لأن التغيير هنا موجود فقط على جانب العميل للاتصال بخادم قاعدة البيانات ، فلا يوجد وقت توقف عن الصيانة مطلوب لخادم قاعدة البيانات لهذا التغيير.
8. إذا قمت بإنشاء خادم جديد بعد 15 فبراير 2021 (02/15/2021)، فهل سأتأثر؟
بالنسبة للخوادم التي تم إنشاؤها بعد 15 فبراير 2021 (02/15/2021) ، ستستمر في استخدام BaltimoreCyberTrustRoot لتطبيقاتك للاتصال باستخدام SSL.
9. كم مرة تقوم Microsoft بتحديث شهاداتها أو ما هي سياسة انتهاء الصلاحية؟
يتم توفير هذه الشهادات المستخدمة بواسطة قاعدة بيانات Azure ل MariaDB بواسطة المراجع المصدقة الموثوقة (CA). لذلك يرتبط دعم هذه الشهادات بدعم هذه الشهادات من قبل CA. من المقرر أن تنتهي صلاحية شهادة BaltimoreCyberTrustRoot في عام 2025 ، لذا ستحتاج Microsoft إلى إجراء تغيير في الشهادة قبل انتهاء الصلاحية. أيضا في حالة وجود أخطاء غير متوقعة في هذه الشهادات المحددة مسبقا، ستحتاج Microsoft إلى إجراء تدوير الشهادة في أقرب وقت مماثل للتغيير الذي تم إجراؤه في 15 فبراير 2021 لضمان أمان الخدمة وتوافقها في جميع الأوقات.
10. إذا كنت أستخدم النسخ المتماثلة المقروءة، فهل أحتاج إلى إجراء هذا التحديث فقط على الخادم المصدر أو النسخ المتماثلة المقروءة؟
نظرا لأن هذا التحديث هو تغيير من جانب العميل، إذا كان العميل يستخدم قراءة البيانات من خادم النسخ المتماثلة، فستحتاج إلى تطبيق التغييرات على هؤلاء العملاء أيضا.
11. إذا كنت أستخدم النسخ المتماثل للبيانات في البيانات، فهل أحتاج إلى تنفيذ أي إجراء؟
إذا كان النسخ المتماثل للبيانات من جهاز ظاهري (جهاز ظاهري مسبق أو جهاز Azure) إلى قاعدة بيانات Azure ل MySQL، فستحتاج إلى التحقق مما إذا كان يتم استخدام طبقة المقابس الآمنة لإنشاء النسخة المتماثلة. قم بتشغيل إظهار حالة الرقيق وتحقق من الإعداد التالي.
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
إذا كنت تستخدم النسخ المتماثل للبيانات للاتصال بقاعدة بيانات Azure ل MySQL، فهناك أمران يجب مراعاتهما:
إذا كان النسخ المتماثل للبيانات من جهاز ظاهري (جهاز ظاهري مسبق أو جهاز Azure) إلى قاعدة بيانات Azure ل MySQL، فستحتاج إلى التحقق مما إذا كان يتم استخدام طبقة المقابس الآمنة لإنشاء النسخة المتماثلة. قم بتشغيل إظهار حالة الرقيق وتحقق من الإعداد التالي.
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إذا رأيت الشهادة متوفرة CA_file SSL_Cert SSL_Key، فستحتاج إلى تحديث الملف عن طريق إضافة الشهادة الجديدة وإنشاء ملف شهادة مدمج.
إذا كان النسخ المتماثل للبيانات بين قاعدتي بيانات Azure ل MySQL، فستحتاج إلى إعادة تعيين النسخة المتماثلة عن طريق تنفيذ mysql.az_replication_change_master CALL وتوفير شهادة الجذر المزدوج الجديدة كمعلمة أخيرة master_ssl_ca.
12. هل لدينا استعلام من جانب الخادم للتحقق مما إذا كان يتم استخدام طبقة المقابس الآمنة؟
للتحقق مما إذا كنت تستخدم اتصال SSL للاتصال بالخادم، راجع التحقق من SSL.
13. هل هناك إجراء مطلوب إذا كان لدي بالفعل DigiCertGlobalRootG2 في ملف الشهادة الخاص بي؟
كلا. لا يلزم اتخاذ أي إجراء إذا كان ملف الشهادة يحتوي بالفعل على DigiCertGlobalRootG2.
14. ماذا لو كان لدي المزيد من الأسئلة؟
إذا كانت لديك أسئلة، فاحصل على إجابات من خبراء المجتمع في Microsoft QA&. إذا كان لديك خطة دعم وكنت بحاجة إلى مساعدة فنية، فاتصل بنا.
