SSL_CTX_SET0_CA_LIST(3SSL)

الاسم
SSL_CTX_set_client_CA_list, SSL_set_client_CA_list, SSL_get_client_CA_list, SSL_CTX_get_client_CA_list, SSL_CTX_add_client_CA, SSL_add_client_CA, SSL_set0_CA_list, SSL_CTX_set0_CA_list, SSL_get0_CA_list, SSL_CTX_get0_CA_list, SSL_add1_to_CA_list, SSL_CTX_add1_to_CA_list, SSL_get0_peer_CA_list - الحصول على قائمة المراجع المصدقة (CA) أو تعيينها

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

 void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *list);
 void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *list);
 STACK_OF(X509_NAME) *SSL_get_client_CA_list(const SSL *s);
 STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *ctx);
 int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *cacert);
 int SSL_add_client_CA(SSL *ssl, X509 *cacert);

 void SSL_CTX_set0_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *name_list);
 void SSL_set0_CA_list(SSL *s, STACK_OF(X509_NAME) *name_list);
 const STACK_OF(X509_NAME) *SSL_CTX_get0_CA_list(const SSL_CTX *ctx);
 const STACK_OF(X509_NAME) *SSL_get0_CA_list(const SSL *s);
 int SSL_CTX_add1_to_CA_list(SSL_CTX *ctx, const X509 *x);
 int SSL_add1_to_CA_list(SSL *ssl, const X509 *x);

 const STACK_OF(X509_NAME) *SSL_get0_peer_CA_list(const SSL *s);

الوصف
الدوال الموصوفة هنا تُعيّن وتُدير قائمة أسماء المراجع المصدقة (CA) التي تُرسل بين نظيرين متصلين.

بالنسبة لإصدارات TLS 1.2 والإصدارات الأقدم، تُرسل قائمة أسماء المراجع المصدقة (CA) فقط من الخادم إلى العميل عند طلب شهادة عميل. لذا، لا تُرسل أي قائمة أسماء مراجع مصدقة (CA) مُعيّنة من العميل إلى الخادم، وتكون قائمة أسماء المراجع المصدقة (CA) المسترجعة بواسطة SSL_get0_peer_CA_list() دائمًا NULL.

بالنسبة لـ TLS 1.3، تُرسل قائمة أسماء المراجع المصدقة (CA) باستخدام امتداد certificate_authorities، وقد تُرسل بواسطة عميل (في رسالة ClientHello) أو بواسطة خادم (عند طلب شهادة).

في معظم الحالات، ليس من الضروري تعيين أسماء المراجع المصدقة (CA) على جانب العميل. ستُرسل قائمة أسماء المراجع المصدقة (CA) المقبولة للعميل بنص واضح إلى الخادم. لهذا آثار على الخصوصية وقد يكون له آثار على الأداء إذا كانت القائمة كبيرة. أُدخلت هذه الإمكانية الاختيارية كجزء من TLSv1.3، وبالتالي فإن تعيين أسماء المراجع المصدقة (CA) على جانب العميل لن يكون له أي تأثير إذا عُطّل إصدار البروتوكول هذا. معظم الخوادم لا تحتاج إلى هذا، لذا يجب تجنبه ما لم يكن مطلوبًا.

دوال "قائمة مراجع مصدقة (CA) للعميل" أدناه لها تأثير فقط عند استدعائها على جانب الخادم.

SSL_CTX_set_client_CA_list() تُعيّن list للمراجع المصدقة (CA) المرسلة إلى العميل عند طلب شهادة عميل لـ ctx. تُنقل ملكية list إلى ctx، ولا ينبغي للمستدعي تحريرها.

SSL_set_client_CA_list() تُعيّن قائمة list من المراجع المصدقة (CAs) المُرسلة إلى العميل عند طلب شهادة عميل لـ ssl المختار، متجاوزة الإعداد الساري لكائن SSL_CTX الخاص بـ ssl. تُنقل ملكية list إلى s ولا ينبغي للمستدعي تحريرها.

SSL_CTX_get_client_CA_list() تُرجع قائمة مراجع مصدقة (CA) للعميل المُعيّنة صراحةً لـ ctx باستخدام SSL_CTX_set_client_CA_list(). لا ينبغي للمستدعي تحرير القائمة المُرجعة.

SSL_get_client_CA_list() تُرجع قائمة مراجع العميل المصدقة (CAs) المُعينة صراحة لـ ssl باستخدام SSL_set_client_CA_list() أو كائن SSL_CTX الخاص بـ ssl مع SSL_CTX_set_client_CA_list()، عند العمل في وضع الخادم. في وضع العميل، تُرجع SSL_get_client_CA_list قائمة مراجع العميل المصدقة (CAs) المُرسلة من الخادم، إن وُجدت. لا ينبغي للمستدعي تحرير القائمة المُرجعة.

SSL_CTX_add_client_CA() تُضيف اسم المرجع المصدق (CA) المستخرج من cacert إلى قائمة المراجع المصدقة (CA) المرسلة إلى العميل عند طلب شهادة عميل لـ ctx.

SSL_add_client_CA() تُضيف اسم المرجع المصدق (CA) المستخرج من cacert إلى قائمة المراجع المصدقة (CAs) المُرسلة إلى العميل عند طلب شهادة عميل لـ ssl المختار، متجاوزة الإعداد الساري لكائن SSL_CTX الخاص بـ ssl.

SSL_get0_peer_CA_list() تسترجع قائمة أسماء المراجع المصدقة (CA) (إن وُجدت) التي أرسلها النظير. يمكن استدعاء هذه الدالة على جانب الخادم أو العميل. لا ينبغي للمستدعي تحرير القائمة المُرجعة.

