OPENSSL-REQ(1ssl)

الاسم
openssl-req - أمر توليد الشهادات وطلبات الشهادات بتنسيق PKCS#10

موجز
openssl req [-help] [-cipher] [-inform DER|PEM] [-outform DER|PEM] [-in اسم_الملف] [-passin معطى] [-out اسم_الملف] [-passout معطى] [-text] [-pubkey] [-noout] [-verify] [-modulus] [-new] [-newkey معطى] [-pkeyopt خيار:قيمة] [-noenc] [-nodes] [-key اسم_الملف|uri] [-keyform DER|PEM|P12|ENGINE] [-keyout اسم_الملف] [-keygen_engine معرف] [-خلاصة] [-config اسم_الملف] [-section اسم] [-x509] [-x509v1] [-CA اسم_الملف|uri] [-CAkey اسم_الملف|uri] [-not_before تاريخ] [-not_after تاريخ] [-days n] [-set_serial n] [-newhdr] [-copy_extensions معطى] [-extensions قسم] [-reqexts قسم] [-addext ext] [-precert] [-utf8] [-reqopt] [-subject] [-subj معطى] [-multivalue-rdn] [-sigopt nm:v] [-vfyopt nm:v] [-batch] [-verbose] [-quiet] [-nameopt خيار] [-rand ملفات] [-writerand ملف] [-engine معرف] [-provider اسم] [-provider-path مسار] [-provparam [اسم:]مفتاح=قيمة] [-propquery propq]

الوصف
يُنشئ هذا الأمر طلبات الشهادات (CSRs) ويعالجها بشكل رئيس بتنسيق PKCS#10. يمكنه بالإضافة إلى ذلك إنشاء شهادات ذاتية التوقيع لاستخدامها كمراجع مصدقة (CAs) رئيسة على سبيل المثال.

الخيارات

-help
    اطبع رسالة الاستخدام.

-inform DER|PEM
    تنسيق ملف مدخلات طلب الشهادة (CSR) المراد استخدامه؛ يُجرب PEM أولاً بشكل مبدئي. راجع openssl-format-options(1) للتفاصيل.

-outform DER|PEM
    تنسيق المخرجات؛ غير محدد بشكل مبدئي. راجع openssl-format-options(1) للتفاصيل.

    البيانات هي كائن PKCS#10.

-cipher اسم
    حدد التعمية المراد استخدامها لتشفير المفتاح الخاص. إذا لم تُحدد أي تعمية، سيُستخدم AES-256-CBC بشكل مبدئي. يمكنك تجاوز ذلك بتقديم أي اسم تعمية صالح في OpenSSL.

-in اسم_الملف
    يحدد هذا اسم ملف المدخلات لقراءة الطلب منه. يُستخدم المدخل القياسي بشكل مبدئي ما لم يُحدد -x509 أو -CA. لا يُقرأ الطلب إلا إذا لم تُحدد خيارات الإنشاء (-new أو -newkey أو -precert).

-sigopt اسم:قيمة
    مرر الخيارات إلى خوارزمية التوقيع أثناء عمليات التوقيع. أسماء وقيم هذه الخيارات خاصة بالخوارزمية.

-vfyopt اسم:قيمة
    مرر الخيارات إلى خوارزمية التوقيع أثناء عمليات الاستيثاق. أسماء وقيم هذه الخيارات خاصة بالخوارزمية.

-passin معطى
    مصدر كلمة المرور لمدخلات المفتاح الخاص والشهادة. لمزيد من المعلومات حول تنسيق arg راجع openssl-passphrase-options(1).

-passout معطى
    مصدر كلمة المرور لملف المخرجات. لمزيد من المعلومات حول تنسيق arg راجع openssl-passphrase-options(1).

-out اسم_الملف
    يحدد هذا اسم ملف المخرجات للكتابة إليه أو المخرج القياسي مبدئيًا.

-text
    يطبع طلب الشهادة بصيغة نصية.

-subject
    يطبع موضوع طلب الشهادة (أو موضوع الشهادة إذا استُخدم الخيار -x509).

-pubkey
    يطبع المفتاح العام.

-noout
    يمنع هذا الخيار إخراج النسخة المرمزة من طلب الشهادة.

-modulus
    يطبع قيمة المقياس (modulus) للمفتاح العام المتضمن في الطلب.

-verify
    يستوثق من التوقيع الذاتي على الطلب. إذا فشل الاستيثاق، سيخرج البرنامج فوراً، أي سيُتخطى معالجة أي خيارات إضافية (مثل -text).

-new
    يولد هذا الخيار طلب شهادة جديد. سيطلب من المستخدم قيم الحقول ذات الصلة. الحقول الفعلية المطلوبة وأحجامها القصوى والدنيا محددة في ملف الضبط وأي امتدادات مطلوبة.

    إذا لم يُعط الخيار -key، فسيولد مفتاحاً خاصاً جديداً باستخدام المعلومات المحددة في ملف الضبط أو المعطاة عبر الخيارين -newkey و -pkeyopt، وإلا فبشكل مبدئي سيُولد مفتاح RSA بطول 2048 بت.

-newkey معطى
    يُستخدم هذا الخيار لتوليد مفتاح خاص جديد ما لم يُعط -key. يُستخدم لاحقاً كما لو كان قد أُعطي باستخدام خيار -key.

    يتضمن هذا الخيار علامة -new لإنشاء طلب شهادة جديد أو شهادة جديدة في حال استخدام -x509.

    يأخذ المعطى أحد عدة أشكال.

    [rsa:]nbits يولد مفتاح RSA بحجم nbits. إذا حُذف nbits، أي حُدد -newkey rsa، فسيُستخدم حجم المفتاح المبدئي المحدد في ملف الضبط عبر خيار default_bits إن وجد، وإلا فسيُستخدم 2048.

    تدعم جميع الخوارزميات الأخرى شكل -newkey اسم_الخوارزمية:ملف، حيث يكون ملف ملف معاملات الخوارزمية، المُنشأ عبر "openssl genpkey -genparam" أو شهادة X.509 لمفتاح ذي خوارزمية مناسبة.

    param:ملف يولد مفتاحاً باستخدام ملف المعاملات أو الشهادة ملف، وتُحدد الخوارزمية بواسطة المعاملات.

    اسم_الخوارزمية[:ملف] يولد مفتاحاً باستخدام الخوارزمية المعطاة اسم_الخوارزمية. إذا أُعطي ملف معاملات ملف فتُستخدم المعاملات المحددة هناك، حيث يجب أن تتطابق معاملات الخوارزمية مع اسم_الخوارزمية. إذا لم تُعط معاملات الخوارزمية، فيجب تحديد أي معاملات ضرورية عبر خيار -pkeyopt.

    dsa:اسم_الملف يولد مفتاح DSA باستخدام المعاملات في الملف اسم_الملف. ec:اسم_الملف يولد مفتاح EC (صالح للاستخدام مع خوارزميات ECDSA أو ECDH)، gost2001:اسم_الملف يولد مفتاح GOST R 34.10-2001 (يتطلب محرك gost مضبوطاً في ملف الضبط). إذا حُدد gost2001 فقط، فيجب تحديد مجموعة معاملات عبر -pkeyopt paramset:X

-pkeyopt خيار:قيمة
    اضبط خيار خوارزمية المفتاح العام opt على القيمة value. تعتمد مجموعة الخيارات المدعومة بدقة على خوارزمية المفتاح العام المستخدمة وتنفيذها. راجع "KEY GENERATION OPTIONS" في openssl-genpkey(1) لمزيد من التفاصيل.

-key اسم_الملف|uri
    يوفر هذا الخيار المفتاح الخاص لتوقيع شهادة جديدة أو طلب شهادة. ما لم يُعط -in، يوضع المفتاح العام المقابل في الشهادة الجديدة أو طلب الشهادة، مما يؤدي إلى توقيع ذاتي.

    بالنسبة لتوقيع الشهادة، يتم تجاوز هذا الخيار بواسطة الخيار -CA.

    يقبل هذا الخيار أيضاً المفاتيح الخاصة بتنسيق PKCS#8 لملفات تنسيق PEM.

-keyform DER|PEM|P12|ENGINE
    تنسيق المفتاح الخاص؛ غير محدد بشكل مبدئي. راجع openssl-format-options(1) للتفاصيل.

-keyout اسم_الملف
    يعطي هذا اسم الملف لكتابة أي مفتاح خاص إليه سُيُنشأ حديثاً أو قُرئ من -key. إذا لم يُعط الخيار -keyout ولا الخيار -key، فسيُستخدم اسم الملف المحدد في ملف الضبط عبر خيار default_keyfile إن وجد. وبالتالي، إذا أردت كتابة المفتاح الخاص وكان خيار -key مقدماً، فيجب تقديم خيار -keyout صراحة. إذا وُلد مفتاح جديد ولم يُحدد اسم ملف، فسيُكتب المفتاح إلى المخرج القياسي.

-noenc
    إذا حُدد هذا الخيار، فلن يُعمى المفتاح الخاص في حال إنشائه.

-nodes
    هذا الخيار مهجور منذ الإصدار OpenSSL 3.0؛ استخدم -noenc بدلاً منه.

-مجموع
    يحدد هذا ملخص الرسالة (digest) لتوقيع الطلب. يمكن استخدام أي ملخص يدعمه أمر OpenSSL ‏dgst. يتجاوز هذا خوارزمية الملخص المحددة في ملف الإعداد.

    قد تتجاوز بعض خوارزميات المفاتيح العامة هذا الاختيار. على سبيل المثال، تستخدم تواقيع DSA دائمًا SHA1، وتواقيع GOST R 34.10 تستخدم دائمًا GOST R 34.11-94 (-md_gost94)، بينما لا تستخدم Ed25519 و Ed448 أي ملخص أبدًا.

-config اسم_الملف
    يسمح هذا بتحديد ملف إعداد بديل. اختياري؛ للاطلاع على وصف للقيمة المبدئية، انظر "COMMAND SUMMARY" في openssl(1).

-section الاسم
    يحدد اسم القسم المراد استخدامه؛ القيمة المبدئية هي req.

-subj معطى
    يضبط اسم الموضوع لطلب جديد أو يحل محل اسم الموضوع عند معالجة طلب شهادة.

    يجب تنسيق المعطى كـ "/type0=value0/type1=value1/type2=...". يمكن الهروب من المحارف الخاصة باستخدام "\" (الشرطة المائلة الخلفية)، وتُحفظ المسافات البيضاء. القيم الفارغة مسموح بها، لكن النوع المقابل لن يُضمن في الطلب. إعطاء شرطة مائلة واحدة "/" سيؤدي إلى تسلسل RDNs فارغ (NULL-DN). يمكن تشكيل RDNs متعددة القيم بوضع محرف "+" بدلًا من "/" بين تأكيدات قيم السمات (AVAs) التي تحدد أعضاء المجموعة. مثال:

    "/DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe"

-multivalue-rdn
    هذا الخيار مهجور وليس له أي تأثير.

-x509
    يُخرج هذا الخيار شهادة بدلًا من طلب شهادة. يُستخدم هذا عادةً لتوليد شهادات اختبار. وهو متضمن ضمنيًا في الخيار -CA.

    يتضمن هذا الخيار العلم -new إذا لم يُعطَ الخيار -in.

    إذا حُدد طلب موجود باستخدام الخيار -in، فسيُحوّل إلى شهادة؛ وإلا سيُنشأ الطلب من الصفر.

    ما لم يُحدد باستخدام الخيار -set_serial، سيُستخدم رقم عشوائي كبير للرقم التسلسلي.

    ما لم يُستخدم الخيار -copy_extensions، فلن تُنسخ امتدادات X.509 من أي ملف مدخلات للطلب.

    يمكن تحديد امتدادات X.509 المراد إضافتها في ملف الإعداد، ربما باستخدام خيارَي -config و -extensions، و/أو باستخدام الخيار -addext.

    ما لم يُعطَ الخيار -x509v1، فإن الشهادات المولدة ستحمل الإصدار 3 من X.509. وما لم يُحدد غير ذلك، تُضمن امتدادات معرف المفتاح كما هو موضح في x509v3_config(5).

-x509v1
    طلب توليد شهادات بالإصدار 1 من X.509. يتضمن هذا الخيار -x509. إذا أُعطيت امتدادات X.509، فسيُضبط الإصدار 3 من X.509 على أي حال.

-CA اسم_الملف|uri
    يحدد شهادة "CA" (سلطة الشهادات) التي ستُستخدم لتوقيع شهادة جديدة ويتضمن استخدام -x509. عند وجوده، فإنه يتصرف كـ "سلطة شهادات مصغرة" كما يلي: يُوضع اسم موضوع شهادة "CA" كاسم مصدر في الشهادة الجديدة، والتي تُوقع بعد ذلك باستخدام مفتاح "CA" المعطى كما هو محدد أدناه.

-CAkey اسم_الملف|uri
    يضبط مفتاح "CA" الخاص لتوقيع الشهادة به. يجب أن يطابق المفتاح الخاص المفتاح العام للشهادة المعطاة مع -CA. إذا لم يُوفر هذا الخيار، فيجب أن يكون المفتاح موجودًا في مدخلات -CA.

