table of contents
| OPENSSL-REQ(1SSL) | OpenSSL | 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 هو توصية 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 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 7 أبريل 2026 | 3.6.2 |