دوال "قائمة المراجع المصدقة (CA) العامة" أدناه مشابهة جدًا لدوال "قائمة مراجع مصدقة (CA) للعميل" باستثناء أن لها تأثيرًا على جانبي الخادم والعميل. قوائم أسماء المراجع المصدقة (CA) المُدارة منفصلة - لذا لا يمكنك (على سبيل المثال) تعيين أسماء مراجع مصدقة (CA) باستخدام دوال "قائمة مراجع مصدقة (CA) للعميل" ثم الحصول عليها باستخدام دوال "قائمة المراجع المصدقة (CA) العامة". حيثما استُخدم مزيج من النوعين من الدوال على جانب الخادم، فإن دوال "قائمة مراجع مصدقة (CA) للعميل" تأخذ الأولوية. عادةً، على جانب الخادم، يجب استخدام دوال "قائمة مراجع مصدقة (CA) للعميل" بشكل مفضل. كما ذُكر أعلاه، في معظم الحالات ليس من الضروري تعيين أسماء المراجع المصدقة (CA) على جانب العميل.

SSL_CTX_set0_CA_list() تُعيّن قائمة المراجع المصدقة (CA) المراد إرسالها إلى النظير إلى name_list. تُنقل ملكية name_list إلى ctx، ولا ينبغي للمستدعي تحريرها.

SSL_set0_CA_list() تُعيّن قائمة المراجع المصدقة (CA) المراد إرسالها إلى النظير إلى name_list متجاوزة أي قائمة مُعيّنة في SSL_CTX الأصل لـ s. تُنقل ملكية name_list إلى s، ولا ينبغي للمستدعي تحريرها.

SSL_CTX_get0_CA_list() تسترجع أي قائمة مراجع مصدقة (CA) مُعيّنة سابقًا لـ ctx. لا ينبغي للمستدعي تحرير القائمة المُرجعة.

SSL_get0_CA_list() تسترجع أي قائمة مرجعيات مصدقة (CAs) سبق تعيينها لـ s أو إذا لم تُعيّن أي قائمة، تُسترجع القائمة من SSL_CTX الأصل. لا ينبغي للمستدعي تحرير القائمة المُرجعة.

SSL_CTX_add1_to_CA_list() تُلحق اسم موضوع المرجع المصدق (CA) المستخرج من x بقائمة المراجع المصدقة (CAs) المُرسلة إلى النظير لـ ctx.

SSL_add1_to_CA_list() تُلحق اسم موضوع المرجع المصدق (CA) المستخرج من x بقائمة المراجع المصدقة (CAs) المُرسلة إلى النظير لـ s، متجاوزة الإعداد في SSL_CTX الأصل.

ملاحظات
عندما يطلب خادم TLS/SSL شهادة عميل (انظر SSL_CTX_set_verify(3))، يُرسل إلى العميل قائمة بالمراجع المصدقة (CAs) التي سيقبل شهاداتها.

يجب تعيين هذه القائمة صراحة باستخدام SSL_CTX_set_client_CA_list() أو SSL_CTX_set0_CA_list() لـ ctx و SSL_set_client_CA_list() أو SSL_set0_CA_list() لـ ssl المحدد. القائمة المُحددة تتجاوز الإعداد السابق. المراجع المصدقة (CAs) المدرجة لا تصبح موثوقة (list تحتوي فقط على الأسماء، وليس الشهادات الكاملة)؛ استخدم SSL_CTX_load_verify_locations(3) لتحميلها إضافياً للتحقق.

إذا جُمعت قائمة المراجع المصدقة (CAs) المقبولة في ملف، يمكن استخدام دالة SSL_load_client_CA_file(3) للمساعدة في استيراد البيانات الضرورية.

يمكن استخدام SSL_CTX_add_client_CA() و SSL_CTX_add1_to_CA_list() و SSL_add_client_CA() و SSL_add1_to_CA_list() لإضافة عناصر إضافية إلى قائمة المراجع المصدقة (CAs). إذا لم تُحدد أي قائمة قبل استخدام SSL_CTX_set_client_CA_list() أو SSL_CTX_set0_CA_list() أو SSL_set_client_CA_list() أو SSL_set0_CA_list()، تُفتح قائمة مراجع مصدقة جديدة لـ ctx أو ssl (حسب الاقتضاء).

القيم المُرجعة
SSL_CTX_set_client_CA_list() و SSL_set_client_CA_list() و SSL_CTX_set_client_CA_list() و SSL_set_client_CA_list() و SSL_CTX_set0_CA_list() و SSL_set0_CA_list() لا تُرجع قيمة.

SSL_CTX_get_client_CA_list() و SSL_get_client_CA_list() و SSL_CTX_get0_CA_list() و SSL_get0_CA_list() تُرجع كومة من أسماء المراجع المصدقة (CAs) أو NULL إذا لم تُعيّن أي أسماء مراجع مصدقة.

SSL_CTX_add_client_CA() و SSL_add_client_CA() و SSL_CTX_add1_to_CA_list() و SSL_add1_to_CA_list() تُرجع 1 للنجاح و 0 للفشل.

SSL_get0_peer_CA_list() تُرجع كومة من أسماء المراجع المصدقة (CAs) المُرسلة من النظير أو NULL أو كومة فارغة إذا لم تُرسل أي قائمة.

أمثلة
افحص جميع الشهادات في CAfile وأدرجها كمراجع مصدقة (CAs) مقبولة:

 SSL_CTX_set_client_CA_list(ctx, SSL_load_client_CA_file(CAfile));

انظر أيضًا
ssl(7), SSL_load_client_CA_file(3), SSL_CTX_load_verify_locations(3)

حقوق النسخ
حقوق الطبع والنشر 2000-2018 لمؤلفي مشروع 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.