-not_before تاريخ
    عند استخدام -x509، يسمح هذا بضبط تاريخ البدء صراحةً، وإلا فسيُتجاهل. تنسيق تاريخ هو YYMMDDHHMMSSZ (نفس بنية ASN1 UTCTime)، أو YYYYMMDDHHMMSSZ (نفس بنية ASN1 GeneralizedTime). في كلا التنسيقين، يجب أن تتوفر الثواني SS والمنطقة الزمنية Z. بدلاً من ذلك، يمكنك أيضاً استخدام "today".

-not_after تاريخ
    عند استخدام -x509، يسمح هذا بضبط تاريخ الانتهاء صراحةً، وإلا فسيُتجاهل. تنسيق تاريخ هو YYMMDDHHMMSSZ (نفس بنية ASN1 UTCTime)، أو YYYYMMDDHHMMSSZ (نفس بنية ASN1 GeneralizedTime). في كلا التنسيقين، يجب أن تتوفر الثواني SS والمنطقة الزمنية Z. بدلاً من ذلك، يمكنك أيضاً استخدام "today".

    يتجاوز هذا خيار -days.

-days n
    عند استخدام -x509، يحدد هذا عدد الأيام من اليوم لاعتماد الشهادة، وإلا فسيُتجاهل. يجب أن يكون n عددًا صحيحًا موجبًا. القيمة المبدئية هي 30 يومًا.

    بغض النظر عن الخيار -not_before، تُحسب الأيام دائمًا بدءًا من اليوم. عند استخدامه مع الخيار -not_after، يكون لتاريخ الانتهاء الصريح الأولوية.

-set_serial n
    الرقم التسلسلي المراد استخدامه عند إخراج شهادة موقعة ذاتيًا. يمكن تحديد هذا كقيمة عشرية أو قيمة سداسية عشرية إذا كانت مسبوقة بـ "0x". إذا لم يُعطَ، فسيُستخدم رقم عشوائي كبير.

-copy_extensions معطى
    يحدد كيفية التعامل مع امتدادات X.509 في طلبات الشهادات عند استخدام -x509. إذا كان المعطى هو none أو لم يكن هذا الخيار موجودًا، فستُتجاهل الامتدادات. إذا كان المعطى هو copy أو copyall، فستُنسخ جميع الامتدادات في الطلب إلى الشهادة.

    الاستخدام الرئيس لهذا الخيار هو السماح لطلب شهادة بتزويد قيم لبعض الامتدادات مثل subjectAltName.

-extensions قسم، -reqexts قسم
    يمكن استخدامه لتجاوز اسم قسم ملف الإعداد الذي تُضمن منه امتدادات X.509 في الشهادة (عند استخدام -x509) أو طلب الشهادة. يسمح هذا باستخدام عدة أقسام مختلفة في نفس ملف الإعداد لتحديد طلبات لأغراض متنوعة.

-addext امتداد
    أضف امتدادًا محددًا إلى الشهادة (إذا كان -x509 قيد الاستخدام) أو طلب الشهادة. يجب أن يكون للمعطى شكل زوج "key=value" كما يظهر في ملف الإعداد.

    إذا أُضيف امتداد باستخدام هذا الخيار وله نفس OID لواحد معرف في قسم الامتداد بملف الإعداد، فإنه يتجاوزه.

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

-precert
    سيُضاف امتداد تسميم (poison extension) إلى الشهادة، مما يجعلها "شهادة مسبقة" (انظر RFC6962). يمكن تقديم هذه الشهادة إلى سجلات شفافية الشهادات للحصول على طوابع زمنية للشهادة الموقعة (SCTs). يمكن بعد ذلك تضمين SCTs هذه في الشهادة المسبقة كامتداد، قبل إزالة التسميم وتوقيع الشهادة.

    يتضمن هذا العلم -new.

-utf8
    يؤدي هذا الخيار إلى تفسير قيم الحقول كسلاسل UTF8، بينما تُفسر مبدئيًا كـ ASCII. هذا يعني أن قيم الحقول، سواء طُلبت من طرفية أو حُصل عليها من ملف إعداد، يجب أن تكون سلاسل UTF8 صالحة.

-reqopt خيار
    تخصيص تنسيق الطباعة المستخدم مع -text. يمكن أن يكون معطى الخيار خيارًا واحدًا أو خيارات متعددة مفصولة بفاصلات.

    انظر مناقشة معامل -certopt في أمر openssl-x509(1).

