مشاركة عبر


تحديث شهادات عميل التطبيق

عند توصيل التطبيقات بقاعدة بيانات Azure ل PostgreSQL، يجب على عميل التطبيق تثبيت شهادات الجذر الموثوق بها. ترشدك الأقسام التالية خلال تحديث شهادات الجذر الموثوق بها للتطبيقات، وهو سيناريو شائع للتطبيقات المتصلة بقاعدة بيانات Azure لمثيل خادم PostgreSQL المرن.

Important

اعتبارا من 11 نوفمبر 2025، تم التخطيط لمناطق Azure في القائمة التالية لتدوير شهادة TLS/SSL التي تستخدم شهادات CA وسيطة جديدة.

  • غرب وسط الولايات المتحدة
  • East Asia
  • UK South

اعتبارا من 19 يناير 2026، من المخطط أن يمتد هذا التناوب إلى جميع مناطق Azure المتبقية، بما في ذلك Azure Government وجميع المناطق الأخرى.

للحصول على معلومات حول استكشاف الأخطاء وإصلاحها، راجع مشكلات تثبيت الشهادة.

استيراد شهادات المرجع المصدق الجذر في Java Key Store على العميل، لسيناريوهات تثبيت الشهادة

تستخدم تطبيقات Java المكتوبة حسب الطلب مخزن مفاتيح افتراضي، يسمى cacerts، والذي يحتوي على شهادات المرجع المصدق الموثوق به (CA). غالبا ما يعرف أيضا باسم متجر Java Trust. يوجد ملف شهادات مسمى cacerts في دليل خصائص الأمان، java.home\lib\security، حيث java.home هو دليل بيئة وقت التشغيل (الدليل jre الموجود في SDK أو دليل المستوى الأعلى لبيئة وقت تشغيل Java™ 2). يمكنك استخدام الإرشادات التالية لتحديث شهادات المرجع المصدق الجذر للعميل لسيناريوهات تثبيت شهادة العميل باستخدام PostgreSQL:

  1. تحقق من cacerts java keystore لمعرفة ما إذا كان يحتوي بالفعل على الشهادات المطلوبة. يمكنك سرد الشهادات في مخزن مفاتيح Java باستخدام الأمر التالي:

      keytool -list -v -keystore ..\lib\security\cacerts > outputfile.txt
    

    إذا لم تكن الشهادات الضرورية موجودة في مخزن مفاتيح جافا على العميل ، كما يمكن التحقق منه في الإخراج ، فيجب عليك متابعة الإرشادات التالية:

  2. قم بعمل نسخة احتياطية من مخزن المفاتيح المخصص الخاص بك.

  3. قم بتنزيل الشهادات وحفظها محليا حيث يمكنك الرجوع إليها.

  4. قم بإنشاء مخزن شهادات CA مدمج مع تضمين جميع شهادات المرجع المصدق الجذر المطلوبة. يوضح المثال أدناه استخدام DefaultJavaSSLFactory لمستخدمي PostgreSQL JDBC.

        keytool -importcert -alias PostgreSQLServerCACert  -file D:\ DigiCertGlobalRootG2.crt.pem   -keystore truststore -storepass password -noprompt
    
        keytool -importcert -alias PostgreSQLServerCACert2  -file "D:\ Microsoft ECC Root Certificate Authority 2017.crt.pem" -keystore truststore -storepass password  -noprompt
    
        keytool -importcert -alias PostgreSQLServerCACert  -file D:\ DigiCertGlobalRootCA.crt.pem   -keystore truststore -storepass password -noprompt
    
  5. استبدل ملف مخزن المفاتيح الأصلي بملف الذي تم إنشاؤه الجديد:

    System.setProperty("javax.net.ssl.trustStore","path_to_truststore_file");
    System.setProperty("javax.net.ssl.trustStorePassword","password");
    
  6. استبدل ملف المرجع المصدق الجذر الأصلي بملف المرجع المصدق الجذر المدمج وأعد تشغيل التطبيق/العميل.

    لمزيد من المعلومات حول تكوين شهادات العميل باستخدام برنامج تشغيل PostgreSQL JDBC، راجع هذه الوثائق.

    Note

    لاستيراد الشهادات إلى مخازن شهادات العميل، قد تضطر إلى تحويل ملفات crt الشهادة إلى تنسيق .pem. يمكنك استخدام أداة OpenSSL للقيام بتحويلات الملفات هذه.

احصل على قائمة بالشهادات الموثوقة في Java Key Store برمجيا

بشكل افتراضي، تخزن Java الشهادات الموثوق بها في ملف خاص يسمى cacerts موجود داخل مجلد تثبيت Java على العميل. المثال أدناه يقرأه cacerts أولا ويحمله في كائن KeyStore :

private KeyStore loadKeyStore() {
    String relativeCacertsPath = "/lib/security/cacerts".replace("/", File.separator);
    String filename = System.getProperty("java.home") + relativeCacertsPath;
    FileInputStream is = new FileInputStream(filename);
    KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
    String password = "changeit";
    keystore.load(is, password.toCharArray());

    return keystore;
}

كلمة المرور الافتراضية ل cacerts هي changeit ، ولكن يجب أن تكون مختلفة على العميل الحقيقي ، حيث يوصي المسؤولون بتغيير كلمة المرور مباشرة بعد تثبيت Java. بمجرد تحميل كائن KeyStore ، يمكننا استخدام فئة PKIXParameters لقراءة الشهادات الموجودة.

public void whenLoadingCacertsKeyStore_thenCertificatesArePresent() {
    KeyStore keyStore = loadKeyStore();
    PKIXParameters params = new PKIXParameters(keyStore);
    Set<TrustAnchor> trustAnchors = params.getTrustAnchors();
    List<Certificate> certificates = trustAnchors.stream()
      .map(TrustAnchor::getTrustedCert)
      .collect(Collectors.toList());

    assertFalse(certificates.isEmpty());
}

تحديث شهادات المرجع المصدق الجذر عند استخدام العملاء في Azure App Services، لسيناريوهات تثبيت الشهادة

بالنسبة لخدمات تطبيقات Azure، والاتصال بقاعدة بيانات Azure لمثيل خادم PostgreSQL المرن، يمكن أن يكون لدينا سيناريوهين محتملين لتحديث شهادات العميل ويعتمد ذلك على كيفية استخدامك ل SSL مع التطبيق المنشور في Azure App Services.

  • تتم إضافة شهادات جديدة إلى App Service على مستوى النظام الأساسي قبل حدوث تغييرات في قاعدة بيانات Azure لمثيل خادم PostgreSQL المرن. إذا كنت تستخدم شهادات SSL المضمنة في النظام الأساسي لخدمة التطبيقات في تطبيقك، فلا داعي لاتخاذ أي إجراء. لمزيد من المعلومات، راجع إضافة شهادات TLS/SSL وإدارتها في Azure App Service، في وثائق Azure App Service.
  • إذا كنت تقوم بتضمين المسار إلى ملف شهادة SSL بشكل صريح في التعليمات البرمجية الخاصة بك، فستحتاج إلى تنزيل الشهادة الجديدة وتحديث التعليمات البرمجية لاستخدامها. ومن الأمثلة الجيدة على هذا السيناريو عند استخدام حاويات مخصصة في App Service كما هو موضح في البرنامج التعليمي: تكوين حاوية جانبية للحاوية المخصصة في Azure App Service، في وثائق Azure App Service.

تحديث شهادات المرجع المصدق الجذر عند استخدام العملاء في Azure Kubernetes Service (AKS)، لسيناريوهات تثبيت الشهادة

إذا كنت تحاول الاتصال بقاعدة بيانات Azure ل PostgreSQL باستخدام التطبيقات المستضافة في Azure Kubernetes Services (AKS) وشهادات التثبيت، فهي مشابهة للوصول من بيئة مضيفة مخصصة للعميل. راجع الخطوات هنا.

تحديث شهادات المرجع المصدق الجذر لمستخدمي .NET (Npgsql) على Windows، لسيناريوهات تثبيت الشهادة

بالنسبة لمستخدمي .NET (Npgsql) على Windows، والاتصال بقاعدة بيانات Azure لمثيلات الخادم المرنة PostgreSQL، تأكد من وجود جميع المرجع المصدق الجذر Microsoft RSA الثلاثة 2017 وDigiCert Global Root G2 وDigicert Global Root CA في مخزن شهادات Windows والمراجع المصدقة الجذر الموثوق بها. إذا لم تكن هناك أي شهادات ، فقم باستيراد الشهادة المفقودة.

تحديث شهادات المرجع المصدق الجذر للعملاء الآخرين، لسيناريوهات تثبيت الشهادة

بالنسبة لمستخدمي عميل PostgreSQL الآخرين، يمكنك دمج ملفي شهادة CA باستخدام التنسيق التالي:

-----BEGIN CERTIFICATE-----
(Root CA1: DigiCertGlobalRootCA.crt.pem)
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
(Root CA2: Microsoft ECC Root Certificate Authority 2017.crt.pem)
-----END CERTIFICATE-----