إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تفرض قاعدة بيانات Azure ل PostgreSQL توصيل تطبيقات العميل الخاصة بك بمثيل خادم Azure Database for PostgreSQL المرن باستخدام أمان طبقة النقل (TLS). TLS هو بروتوكول متوافق مع معايير الصناعة يضمن اتصالات شبكة مشفرة بين خادم قاعدة البيانات وتطبيقات العميل. TLS هو بروتوكول محدث لطبقة مآخذ التوصيل الآمنة (SSL). لا يزال المصطلحان SSL و TLS مستخدمين بالتبادل.
Important
اعتبارا من 11 نوفمبر 2025، تم التخطيط لمناطق Azure في القائمة التالية لتدوير شهادة TLS/SSL التي تستخدم شهادات CA وسيطة جديدة.
- غرب وسط الولايات المتحدة
- East Asia
- UK South
اعتبارا من 19 يناير 2026، من المخطط أن يمتد هذا التناوب إلى جميع مناطق Azure المتبقية، بما في ذلك Azure Government وجميع المناطق الأخرى.
للحصول على معلومات حول استكشاف الأخطاء وإصلاحها، راجع مشكلات تثبيت الشهادة.
سلاسل الشهادات
سلسلة الشهادات هي قائمة مرتبة من الشهادات التي تحتوي على شهادة TLS/SSL وشهادات CA. إنها تمكن المتلقي من التحقق من أن المرسل وجميع المراجع المصدقة جديرة بالثقة. تبدأ السلسلة أو المسار بشهادة TLS/SSL. يتم توقيع كل شهادة في السلسلة من قبل الكيان المحدد بواسطة الشهادة التالية في السلسلة.
تنتهي السلسلة بشهادة مرجع مصدق جذر. يتم توقيع هذه الشهادة دائما من قبل المرجع المصدق نفسه. يجب التحقق من توقيعات جميع الشهادات في السلسلة حتى شهادة المرجع المصدق الجذر.
تسمى أي شهادة تقع بين شهادة TLS/SSL وشهادة المرجع المصدق الجذر في السلسلة شهادة وسيطة.
إصدارات TLS
تحتفظ العديد من الكيانات الحكومية في جميع أنحاء العالم بإرشادات لطبقة النقل الآمنة فيما يتعلق بأمن الشبكة. في الولايات المتحدة ، تشمل هذه المنظمات وزارة الصحة والخدمات الإنسانية والمعهد الوطني للمعايير والتكنولوجيا. يتأثر مستوى الأمان الذي يوفره TLS بشكل أكبر بإصدار بروتوكول TLS ومجموعات التشفير المدعومة.
مجموعة التشفير عبارة عن مجموعة من الخوارزميات التي تتضمن تشفيرا وخوارزمية تبادل المفاتيح وخوارزمية التجزئة. يتم استخدامها معا لإنشاء اتصال TLS آمن. تدعم معظم عملاء وخوادم TLS بدائل متعددة. يتعين عليهم التفاوض عند إنشاء اتصال آمن لتحديد إصدار TLS مشترك ومجموعة تشفير.
تدعم قاعدة بيانات Azure ل PostgreSQL الإصدار 1.2 من TLS والإصدارات الأحدث. في RFC 8996، تنص فرقة عمل هندسة الإنترنت (IETF) صراحة على أنه يجب عدم استخدام TLS 1.0 و TLS 1.1. تم إهمال كلا البروتوكولين بحلول نهاية عام 2019.
يتم رفض جميع الاتصالات الواردة التي تستخدم الإصدارات السابقة من بروتوكول TLS، مثل TLS 1.0 وTLS 1.1، بشكل افتراضي.
أصدرت IETF مواصفات TLS 1.3 في RFC 8446 في أغسطس 2018 ، وأصبح TLS 1.3 الآن إصدار TLS الأكثر شيوعا والموصى به قيد الاستخدام. يعد TLS 1.3 أسرع وأكثر أمانا من TLS 1.2.
Note
تشهد شهادات SSL و TLS أن اتصالك مؤمن بأحدث بروتوكولات التشفير. من خلال تشفير اتصالك على السلك ، فإنك تمنع الوصول غير المصرح به إلى بياناتك أثناء النقل. نوصي بشدة باستخدام أحدث إصدارات TLS لتشفير اتصالاتك بقاعدة بيانات Azure لمثيل خادم PostgreSQL المرن.
على الرغم من أننا لا نوصي بذلك، إذا لزم الأمر، يمكنك تعطيل TLS\SSL للاتصالات بقاعدة بيانات Azure لمثيل الخادم المرن PostgreSQL. يمكنك تحديث require_secure_transport معلمة الخادم إلى OFF. يمكنك أيضا تعيين إصدار طبقة النقل الآمنة عن طريق الإعداد ssl_min_protocol_version ومعلمات ssl_max_protocol_version الخادم.
يتم إجراء مصادقة الشهادة باستخدام شهادات عميل SSL للمصادقة. في هذا السيناريو، يقارن خادم PostgreSQL سمة الاسم الشائع (CN) لشهادة العميل المقدمة مقابل مستخدم قاعدة البيانات المطلوب.
في الوقت الحالي، لا تدعم قاعدة بيانات Azure ل PostgreSQL ما يلي:
- المصادقة المستندة إلى شهادة SSL.
- شهادات SSL \ TLS المخصصة.
Note
أجرت Microsoft تغييرات المرجع المصدق الجذر لخدمات Azure المختلفة، بما في ذلك قاعدة بيانات Azure ل PostgreSQL. لمزيد من المعلومات، راجع تغييرات شهادة Azure TLS والقسم تكوين SSL على العميل.
لتحديد حالة اتصال TLS\SSL الحالية، يمكنك تحميل ملحق sslinfo ثم استدعاء الدالة ssl_is_used() لتحديد ما إذا كان يتم استخدام SSL. ترجع t الدالة إذا كان الاتصال يستخدم SSL. خلاف ذلك ، فإنه يعود f. يمكنك أيضا جمع جميع المعلومات حول قاعدة بيانات Azure لاستخدام SSL لمثيل الخادم المرن PostgreSQL حسب العملية والعميل والتطبيق باستخدام الاستعلام التالي:
SELECT datname as "Database name", usename as "User name", ssl, client_addr, application_name, backend_type
FROM pg_stat_ssl
JOIN pg_stat_activity
ON pg_stat_ssl.pid = pg_stat_activity.pid
ORDER BY ssl;
للاختبار ، يمكنك أيضا استخدام openssl الأمر مباشرة:
openssl s_client -starttls postgres -showcerts -connect <your-postgresql-server-name>:5432
يطبع هذا الأمر معلومات البروتوكول منخفضة المستوى، مثل إصدار TLS والتشفير. يجب عليك استخدام الخيار -starttls postgres. وإلا، يشير هذا الأمر إلى عدم استخدام طبقة المقابس الآمنة. يتطلب استخدام هذا الأمر OpenSSL 1.1.1 على الأقل.
لفرض أحدث إصدار TLS وأكثرها أمانا لحماية الاتصال من العميل إلى قاعدة بيانات Azure لمثيل خادم PostgreSQL المرن، تم تعيينه ssl_min_protocol_version إلى 1.3.
يتطلب هذا الإعداد من العملاء الذين يتصلون بقاعدة بيانات Azure لمثيل الخادم المرن PostgreSQL استخدام هذا الإصدار من البروتوكول فقط للاتصال بأمان. قد لا يتمكن العملاء الأكبر سنا من الاتصال بالخادم لأنهم لا يدعمون هذا الإصدار.
تكوين SSL على العميل
بشكل افتراضي، لا يقوم PostgreSQL بإجراء أي تحقق من شهادة الخادم. لهذا السبب، من الممكن انتحال هوية الخادم (على سبيل المثال، عن طريق تعديل سجل DNS أو عن طريق الاستيلاء على عنوان IP للخادم) دون علم العميل. تحمل جميع خيارات SSL النفقات العامة في شكل تشفير وتبادل المفاتيح ، لذلك يتم إجراء مفاضلة بين الأداء والأمان.
لمنع الانتحال ، يجب استخدام التحقق من شهادة SSL على العميل.
هناك العديد من معلمات الاتصال لتكوين العميل ل SSL. بعض الأشياء المهمة هي:
sslالاتصال باستخدام SSL.: لا تحتاج هذه الخاصية إلى قيمة مقترنة بها. مجرد وجوده يحدد اتصال SSL. للتوافق مع الإصدارات المستقبلية ، يفضل القيمةtrue. في هذا الوضع، عندما تقوم بإنشاء اتصال SSL، يقوم برنامج تشغيل العميل بالتحقق من هوية الخادم لمنع هجمات الوسيط. يتحقق من توقيع شهادة الخادم من قبل مرجع موثوق به وأن المضيف الذي تتصل به هو نفسه اسم المضيف في الشهادة.sslmodeإذا كنت بحاجة إلى التشفير وتريد فشل الاتصال إذا تعذر تشفيره، فقم بتعيينsslmode=require. يضمن هذا الإعداد تكوين الخادم لقبول اتصالات SSL لعنوان المضيف/IP هذا وأن الخادم يتعرف على شهادة العميل. إذا لم يقبل الخادم اتصالات SSL أو لم يتم التعرف على شهادة العميل، فسيفشل الاتصال. يسرد الجدول التالي قيما لهذا الإعداد:وضع SSL تفسير disableلا يتم استخدام التشفير. allowيتم استخدام التشفير إذا تطلبت إعدادات الخادم أو تفرضه. preferيتم استخدام التشفير إذا سمحت إعدادات الخادم بذلك. requireيتم استخدام التشفير. يضمن تكوين الخادم لقبول اتصالات SSL لعنوان IP للمضيف هذا وأن الخادم يتعرف على شهادة العميل. verify-caيتم استخدام التشفير. تحقق من توقيع شهادة الخادم مقابل الشهادة المخزنة على العميل. verify-fullيتم استخدام التشفير. تحقق من توقيع شهادة الخادم واسم المضيف مقابل الشهادة المخزنة على العميل.
يختلف الوضع الافتراضي sslmode المستخدم بين العملاء المستندين إلى libpq (مثل psql) و JDBC. العملاء المستندين إلى libpq افتراضيا إلى prefer. عملاء JDBC افتراضيا إلى verify-full.
-
sslcert،sslkeyوsslrootcert: يمكن أن تتجاوز هذه المعلمات الموقع الافتراضي لشهادة العميل ومفتاح عميل PKCS-8 والشهادة الجذر. يتم تدقائها افتراضيا إلى/defaultdir/postgresql.crt، ، و/defaultdir/postgresql.pk8، على التوالي ، حيث/defaultdir/root.crtتوجدdefaultdirفي أنظمة Linux وعلى${user.home}/.postgresql/Windows.%appdata%/postgresql/
المراجعين المصدقين هي المؤسسات المسؤولة عن إصدار الشهادات. المرجع المصدق الموثوق به هو كيان يحق له التحقق من أن شخصا ما هو من يقول. لكي يعمل هذا النموذج، يجب أن يتفق جميع المشاركين على مجموعة من المراجع المصدقة الموثوق بها. يتم شحن جميع أنظمة التشغيل ومعظم متصفحات الويب مع مجموعة من المراجع المصدقة الموثوقة.
يمكن أيضا أن يعرف استخدام verify-ca الإعدادات وتكوينها verify-fullsslmode باسم تثبيت الشهادة. في هذه الحالة، يجب أن تتطابق شهادات المرجع المصدق الجذر على خادم PostgreSQL مع توقيع الشهادة وحتى اسم المضيف مقابل الشهادة الموجودة على العميل.
قد تحتاج بشكل دوري إلى تحديث الشهادات المخزنة من قبل العميل عند تغيير المراجع المصدقة أو انتهاء صلاحيتها على شهادات خادم PostgreSQL. لتحديد ما إذا كنت تقوم بتثبيت المراجع المصدقة أم لا، راجع تثبيت الشهادة وخدمات Azure.
لمزيد من المعلومات حول تكوين SSL\TLS على العميل، راجع وثائق PostgreSQL.
بالنسبة للعملاء الذين يستخدمون verify-ca الإعدادات وتكوينها verify-fullsslmode (أي تثبيت الشهادة)، يجب عليهم نشر ثلاث شهادات مرجع مصدق جذر إلى مخازن شهادات العميل:
- شهادات المرجع المصدق الجذر الجذر G2 من DigiCert Global G2 و Microsoft RSA Root CA 2017، لأن الخدمات يتم ترحيلها من Digicert إلى Microsoft CA.
- Digicert Global Root CA، للتوافق القديم.
تنزيل شهادات المرجع المصدق الجذر وتحديث عملاء التطبيق في سيناريوهات تثبيت الشهادة
لتحديث تطبيقات العميل في سيناريوهات تثبيت الشهادة، يمكنك تنزيل الشهادات:
لاستيراد الشهادات إلى مخازن شهادات العميل، قد تضطر إلى تحويل ملفات crt الشهادة إلى تنسيق .pem بعد تنزيل ملفات الشهادات من عناوين URI السابقة. يمكنك استخدام الأداة المساعدة OpenSSL لإجراء تحويلات الملفات التالية:
openssl x509 -inform DER -in certificate.crt -out certificate.pem -outform PEM
يتم توثيق المعلومات حول تحديث مخازن شهادات تطبيقات العميل بشهادات المرجع المصدق الجذر الجديدة في تحديث شهادات TLS للعميل لعملاء التطبيق.
Important
قد تواجه بعض مكتبات عميل Postgres، أثناء استخدام الإعداد sslmode=verify-full ، حالات فشل في الاتصال بشهادات المرجع المصدق الجذر الموقعة مع الشهادات الوسيطة. والنتيجة هي مسارات ثقة بديلة. في هذه الحالة، نوصي بتحديد المعلمة sslrootcert بشكل صريح. أو قم بتعيين PGSSLROOTCERT متغير البيئة إلى مسار محلي حيث يتم وضع شهادة المرجع المصدق الجذر ل Microsoft RSA الجذر 2017، من القيمة الافتراضية ل %APPDATA%\postgresql\root.crt.
- واجه فقدان الاتصال من تطبيق العميل إلى قاعدة بيانات Azure لمثيل الخادم المرن PostgreSQL - تم فتح تذكرة الدعم.
- إذا تم تدوير الشهادة الوسيطة، فقد تحتاج إلى تحديث مخزن شهادات العميل بالشهادة الوسيطة الجديدة.
- كيفية التحقق لمعرفة ما إذا كنت تقوم بتثبيت شهادتك الوسيطة - راجع تثبيت الشهادة وخدمات Azure.
قراءة النسخ المتماثلة مع سيناريوهات تثبيت الشهادة
مع ترحيل المرجع المصدق الجذر إلى Microsoft RSA Root CA 2017، من الممكن أن تكون النسخ المتماثلة التي تم إنشاؤها حديثا على شهادة مرجع مصدق جذر أحدث من الخادم الأساسي الذي تم إنشاؤه مسبقا. بالنسبة للعملاء الذين يستخدمون verify-ca الإعدادات وتكوينها verify-fullsslmode (أي تثبيت الشهادة)، من الضروري للاتصال المتقطع قبول ثلاث شهادات مرجع مصدق جذر:
في الوقت الحالي، لا تدعم قاعدة بيانات Azure ل PostgreSQL المصادقة المستندة إلى الشهادة.
اختبار شهادات العميل عن طريق الاتصال ب psql في سيناريوهات تثبيت الشهادة
يمكنك استخدام سطر الأوامر psql من العميل لاختبار الاتصال بالخادم في سيناريوهات تثبيت الشهادة:
$ psql "host=hostname.postgres.database.azure.com port=5432 user=myuser dbname=mydatabase sslmode=verify-full sslcert=client.crt sslkey=client.key sslrootcert=ca.crt"
لمزيد من المعلومات حول SSL ومعلمات الشهادات، راجع وثائق psql.
اختبار اتصال TLS/SSL
قبل محاولة الوصول إلى الخادم الذي يدعم SSL من تطبيق عميل، تأكد من أنه يمكنك الوصول إليه عبر psql. إذا قمت بإنشاء اتصال SSL، فيجب أن ترى مخرجات مشابهة للمثال التالي:
psql (14.5)اتصال SSL (البروتوكول: TLSv1.2، التشفير: ECDHE-RSA-AES256-GCM-SHA384، البتات: 256، الضغط: إيقاف)اكتب "help" للحصول على المساعدة.
يمكنك أيضا تحميل ملحق sslinfo ثم استدعاء الدالة ssl_is_used() لتحديد ما إذا كان يتم استخدام SSL. ترجع t الدالة إذا كان الاتصال يستخدم SSL. خلاف ذلك ، فإنه يعود f.
أجنحة التشفير
مجموعة التشفير عبارة عن مجموعة من خوارزميات التشفير. تستخدم بروتوكولات TLS/SSL خوارزميات من مجموعة تشفير لإنشاء مفاتيح وتشفير المعلومات.
يتم عرض مجموعة التشفير كسلسلة طويلة من المعلومات التي تبدو عشوائية ، ولكن كل جزء من هذه السلسلة يحتوي على معلومات أساسية. بشكل عام ، تتضمن سلسلة البيانات هذه عدة مكونات رئيسية:
- البروتوكول (أي TLS 1.2 أو TLS 1.3)
- خوارزمية تبادل المفاتيح أو الاتفاق
- خوارزمية التوقيع الرقمي (المصادقة)
- خوارزمية التشفير المجمعة
- خوارزمية رمز مصادقة الرسالة (MAC)
تدعم الإصدارات المختلفة من TLS / SSL مجموعات تشفير مختلفة. لا يمكن التفاوض على مجموعات تشفير TLS 1.2 مع اتصالات TLS 1.3، والعكس صحيح.
في الوقت الحالي، تدعم قاعدة بيانات Azure ل PostgreSQL العديد من مجموعات التشفير مع إصدار بروتوكول TLS 1.2 الذي يقع في فئة HIGH:!aNULL .
Troubleshoot
استخدم الإرشادات الواردة في قسم أستكشاف الأخطاء وإصلاحها هذا لتحديد مشكلات TLS/SSL الشائعة وحلها بسرعة. ابدأ بإعادة إنتاج المشكلة وجمع البيانات التشخيصية (رسائل الخطأ من جانب العميل وإخراج psql وإخراج s_client OpenSSL وسجلات الخادم)، ثم تحقق من معلمات الخادم (require_secure_transport و ssl_min_protocol_version و ssl_max_protocol_version) وسلسلة الشهادات وإعدادات sslmode/sslrootcert للعميل لتحديد حالات عدم التطابق في إصدارات البروتوكول أو مجموعات التشفير أو الشهادات المفقودة/التي تم تدويرها.
أخطاء اتصال TLS/SSL
- تتمثل الخطوة الأولى لاستكشاف أخطاء توافق إصدار بروتوكول TLS/SSL وإصلاحها في تحديد رسائل الخطأ التي تراها أنت أو المستخدمون عند محاولتهم الوصول إلى قاعدة بيانات Azure لمثيل خادم PostgreSQL المرن ضمن تشفير TLS من العميل. اعتمادا على التطبيق والنظام الأساسي ، قد تختلف رسائل الخطأ. في كثير من الحالات ، يشيرون إلى القضية الأساسية.
- للتأكد من توافق إصدار بروتوكول TLS/SSL، تحقق من تكوين TLS/SSL لخادم قاعدة البيانات وعميل التطبيق للتأكد من أنها تدعم الإصدارات المتوافقة ومجموعات التشفير.
- قم بتحليل أي تناقضات أو فجوات بين خادم قاعدة البيانات وإصدارات TLS/SSL الخاصة بالعميل ومجموعات التشفير. حاول حلها عن طريق تمكين خيارات معينة أو تعطيلها ، أو ترقية البرامج أو الرجوع إلى إصدار أقدم ، أو تغيير الشهادات أو المفاتيح. على سبيل المثال، قد تحتاج إلى تمكين أو تعطيل إصدارات معينة من TLS/SSL على الخادم أو العميل، اعتمادا على متطلبات الأمان والتوافق. على سبيل المثال، قد تحتاج إلى تعطيل TLS 1.0 وTLS 1.1، اللذين يعتبران غير آمنين ومهملين، وتمكين TLS 1.2 وTLS 1.3، وهما أكثر أمانا وحداثة.
- تحتوي أحدث شهادة صادرة مع Microsoft RSA Root CA 2017 على شهادة وسيطة في السلسلة موقعة بواسطة Digicert Global Root G2 CA. قد تواجه بعض مكتبات عميل Postgres، أثناء الاستخدام
sslmode=verify-fullأوsslmode=verify-caالإعدادات، حالات فشل في الاتصال بشهادات المرجع المصدق الجذر الموقعة مع الشهادات الوسيطة. والنتيجة هي مسارات ثقة بديلة.
كمحاولة للتغلب على هذه المشكلات، أضف جميع الشهادات الثلاث الضرورية إلى مخزن شهادات العميل أو حدد المعلمة sslrootcert بشكل صريح. أو قم بتعيين PGSSLROOTCERT متغير البيئة إلى المسار المحلي حيث يتم وضع شهادة المرجع المصدق الجذر ل Microsoft RSA الجذر 2017، من القيمة الافتراضية ل %APPDATA%\postgresql\root.crt.
مشاكل تثبيت الشهادة
Note
إذا كنت لا تستخدم sslmode=verify-full أو sslmode=verify-ca إعدادات في سلسلة اتصال تطبيق العميل، فلن تؤثر عمليات تدوير الشهادات عليك.
لذلك ، لا تحتاج إلى اتباع الخطوات الواردة في هذا القسم.
- تحقق مما إذا كنت تستخدم تثبيت الشهادة في تطبيقك.
- إنتاج قائمة الشهادات الموجودة في متجر الجذر الموثوق به
- على سبيل المثال ، يمكنك الحصول على قائمة بالشهادات الموثوق بها في Java Key Store برمجيا.
- على سبيل المثال ، يمكنك التحقق من cacerts java keystore لمعرفة ما إذا كان يحتوي بالفعل على الشهادات المطلوبة.
- أنت تستخدم تثبيت الشهادة، إذا كان لديك شهادات وسيطة فردية أو شهادات خادم PostgreSQL فردية.
- لإزالة تثبيت الشهادة، أزل جميع الشهادات من مخزن الجذر الموثوق به وأضف الشهادات الجديدة.
- يمكنك تنزيل الشهادات المحدثة من مستودع Microsoft الرسمي: تفاصيل مرجع مصدق Azure.
- السلسلة الحالية:
- ديجي سيرت الجذر العالمي G2
- إصدار Microsoft Azure RSA TLS CA 03 / 04 / 07 / 08
- سلسلة جديدة:
- ديجي سيرت الجذر العالمي G2
- Microsoft TLS RSA الجذر G2
- مايكروسوفت TLS G2 RSA CA OCSP 02 / 04 / 06 / 08 / 10 / 12 / 14 / 16
- السلسلة الحالية:
- يمكنك تنزيل الشهادات المحدثة من مستودع Microsoft الرسمي: تفاصيل مرجع مصدق Azure.
إذا كنت تواجه مشكلات حتى بعد اتباع هذه الخطوات، فاتصل بدعم Microsoft. قم بتضمين عنوان تناوب ICA 2026.