-newhdr
    يضيف كلمة NEW إلى سطور الترويسة والتذييل لملف PEM في الطلب المخرَج. تحتاج بعض البرمجيات (مثل خادم شهادات نيتسكيب) وبعض سلطات الشهادات إلى هذا.

-batch
    نمط غير تفاعلي.

-verbose
    اطبع تفاصيل إضافية حول العمليات التي تُجرى.

-quiet
    اطبع تفاصيل أقل حول العمليات التي تُجرى، وهو ما قد يكون مفيدًا أثناء سكربتات الدفعة أو خطوط الأنابيب (تُخمد "نقاط التقدم" تحديدًا أثناء توليد المفاتيح).

-keygen_engine المعرف
    يحدد محركًا (عبر سلسلة المعرف الفريدة الخاصة به) والذي سيُستخدم لعمليات توليد المفاتيح.

-nameopt خيار
    يحدد هذا كيفية عرض أسماء الموضوع أو المصدر. انظر openssl-namedisplay-options(1) للحصول على التفاصيل.

-rand ملفات، -writerand ملف
    انظر "خيارات الحالة العشوائية" في openssl(1) لمزيد من التفاصيل.

-engine id
    انظر "خيارات المحرك" في openssl(1). هذا الخيار مهجور.

-provider الاسم
-provider-path المسار
-provparam [الاسم:]المفتاح=القيمة
-propquery استعلام_الخصائص
    انظر "خيارات المزود" في openssl(1)، و provider(7)، و property(7).

تنسيق ملف الضبط
تُحدد خيارات الضبط في قسم req من ملف الضبط. يمكن تحديد اسم بديل باستخدام خيار -section. وكما هو الحال مع جميع ملفات الضبط، إذا لم تُحدد قيمة في القسم المحدد، فيُبحث في القسم المبدئي (default) أو غير المسمى أيضًا.

الخيارات المتاحة موصوفة بالتفصيل أدناه.

input_password، و output_password
    كلمات المرور لملف المفتاح الخاص للمدخلات (في حال وجوده) ولملف المفتاح الخاص للمخرجات (في حال إنشائه). تتجاوز خيارات سطر الأوامر passin و passout قيم ملف الضبط.

default_bits
    يحدد حجم المفتاح المبدئي بالبت.

    يُستخدم هذا الخيار بالاقتران مع خيار -new لتوليد مفتاح جديد. يمكن تجاوزه بتحديد حجم مفتاح صريح في خيار -newkey. أصغر حجم مفتاح مقبول هو 512 بت. إذا لم يُحدد حجم المفتاح، فيُستخدم 2048 بت.

default_keyfile
    هذا هو اسم الملف المبدئي لكتابة المفتاح الخاص فيه. إذا لم يُحدد، فيُكتب المفتاح إلى المخرج القياسي. يمكن تجاوز ذلك عبر خيار -keyout.

oid_file
    يحدد هذا ملفًا يحتوي على معرفات كائنات إضافية. يجب أن يتكون كل سطر في الملف من الصيغة الرقمية لمعرف الكائن يليه فراغ ثم الاسم القصير يليه فراغ وأخيرًا الاسم الطويل.

oid_section
    يحدد هذا قسمًا في ملف الضبط يحتوي على معرفات كائنات إضافية. يجب أن يتكون كل سطر من الاسم القصير لمعرف الكائن يليه = والصيغة الرقمية. يكون الاسمان القصير والطويل متماثلين عند استخدام هذا الخيار.

RANDFILE
    عند بدء التشغيل، يُحمّل الملف المحدد في مولد الأرقام العشوائية، وعند الخروج تُكتب فيه 256 بايت. يُستخدم لتوليد المفاتيح الخاصة.

encrypt_key
    إذا ضُبط هذا الخيار على no، فلن يُعمى المفتاح الخاص في حال توليده. هذا يعادل خيار سطر الأوامر -noenc. ولأغراض التوافقية، يعد الخيار encrypt_rsa_key خيارًا مكافئًا.

default_md
    يحدد هذا الخيار خوارزمية الملخص (digest) المستخدمة. يمكن استخدام أي ملخص تدعمه أمر dgst في OpenSSL. يمكن تجاوز هذا الخيار في سطر الأوامر. تتجاهل بعض خوارزميات التوقيع (مثل Ed25519 و Ed448) أي ملخص ضُبط.

