.\" -*- coding: UTF-8 -*- .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .de IX .. .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .if n .ds AD l .\" .\" Required to disable full justification in groff 1.23.0. .\" ======================================================================== .\" .IX Title "SSL_CTX_USE_CERTIFICATE 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SSL_CTX_USE_CERTIFICATE 3ssl "7 أبريل 2026" 3.6.2 OpenSSL .if n .ad l .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .nh .SH الاسم SSL_CTX_use_certificate, SSL_CTX_use_certificate_ASN1, SSL_CTX_use_certificate_file, SSL_use_certificate, SSL_use_certificate_ASN1, SSL_use_certificate_file, SSL_CTX_use_certificate_chain_file, SSL_use_certificate_chain_file, SSL_CTX_use_PrivateKey, SSL_CTX_use_PrivateKey_ASN1, SSL_CTX_use_PrivateKey_file, SSL_CTX_use_RSAPrivateKey, SSL_CTX_use_RSAPrivateKey_ASN1, SSL_CTX_use_RSAPrivateKey_file, SSL_use_PrivateKey_file, SSL_use_PrivateKey_ASN1, SSL_use_PrivateKey, SSL_use_RSAPrivateKey, SSL_use_RSAPrivateKey_ASN1, SSL_use_RSAPrivateKey_file, SSL_CTX_check_private_key, SSL_check_private_key, SSL_CTX_use_cert_and_key, SSL_use_cert_and_key \&\- تحميل بيانات الشهادة والمفتاح .SH موجز .IX Header موجز .Vb 1 \& #include \& \& int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x); \& int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, const unsigned char *d); \& int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type); \& int SSL_use_certificate(SSL *ssl, X509 *x); \& int SSL_use_certificate_ASN1(SSL *ssl, const unsigned char *d, int len); \& int SSL_use_certificate_file(SSL *ssl, const char *file, int type); \& \& int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); \& int SSL_use_certificate_chain_file(SSL *ssl, const char *file); \& \& int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey); \& int SSL_CTX_use_PrivateKey_ASN1(int pk, SSL_CTX *ctx, const unsigned char *d, \& long len); \& int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type); \& int SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa); \& int SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, const unsigned char *d, long len); \& int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, int type); \& int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey); \& int SSL_use_PrivateKey_ASN1(int pk, SSL *ssl, const unsigned char *d, long len); \& int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type); \& int SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa); \& int SSL_use_RSAPrivateKey_ASN1(SSL *ssl, const unsigned char *d, long len); \& int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); \& \& int SSL_CTX_check_private_key(const SSL_CTX *ctx); \& int SSL_check_private_key(const SSL *ssl); \& \& int SSL_CTX_use_cert_and_key(SSL_CTX *ctx, X509 *x, EVP_PKEY *pkey, STACK_OF(X509) *chain, int override); \& int SSL_use_cert_and_key(SSL *ssl, X509 *x, EVP_PKEY *pkey, STACK_OF(X509) *chain, int override); .Ve .SH الوصف .IX Header الوصف تُحمّل هذه الدوال الشهادات والمفاتيح الخاصة في كائن SSL_CTX أو SSL، على التوالي. .PP تُحمّل فئة الدوال SSL_CTX_* الشهادات والمفاتيح في كائن SSL_CTX \fBctx\fP. تُمرر المعلومات إلى كائنات SSL \fBssl\fP المنشأة من \fBctx\fP باستخدام \fBSSL_new\fP\|(3) عن طريق النسخ، لذا فإن التغييرات المطبقة على \fBctx\fP لا تنتشر إلى كائنات SSL الموجودة مسبقًا. .PP تُحمّل فئة الدوال SSL_* الشهادات والمفاتيح فقط في كائن SSL محدد. تُحفظ المعلومات المحددة عند استدعاء \&\fBSSL_clear\fP\|(3) لكائن SSL هذا. .PP \&\fBSSL_CTX_use_certificate()\fP تُحمّل الشهادة \fBx\fP في \fBctx\fP، \&\fBSSL_use_certificate()\fP تُحمّل \fBx\fP في \fBssl\fP. يمكن تحديد باقي الشهادات اللازمة لتكوين سلسلة الشهادات الكاملة باستخدام الدالة \&\fBSSL_CTX_add_extra_chain_cert\fP\|(3). عند النجاح، يُزاد العداد المرجعي لـ \fBx\fP. .PP \&\fBSSL_CTX_use_certificate_ASN1()\fP تُحمّل الشهادة المُرمَّزة بـ ASN1 من موقع الذاكرة \fBd\fP (بطول \fBlen\fP) في \fBctx\fP، \&\fBSSL_use_certificate_ASN1()\fP تُحمّل الشهادة المُرمَّزة بـ ASN1 في \fBssl\fP. .PP \&\fBSSL_CTX_use_certificate_file()\fP تُحمّل أول شهادة مخزنة في \fBfile\fP في \fBctx\fP. يجب تحديد تنسيق \fBtype\fP للشهادة من الأنواع المعروفة SSL_FILETYPE_PEM، SSL_FILETYPE_ASN1. \&\fBSSL_use_certificate_file()\fP تُحمّل الشهادة من \fBfile\fP في \fBssl\fP. راجع قسم NOTES لمعرفة سبب تفضيل \fBSSL_CTX_use_certificate_chain_file()\fP. .PP \&\fBSSL_CTX_use_certificate_chain_file()\fP تُحمّل سلسلة شهادات من \&\fBfile\fP في \fBctx\fP. يجب أن تكون الشهادات بتنسيق PEM ويجب أن تُرتَّب بدءًا من شهادة الموضوع (شهادة العميل أو الخادم الفعلية)، متبوعة بشهادات CA وسيطة إن وجدت، وتنتهي بأعلى مستوى (جذر) CA. \fBSSL_use_certificate_chain_file()\fP مماثلة باستثناء أنها تُحمّل سلسلة الشهادات في \fBssl\fP. .PP \&\fBSSL_CTX_use_PrivateKey()\fP تُضيف \fBpkey\fP كمفتاح خاص إلى \fBctx\fP. \fBctx\fP \fBيجب ألا\fP يكون NULL. \&\fBSSL_CTX_use_RSAPrivateKey()\fP تُضيف المفتاح الخاص \fBrsa\fP من نوع RSA إلى \fBctx\fP. \fBSSL_use_PrivateKey()\fP تُضيف \fBpkey\fP كمفتاح خاص إلى \fBssl\fP؛ \&\fBSSL_use_RSAPrivateKey()\fP تُضيف \fBrsa\fP كمفتاح خاص من نوع RSA إلى \fBssl\fP. إذا كانت شهادة قد عُيِّنت بالفعل والمفتاح الخاص لا ينتمي إلى الشهادة، يُعاد خطأ. لتغيير زوج [شهادة/مفتاح خاص]، يجب تعيين الشهادة الجديدة أولاً باستخدام \fBSSL_use_certificate()\fP أو \&\fBSSL_CTX_use_certificate()\fP قبل تعيين المفتاح الخاص باستخدام \&\fBSSL_CTX_use_PrivateKey()\fP أو \fBSSL_use_PrivateKey()\fP. عند النجاح، يُزاد العداد المرجعي لـ \fBpkey\fP/\fBrsa\fP. .PP \&\fBSSL_CTX_use_cert_and_key()\fP و \fBSSL_use_cert_and_key()\fP تُسند الشهادة X.509 \fBx\fP، المفتاح الخاص \fBkey\fP، وسلسلة الشهادات \fBchain\fP إلى \fBssl\fP أو \fBctx\fP المناظر. يجب أن تكون الوسيطة \fBpkey\fP هي المفتاح الخاص للشهادة X.509 \fBx\fP. إذا كانت الوسيطة \fBoverride\fP تساوي 0، فسيُضبط \&\fBx\fP و \fBpkey\fP و \fBchain\fP فقط إذا لم تكن جميعها مضبوطة سابقًا. إذا كانت \fBoverride\fP غير صفرية، فتُضبط الشهادة والمفتاح الخاص وشهادات السلسلة دائمًا. إذا كانت \fBpkey\fP فارغة (NULL)، فيُستخدم المفتاح العام لـ \fBx\fP كمفتاح خاص. يُقصد استخدام هذا مع العتاد (عبر واجهة ENGINE) الذي يُخزّن المفتاح الخاص بأمان، بحيث لا يمكن الوصول إليه بواسطة OpenSSL. يُزاد العدد المرجعي للمفتاح العام (مرتين إذا لم يكن هناك مفتاح خاص)؛ ولا يُنسخ ولا يُكرر. يسمح هذا بنجاح جميع فحوصات التحقق من المفتاح الخاص دون إسناد مفتاح خاص فعلي عبر \fBSSL_CTX_use_PrivateKey()\fP، إلخ. .PP \&\fBSSL_CTX_use_PrivateKey_ASN1()\fP تُضيف المفتاح الخاص من النوع \fBpk\fP المُخزّن في موقع الذاكرة \fBd\fP (بطول \fBlen\fP) إلى \fBctx\fP. \&\fBSSL_CTX_use_RSAPrivateKey_ASN1()\fP تُضيف المفتاح الخاص من نوع RSA المُخزّن في موقع الذاكرة \fBd\fP (بطول \fBlen\fP) إلى \fBctx\fP. \&\fBSSL_use_PrivateKey_ASN1()\fP و \fBSSL_use_RSAPrivateKey_ASN1()\fP تُضيفان المفتاح الخاص إلى \fBssl\fP. .PP \&\fBSSL_CTX_use_PrivateKey_file()\fP تُضيف أول مفتاح خاص يُوجد في \&\fBfile\fP إلى \fBctx\fP. يجب تحديد تنسيق \fBtype\fP للمفتاح الخاص من الأنواع المعروفة SSL_FILETYPE_PEM، SSL_FILETYPE_ASN1. \&\fBSSL_CTX_use_RSAPrivateKey_file()\fP تُضيف أول مفتاح RSA خاص يُوجد في \&\fBfile\fP إلى \fBctx\fP. \fBSSL_use_PrivateKey_file()\fP تُضيف أول مفتاح خاص يُوجد في \fBfile\fP إلى \fBssl\fP؛ \fBSSL_use_RSAPrivateKey_file()\fP تُضيف أول مفتاح RSA خاص يُوجد إلى \fBssl\fP. \fBctx\fP \fBيجب ألا\fP يكون فارغًا (NULL). .PP \&\fBSSL_CTX_check_private_key()\fP تفحص اتساق المفتاح الخاص مع الشهادة المناظرة المُحمّلة في \fBctx\fP. إذا كان أكثر من زوج مفتاح/شهادة (RSA/DSA) مُثبّتًا، فسيُفحص آخر عنصر مُثبّت. إذا كان آخر عنصر مثلاً شهادة أو مفتاح RSA، فسيُفحص زوج مفتاح/شهادة RSA. \fBSSL_check_private_key()\fP تُؤدي نفس الفحص لـ \fBssl\fP. إذا لم يُضف أي مفتاح/شهادة صراحةً لهذا \fBssl\fP، فسيُفحص آخر عنصر أُضيف إلى \fBctx\fP. .SH ملاحظات .IX Header ملاحظات يمكن لمخزن الشهادات الداخلي لـ OpenSSL حمل عدة أزواج مفتاح خاص/شهادة في وقت واحد. تعتمد الشهادة المُستخدمة على المُعمِّي المُختار، انظر أيضًا \fBSSL_CTX_set_cipher_list\fP\|(3). .PP عند قراءة الشهادات والمفاتيح الخاصة من ملف، يمكن لملفات النوع SSL_FILETYPE_ASN1 (المعروفة أيضًا باسم \fBDER\fP، ترميز ثنائي) احتواء شهادة واحدة أو مفتاح خاص واحد فقط، وبالتالي \&\fBSSL_CTX_use_certificate_chain_file()\fP قابل للتطبيق فقط على تنسيق PEM. يمكن لملفات النوع SSL_FILETYPE_PEM احتواء أكثر من عنصر واحد. .PP \&\fBSSL_CTX_use_certificate_chain_file()\fP تُضيف أول شهادة تُوجد في الملف إلى مخزن الشهادات. تُضاف الشهادات الأخرى إلى مخزن شهادات السلسلة باستخدام \fBSSL_CTX_add1_chain_cert\fP\|(3). ملاحظة: إصدارات OpenSSL قبل 1.0.2 كان لديها مخزن سلسلة شهادات واحد فقط لجميع أنواع الشهادات، بينما OpenSSL 1.0.2 والإصدارات الأحدث لديها مخزن سلسلة منفصل لكل نوع. يجب استخدام \fBSSL_CTX_use_certificate_chain_file()\fP بدلاً من الدالة \fBSSL_CTX_use_certificate_file()\fP للسماح باستخدام سلاسل شهادات كاملة حتى عند عدم استخدام تخزين CA موثوق أو عندما لا تُضاف CA المُصدِرة للشهادة إلى تخزين CA الموثوق. .PP إذا كانت هناك حاجة لشهادات إضافية لإكمال السلسلة أثناء مفاوضات TLS، فتُبحث شهادات CA بالإضافة إلى ذلك في مواقع شهادات CA الموثوقة، انظر \&\fBSSL_CTX_load_verify_locations\fP\|(3). .PP يمكن أن تكون المفاتيح الخاصة المحملة من ملف مُعمّاة. لتحميل المفاتيح المُعمّاة بنجاح، يجب أن تكون دالة تُعيد كلمة السر قد وُفّرت، انظر \&\fBSSL_CTX_set_default_passwd_cb\fP\|(3). (قد تكون ملفات الشهادات مُعمّاة أيضًا من الناحية الفنية، لكن ذلك لا معنى له لأن البيانات في الشهادة تُعتبر عامة على أي حال.) .PP جميع الدوال لتعيين شهادة جديدة ستستبدل أي شهادة موجودة من نفس النوع التي وُضعت مسبقًا. وبالمثل، جميع الدوال لتعيين مفتاح خاص جديد ستستبدل أي مفتاح خاص وُضع مسبقًا. يجب على التطبيقات استدعاء \fBSSL_CTX_check_private_key\fP\|(3) أو \&\fBSSL_check_private_key\fP\|(3) حسب الاقتضاء بعد تحميل شهادة جديدة ومفتاح خاص لتأكيد تطابق الشهادة والمفتاح. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" عند النجاح، تُرجع الدوال 1. وإلا، افحص كومة الأخطاء لمعرفة السبب. .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBssl\fP\|(7), \fBSSL_new\fP\|(3), \fBSSL_clear\fP\|(3), \&\fBSSL_CTX_load_verify_locations\fP\|(3), \&\fBSSL_CTX_set_default_passwd_cb\fP\|(3), \&\fBSSL_CTX_set_cipher_list\fP\|(3), \&\fBSSL_CTX_set_client_CA_list\fP\|(3), \&\fBSSL_CTX_set_client_cert_cb\fP\|(3), \&\fBSSL_CTX_add_extra_chain_cert\fP\|(3) .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2000\-2024 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة. .PP مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط . .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .