SSL_CTX_LOAD_VERIFY_LOCATIONS(3SSL)

الاسم
SSL_CTX_load_verify_dir, SSL_CTX_load_verify_file, SSL_CTX_load_verify_store, SSL_CTX_set_default_verify_paths, SSL_CTX_set_default_verify_dir, SSL_CTX_set_default_verify_file, SSL_CTX_set_default_verify_store, SSL_CTX_load_verify_locations - تعيين المواقع المبدئية لشهادات CA الموثوقة

موجز
 #include <openssl/ssl.h>

 int SSL_CTX_load_verify_dir(SSL_CTX *ctx, const char *CApath);
 int SSL_CTX_load_verify_file(SSL_CTX *ctx, const char *CAfile);
 int SSL_CTX_load_verify_store(SSL_CTX *ctx, const char *CAstore);

 int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx);

 int SSL_CTX_set_default_verify_dir(SSL_CTX *ctx);
 int SSL_CTX_set_default_verify_file(SSL_CTX *ctx);
 int SSL_CTX_set_default_verify_store(SSL_CTX *ctx);

 int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile,
                                   const char *CApath);

الوصف
SSL_CTX_load_verify_locations()، SSL_CTX_load_verify_dir()، SSL_CTX_load_verify_file()، SSL_CTX_load_verify_store() تحدد المواقع لـ ctx، حيث توجد شهادات CA لأغراض التحقق. الشهادات المتاحة عبر CAfile و CApath و CAstore موثوقة. ctx يجب ألا يكون NULL

تفاصيل عملية التحقق من الشهادة والتحقق من السلسلة موصوفة في "التحقق من مسار التصديق" في openssl-verification-options(1).

SSL_CTX_set_default_verify_paths() تحدد أنه يجب استخدام المواقع المبدئية التي تُحمّل منها شهادات CA. يوجد دليل مبدئي واحد وملف مبدئي واحد ومخزن مبدئي واحد. يُسمى دليل شهادات CA المبدئي certs في دليل OpenSSL المبدئي، وهذا أيضًا هو المخزن المبدئي. بدلاً من ذلك، يمكن تعريف متغير البيئة SSL_CERT_DIR لتجاوز هذا الموقع. يُسمى ملف شهادات CA المبدئي cert.pem في دليل OpenSSL المبدئي. بدلاً من ذلك، يمكن تعريف متغير البيئة SSL_CERT_FILE لتجاوز هذا الموقع. ctx يجب ألا يكون NULL.

SSL_CTX_set_default_verify_dir() مشابه لـ SSL_CTX_set_default_verify_paths() باستثناء أنه يُستخدم الدليل المبدئي فقط.

SSL_CTX_set_default_verify_file() مشابه لـ SSL_CTX_set_default_verify_paths() باستثناء أنه يُستخدم الملف المبدئي فقط.

SSL_CTX_set_default_verify_store() مشابه لـ SSL_CTX_set_default_verify_paths() باستثناء أنه يُستخدم المخزن المبدئي فقط.

ملاحظات
إذا لم يكن CAfile NULL، فإنه يشير إلى ملف من شهادات CA بتنسيق PEM. يمكن أن يحتوي الملف على عدة شهادات CA مُعرّفة بواسطة

 -----BEGIN CERTIFICATE-----
 ... (CA certificate in base64 encoding) ...
 -----END CERTIFICATE-----

التسلسلات. يُسمح بالنص قبل الشهادات وبينها وبعدها، والذي يمكن استخدامه مثلاً لوصف الشهادات.

يُعالَج CAfile عند تنفيذ دالة SSL_CTX_load_verify_locations().

إذا لم يكن CApath NULL، فإنه يشير إلى دليل يحتوي على شهادات CA بتنسيق PEM. تحتوي الملفات كل منها على شهادة CA واحدة. تُبحث الملفات بواسطة قيمة تجزئة اسم موضوع CA، والتي يجب أن تكون متاحة. إذا وُجدت أكثر من شهادة CA بنفس قيمة تجزئة الاسم، يجب أن يكون الامتداد مختلفًا (مثل 9d66eef0.0، 9d66eef0.1 إلخ). يُجرى البحث بترتيب رقم الامتداد، بغض النظر عن الخصائص الأخرى للشهادات. استخدم أداة c_rehash لإنشاء الروابط الضرورية.

تُبحث الشهادات في CApath فقط عند الحاجة، مثلاً عند بناء سلسلة الشهادات أو عند إجراء التحقق الفعلي من شهادة النظير.

عند البحث عن شهادات CA لبناء السلسلة، ستبحث مكتبة OpenSSL عن الشهادات المناسبة أولاً في CAfile، ثم في CApath. تفاصيل عملية بناء السلسلة موصوفة في "بناء مسار التصديق" في openssl-verification-options(1).

إذا لم يكن CAstore NULL، فهو URI لمخزن، قد يمثّل حاوية واحدة أو كتالوجًا كاملًا من الحاويات. بصرف النظر عن أن CAstore ليس بالضرورة ملفًا أو دليلًا محليًا، فإنه يُعامل عمومًا بنفس طريقة CApath.

في وضع الخادم، عند طلب شهادة عميل، يجب على الخادم إرسال قائمة CAs التي سيقبل منها شهادات العميل. لا تتأثر هذه القائمة بمحتويات CAfile أو CApath ويجب تعيينها صراحةً باستخدام عائلة دوال SSL_CTX_set_client_CA_list(3).

عند بناء سلسلة الشهادات الخاصة به، سيحاول عميل/خادم OpenSSL ملء الشهادات المفقودة من CAfile/CApath، إذا لم تُحدد سلسلة الشهادات صراحةً (انظر SSL_CTX_add_extra_chain_cert(3)، SSL_CTX_use_certificate(3).

تحذيرات
إذا توفّرت عدة شهادات CA تطابق الاسم، ومُعرّف المفتاح، ورقم السلسلة، فسيُفحص أولها فقط. قد يؤدّي هذا إلى نتائج غير متوقّعة إذا توفّرت نفس شهادة CA بتواريخ انتهاء مختلفة. إذا حدث خطأ تحقق "انتهت صلاحية الشهادة"، فلن يُبحث عن أي شهادة أخرى. تأكّد من عدم خلط الشهادات منتهية الصلاحية مع الصالحة.

القيم المُرجعة
بالنسبة لـ SSL_CTX_load_verify_locations، قد تحدث قيم الإرجاع التالية:

0   فشلت العملية لأن CAfile و CApath هما NULL أو فشلت المعالجة في أحد المواقع المُحدّدة. افحص مكدس الأخطاء لمعرفة السبب.

1   نجحت العملية.

تُرجع SSL_CTX_set_default_verify_paths() و SSL_CTX_set_default_verify_dir() و SSL_CTX_set_default_verify_file() جميعها القيمة 1 عند النجاح أو 0 عند الفشل. يُعتبر الموقع المبدئي المفقود نجاحًا أيضًا.

أمثلة
أنشئ ملف شهادة CA مع نص وصفي من شهادات CA ca1.pem ca2.pem ca3.pem:

 #!/bin/sh
 rm CAfile.pem
 for i in ca1.pem ca2.pem ca3.pem ; do
     openssl x509 -in $i -text >> CAfile.pem
 done

جهّز الدليل /some/where/certs الذي يحتوي على عدة شهادات CA لاستخدامه كـ CApath:

 cd /some/where/certs
 c_rehash .

انظر أيضًا
ssl(7)، SSL_CTX_set_client_CA_list(3)، SSL_get_client_CA_list(3)، SSL_CTX_use_certificate(3)، SSL_CTX_add_extra_chain_cert(3)، SSL_CTX_set_cert_store(3)، SSL_CTX_set_client_CA_list(3)

حقوق النسخ
حقوق النشر 2000-2021 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة.

مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط <https://www.openssl.org/source/license.html>.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.