string_mask
    يحجب هذا الخيار استخدام أنواع معينة من السلاسل النصية في حقول معينة. لن يحتاج معظم المستخدمين لتغيير هذا الخيار. يمكن ضبطه على عدة قيم:

    utf8only - تُستخدم UTF8Strings فقط (هذه هي القيمة المبدئية)
    pkix - أي نوع سلسلة نصية باستثناء T61Strings
    nombstr - أي نوع سلسلة نصية باستثناء BMPStrings و UTF8Strings
    default - أي نوع من أنواع السلاسل النصية

    لاحظ أن utf8only هو توصية PKIX في RFC 5280، وهو string_mask المبدئي؛ علماً أن default ليس الخيار المبدئي. قيمة nombstr هي حل بديل لبعض البرمجيات التي تواجه مشاكل مع سلاسل BMPStrings و UTF8Strings متغيرة الحجم.

req_extensions
    يحدد هذا قسم ملف الضبط الذي يحتوي على قائمة الامتدادات المراد إضافتها إلى طلب الشهادة. يمكن تجاوزه بواسطة مفتاح سطر الأوامر -reqexts (أو -extensions). راجع صفحة الدليل x509v3_config(5) لتفاصيل تنسيق قسم الامتدادات.

x509_extensions
    يحدد هذا قسم ملف الضبط الذي يحتوي على قائمة الامتدادات المراد إضافتها إلى الشهادة المولدة عند استخدام خيار -x509. يمكن تجاوزه بواسطة مفتاح سطر الأوامر -extensions.

prompt
    إذا ضُبط على القيمة no، فسيؤدي ذلك إلى تعطيل المطالبة بحقول الشهادة وأخذ القيم من ملف الضبط مباشرة. كما يغير التنسيق المتوقع لقسمي distinguished_name و attributes.

utf8
    إذا ضُبط على القيمة yes، فستُفسر قيم الحقول كسلاسل UTF8، بينما تُفسر مبدئيًا كـ ASCII. وهذا يعني أن قيم الحقول، سواء طُلبت من الطرفية أو جُلبت من ملف الضبط، يجب أن تكون سلاسل UTF8 صالحة.

attributes
    يحدد هذا القسم الذي يحتوي على أي سمات للطلب: تنسيقه هو نفس تنسيق distinguished_name. عادةً ما تحتوي هذه على أنواع challengePassword أو unstructuredName. يتم تجاهلها حاليًا بواسطة أدوات توقيع الطلبات في OpenSSL ولكن قد تطلبها بعض سلطات التصديق (CAs).

distinguished_name
    يحدد هذا القسم الذي يحتوي على حقول الاسم المميز (DN) المطلوب الاستعلام عنها عند توليد شهادة أو طلب شهادة. التنسيق موصوف في القسم التالي.

تنسيق قسم الاسم المميز والسمات
هناك تنسيقان منفصلان لقسمي الاسم المميز والسمات. إذا ضُبط خيار prompt على no، فإن هذه الأقسام تتكون فقط من أسماء الحقول وقيمها: على سبيل المثال،

 CN=اسمي
 OU=منظمتي
 emailAddress=someone@somewhere.org

يسمح هذا للبرامج الخارجية (مثل القائمة على الواجهة الرسومية) بتوليد ملف قالب بجميع أسماء الحقول وقيمها وتمريره إلى هذا الأمر فحسب. يوجد مثال لهذا النوع من ملفات الضبط في قسم EXAMPLES.

بدلاً من ذلك، إذا كان خيار prompt غائبًا أو لم يُضبط على no، فإن الملف يحتوي على معلومات المطالبة بالحقول. وتتكون من أسطر على الصيغة:

 fieldName="نص_المطالبة"
 fieldName_default="القيمة_المبدئية_للحقل"
 fieldName_min= 2
 fieldName_max= 4

"fieldName" هو اسم الحقل المستخدم، على سبيل المثال commonName (أو CN). تُستخدم سلسلة "prompt" لطلب إدخال التفاصيل ذات الصلة من المستخدم. إذا لم يدخل المستخدم شيئًا، فتُستخدم القيمة المبدئية، وإذا لم تكن هناك قيمة مبدئية، فيُحذف الحقل. يمكن حذف الحقل حتى لو وجدت قيمة مبدئية إذا أدخل المستخدم حرف '.' فحسب.

يجب أن يكون عدد الأحرف المدخلة بين حدود fieldName_min و fieldName_max: وقد تكون هناك قيود إضافية بناءً على الحقل المستخدم (على سبيل المثال، لا يمكن أن يتجاوز countryName حرفين ويجب أن يكون بتنسيق PrintableString).

يمكن استخدام بعض الحقول (مثل organizationName) أكثر من مرة في الاسم المميز (DN). وهذا يطرح مشكلة لأن ملفات الضبط لن تتعرف على نفس الاسم إذا تكرر مرتين. لتجنب هذه المشكلة، إذا احتوى fieldName على بعض الأحرف تليها نقطة، فسيتم تجاهلها. لذا، على سبيل المثال، يمكن إدخال organizationName ثانٍ بتسميته "1.organizationName".

أسماء الحقول المسموح بها فعليًا هي أي أسماء قصيرة أو طويلة لمعرفات الكائنات. هذه الأسماء مدمجة في OpenSSL وتشمل القيم المعتادة مثل commonName، و countryName، و localityName، و organizationName، و organizationalUnitName، و stateOrProvinceName. بالإضافة إلى ذلك، يتم تضمين emailAddress بالإضافة إلى name، و surname، و givenName، و initials، و dnQualifier.

يمكن تعريف معرفات كائنات إضافية باستخدام خيارات oid_file أو oid_section في ملف الضبط. وستُعامل أي حقول إضافية كما لو كانت DirectoryString.

أمثلة
فحص طلب الشهادة والاستيثاق منه:

 openssl req -in req.pem -text -verify -noout

تحديد التعمية المستخدمة لتعمية المفتاح الخاص:

 openssl req -newkey rsa:2048 -keyout privatekey.pem -out request.csr -cipher aes-256-cbc

إنشاء مفتاح خاص ثم توليد طلب شهادة منه:

 openssl genrsa -out key.pem 2048
 openssl req -new -key key.pem -out req.pem

الأمر نفسه ولكن باستخدام req فقط:

 openssl req -newkey rsa:2048 -keyout key.pem -out req.pem

توليد شهادة جذرية موقعة ذاتيًا:

 openssl req -x509 -newkey rsa:2048 -keyout key.pem -out req.pem

إنشاء مفتاح خاص SM2 ثم توليد طلب شهادة منه:

 openssl ecparam -genkey -name SM2 -out sm2.key
 openssl req -new -key sm2.key -out sm2.csr -sm3 -sigopt "distid:1234567812345678"

فحص طلب شهادة SM2 والاستيثاق منه:

 openssl req -verify -in sm2.csr -sm3 -vfyopt "distid:1234567812345678"

مثال لملف يشار إليه بواسطة خيار oid_file:

 1.2.3.4        اسم_قصير       اسم أطول
 1.2.3.6        اسم_آخر       اسم أطول آخر

مثال لقسم يشار إليه بواسطة oid_section مع الاستفادة من توسيع المتغيرات:

 testoid1=1.2.3.5
 testoid2=${testoid1}.6

نموذج لملف ضبط يطالب بقيم الحقول:

 [ req ]
 default_bits           = 2048
 default_keyfile        = privkey.pem
 distinguished_name     = req_distinguished_name
 attributes             = req_attributes
 req_extensions         = v3_ca

 dirstring_type = nombstr

 [ req_distinguished_name ]
 countryName                    = اسم الدولة (رمز من حرفين)
 countryName_default            = AU
 countryName_min                = 2
 countryName_max                = 2

 localityName                   = اسم المحلية (مثل المدينة)

 organizationalUnitName         = اسم الوحدة التنظيمية (مثل القسم)

 commonName                     = الاسم الشائع (مثلاً اسمك)
 commonName_max                 = 64

 emailAddress                   = البريد الإلكتروني
 emailAddress_max               = 40

 [ req_attributes ]
 challengePassword              = كلمة مرور التحدي
 challengePassword_min          = 4
 challengePassword_max          = 20

 [ v3_ca ]

 subjectKeyIdentifier=hash
 authorityKeyIdentifier=keyid:always,issuer:always
 basicConstraints = critical, CA:true

نموذج لضبط يحتوي على كافة قيم الحقول:

 [ req ]
 default_bits           = 2048
 default_keyfile        = keyfile.pem
 distinguished_name     = req_distinguished_name
 attributes             = req_attributes
 prompt                 = no
 output_password        = mypass

 [ req_distinguished_name ]
 C                      = GB
 ST                     = الولاية أو المقاطعة التجريبية
 L                      = المحلية التجريبية
 O                      = اسم المنظمة
 OU                     = اسم الوحدة التنظيمية
 CN                     = الاسم الشائع
 emailAddress           = test@email.address

 [ req_attributes ]
 challengePassword              = كلمة مرور التحدي

مثال على تقديم أكثر السمات شيوعًا (الموضوع والامتدادات) في سطر الأوامر:

 openssl req -new -subj "/C=GB/CN=foo" \
                  -addext "subjectAltName = DNS:foo.co.uk" \
                  -addext "certificatePolicies = 1.2.3.4" \
                  -newkey rsa:2048 -keyout key.pem -out req.pem

ملاحظات
تُضاف ملحقات إلى طلبات الشهادات التي يُنشئها Xenroll باستخدام MSIE. تتضمن ملحق keyUsage الذي يحدد نوع المفتاح (للتوقيع فقط أو للأغراض العامة) وأي معرفات كائنات (OIDs) إضافية يُدخلها البرنامج النصي في ملحق extendedKeyUsage.

التشخيص
يُسأل كثيرًا عن الرسائل التالية:

        Using configuration from /some/path/openssl.cnf
        Unable to load config info

يتبع ذلك بعد فترة وجيزة ما يلي:

        unable to find 'distinguished_name' in config
        problems making Certificate Request

رسالة الخطأ الأولى هي الدليل: لم يُعثر على ملف الضبط! لا تحتاج بعض العمليات (مثل فحص طلب شهادة) إلى ملف ضبط، لذا لا يُفرض استخدامه. ومع ذلك، فإن إنشاء الشهادات أو الطلبات يحتاج إلى ملف ضبط. يمكن اعتبار هذا علة.

وهذه رسالة محيرة أخرى:

        Attributes:
            a0:00

يُعرض هذا عند عدم وجود سمات ويتضمن الطلب بنية SET OF فارغة صحيحة (ترميز DER الخاص بها هو 0xa0 0x00). إذا رأيت فقط:

        Attributes:

فإن بنية SET OF مفقودة والترميز غير صالح تقنيًا (ولكن يُتسامح معه). انظر وصف خيار سطر الأوامر -asn1-kludge لمزيد من المعلومات.

العلل
إن تعامل OpenSSL مع T61Strings (المعروفة أيضًا باسم TeletexStrings) معطوب: إذ يعاملها فعليًا على أنها ISO-8859-1 (Latin 1)، ولدى Netscape وMSIE سلوك مماثل. يمكن أن يسبب هذا مشاكل إذا كنت بحاجة إلى محارف غير متوفرة في PrintableStrings ولا تريد أو لا تستطيع استخدام BMPStrings.

نتيجة للتعامل مع T61String، فإن الطريقة الصحيحة الوحيدة لتمثيل المحارف المشكلة (المهموزة) في OpenSSL هي استخدام BMPString: لسوء الحظ، يتوقف Netscape حاليًا عند معالجتها. إذا كان عليك استخدام محارف مشكلة مع Netscape وMSIE، فأنت بحاجة حاليًا إلى استخدام صيغة T61String غير الصالحة.

نظام الحث الحالي ليس ودودًا للغاية. فهو لا يسمح لك بتأكيد ما أدخلته للتو. تُعرّف أشياء أخرى مثل الملحقات في طلبات الشهادات بشكل ثابت في ملف الضبط. وبعض هذه الملحقات: مثل عنوان البريد الإلكتروني في subjectAltName، يجب أن يُدخلها المستخدم.

انظر أيضًا
openssl(1), openssl-x509(1), openssl-ca(1), openssl-genrsa(1), openssl-gendsa(1), config(5), x509v3_config(5)

التاريخ
غُيرت شيفرة التعمية المبدئية من 3DES إلى AES-256 في OpenSSL 3.5.

أُضيف الخيار -section في OpenSSL 3.0.0.

أصبح الخيار -multivalue-rdn مهجورًا في OpenSSL 3.0.0 وليس له أي تأثير.

أُهمِل الخيار -engine في الإصدار 3.0 من OpenSSL. وأُهمِل الخيار <-nodes> في الإصدار 3.0 من OpenSSL أيضًا؛ استخدم -noenc بدلًا منه.

جُعل الخيار -reqexts اسمًا بديلًا لـ -extensions في OpenSSL 3.2.

منذ إصدار OpenSSL 3.2، تحمل الشهادات المنشأة الإصدار 3 من X.509 ما لم يُعطَ الخيار -x509v1، وتُضمن ملحقات معرف المفتاح مبدئيًا.

منذ الإصدار 3.3 من OpenSSL، سيخرج الخيار -verify بالقيمة 1 عند الفشل.

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