OPENSSL-PKCS12(1ssl)

الاسم
openssl-pkcs12 - أمر ملف PKCS#12

موجز
openssl pkcs12 [-help] [-passin المعطى] [-passout المعطى] [-password المعطى] [-twopass] [-in اسم_الملف|المعرف] [-out اسم_الملف] [-nokeys] [-nocerts] [-noout] [-legacy] [-engine المعرف] [-provider الاسم] [-provider-path المسار] [-provparam [الاسم:]المفتاح=القيمة] [-propquery propq] [-rand الملفات] [-writerand الملف]

خيارات إدخال (تحليل) PKCS#12: [-info] [-nomacver] [-clcerts] [-cacerts]

[-aes128] [-aes192] [-aes256] [-aria128] [-aria192] [-aria256] [-camellia128] [-camellia192] [-camellia256] [-des] [-des3] [-idea] [-noenc] [-nodes]

خيارات إخراج (تصدير) PKCS#12:

[-export] [-inkey اسم_الملف|المعرف] [-certfile اسم_الملف] [-passcerts المعطى] [-chain] [-untrusted اسم_الملف] [-CAfile الملف] [-no-CAfile] [-CApath المجلد] [-no-CApath] [-CAstore المعرف] [-no-CAstore] [-name الاسم] [-caname الاسم] [-CSP الاسم] [-LMK] [-keyex] [-keysig] [-keypbe الشفرة] [-certpbe الشفرة] [-descert] [-macalg الملخص] [-pbmac1_pbkdf2] [-pbmac1_pbkdf2_md الملخص] [-iter العدد] [-noiter] [-nomaciter] [-maciter] [-macsaltlen] [-nomac] [-jdktrust الاستخدام]

الوصف
يسمح هذا الأمر بإنشاء ملفات PKCS#12 (المشار إليها أحياناً بملفات PFX) وتحليلها. تُستخدم ملفات PKCS#12 بواسطة العديد من البرامج بما في ذلك Netscape و MSIE و MS Outlook.

الخيارات
هناك العديد من الخيارات التي يعتمد معنى بعضها على ما إذا كان ملف PKCS#12 قيد الإنشاء أو التحليل. مبدئياً، يُحلل ملف PKCS#12. يمكن إنشاء ملف PKCS#12 باستخدام خيار -export (انظر أدناه). خيارات تعمية تصدير PKCS#12 وMAC مثل -certpbe و -iter والعديد من الخيارات الأخرى مثل -chain ذات صلة فقط بـ -export. وبالعكس، فإن الخيارات المتعلقة بتعمية المفاتيح الخاصة عند إخراج مدخلات PKCS#12 ذات صلة فقط عندما لا يُعطى خيار -export.

خوارزمية التعمية المبدئية هي AES-256-CBC مع PBKDF2 لاشتقاق المفتاح.

عند مواجهة مشاكل في تحميل ملفات PKCS#12 القديمة التي تتضمن، على سبيل المثال، RC2-40-CBC، جرب استخدام خيار -legacy، وإذا لزم الأمر، خيار -provider-path.

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

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

-passout المعطى
    مصدر كلمة المرور لملفات المخرجات.

-password المعطى
    مع -export، يكافئ -password الخيار -passout، وخلاف ذلك فإنه يكافئ -passin.

-twopass
    اطلب كلمات مرور منفصلة للسلامة والتعمية: تفترض معظم البرامج دائماً أنها متطابقة لذا فإن هذا الخيار سيجعل ملفات PKCS#12 هذه غير قابلة للقراءة. لا يمكن استخدامه مع الخيارات -password أو -passin عند الاستيراد من PKCS#12، أو -passout عند التصدير.

-nokeys
    لن تُخرج أي مفاتيح خاصة.

-nocerts
    لن تُخرج أي شهادات.

-noout
    يمنع هذا الخيار إخراج جميع بيانات الاعتماد، وبالتالي تُحقق من المدخلات فقط.

-legacy
    استخدم وضع التشغيل القديم وحمل المزود القديم آلياً. إذا لم يُثبّت OpenSSL على مستوى النظام، فمن الضروري أيضاً استخدام، على سبيل المثال، "-provider-path ./providers" أو ضبط متغير البيئة OPENSSL_MODULES للإشارة إلى المجلد حيث يمكن العثور على المزودين.

    في الوضع القديم، خوارزمية تعمية الشهادات المبدئية هي RC2_CBC أو 3DES_CBC اعتماداً على ما إذا كانت شفرة RC2 مفعلة في البناء. خوارزمية تعمية المفتاح الخاص المبدئية هي 3DES_CBC. إذا لم يُحدد الخيار القديم، فلن يُحمل المزود القديم وتكون خوارزمية التعمية المبدئية لكل من الشهادات والمفاتيح الخاصة هي AES_256_CBC مع PBKDF2 لاشتقاق المفتاح.

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

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

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

  خيارات إدخال (تحليل) PKCS#12

-in اسم_الملف|المعرف
    يحدد هذا اسم ملف الإدخال أو المعرف. يُستخدم الإدخال القياسي مبدئياً. بدون خيار -export، يجب أن يكون هذا ملف PKCS#12 ليُحلل. للاستخدام مع خيار -export انظر قسم "خيارات إخراج (تصدير) PKCS#12".

-out اسم_الملف
    اسم الملف لكتابة الشهادات والمفاتيح الخاصة فيه، المخرجات القياسية مبدئياً. تُكتب جميعها بتنسيق PEM.

-info
    أخرج معلومات إضافية حول بنية ملف PKCS#12، والخوارزميات المستخدمة وأعداد التكرار.

-nomacver
    لا تحاول التحقق من سلامة MAC.

-clcerts
    أخرج شهادات العميل فقط (ليس شهادات CA).

-cacerts
    أخرج شهادات CA فقط (ليس شهادات العميل).

-aes128، -aes192، -aes256
    استخدم AES لتعمية المفاتيح الخاصة قبل إخراجها.

-aria128، -aria192، -aria256
    استخدم ARIA لتعمية المفاتيح الخاصة قبل إخراجها.

-camellia128، -camellia192، -camellia256
    استخدم Camellia لتعمية المفاتيح الخاصة قبل إخراجها.

-des
    استخدم DES لتعمية المفاتيح الخاصة قبل إخراجها.

-des3
    استخدم DES الثلاثي لتعمية المفاتيح الخاصة قبل الإخراج.

-idea
    استخدم IDEA لتعمية المفاتيح الخاصة قبل الإخراج.

-noenc
    لا تُعَمِّ المفاتيح الخاصة على الإطلاق.

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

  خيارات إخراج (تصدير) PKCS#12

-export
    يحدد هذا الخيار أن ملف PKCS#12 سيُنشأ بدلاً من أن يُحلل.

-out اسم_الملف
    يحدد هذا اسم الملف الذي سيُكتب ملف PKCS#12 فيه. يُستخدم الإخراج القياسي مبدئياً.

-in اسم_الملف|المعرف
    يحدد هذا اسم ملف المدخلات أو معرف المورد الموحد (URI). يُستخدم الإدخال القياسي مبدئياً. مع الخيار -export، يكون هذا ملفاً يحتوي على شهادات ومفتاح، أو معرف مورد يشير إلى مفتاح يُوصَل إليه عبر محرك. ترتيب الاعتمادات في الملف لا يهم، ولكن يجب وجود مفتاح خاص واحد والشهادة المقابلة له. إذا وجدت شهادات إضافية، فستُضمن أيضاً في ملف إخراج PKCS#12.

-inkey اسم_الملف|معرف_المورد
    مدخل المفتاح الخاص لإخراج PKCS12. إذا لم يُحدد هذا الخيار، فيجب أن يحتوي ملف المدخلات (المعطى -in) على مفتاح خاص. إذا لم يُستخدم أي محرك، يُعامل المعطى كملف. إذا استُخدم الخيار -engine أو كان لمعرف المورد البادئة "org.openssl.engine:" فسيُعامل باقي المعرف كمعرف مفتاح للمحرك المعطى.

-certfile اسم_الملف
    ملف مدخلات يحتوي على شهادات إضافية لتُضاف إلى إخراج PKCS#12 إذا أُعطي الخيار -export.

-passcerts المعطى
    مصدر كلمة السر لمدخلات الشهادات مثل -certfile و -untrusted. لمزيد من المعلومات حول تنسيق المعطى، انظر openssl-passphrase-options(1).

-chain
    إذا وجد هذا الخيار، فستُبنى سلسلة شهادات شهادة الكيان النهائي وتُضمن في ملف إخراج PKCS#12. شهادة الكيان النهائي هي أول شهادة تُقرأ من ملف -in إذا لم يُعطَ مفتاح، وإلا فهي أول شهادة تطابق المفتاح المعطى. يُستخدم مخزن استيثاق سلطة الشهادات (CA) القياسي لبناء السلسلة، بالإضافة إلى أي شهادات سلطة غير موثوقة تُعطى مع الخيار -untrusted.

-untrusted اسم_الملف
    ملف مدخلات لشهادات غير موثوقة قد تُستخدم لبناء السلسلة، وهو أمر ذو صلة فقط عند إنشاء ملف PKCS#12 باستخدام الخيار -export مع إعطاء الخيار -chain أيضاً. أي شهادات تكون جزءاً فعلياً من السلسلة ستُضاف إلى الإخراج.

-CAfile ملف، -no-CAfile، -CApath دليل، -no-CApath، -CAstore معرف_المورد، -no-CAstore
    انظر "Trusted Certificate Options" في openssl-verification-options(1) للتفاصيل.

-name الاسم_المألوف
    يحدد هذا "الاسم المألوف" للشهادات والمفتاح الخاص. يُعرض هذا الاسم عادةً في صناديق القوائم بواسطة البرمجيات التي تستورد الملف.

-caname الاسم_المألوف
    يحدد هذا "الاسم المألوف" للشهادات الأخرى. يمكن استخدام هذا الخيار عدة مرات لتحديد أسماء جميع الشهادات بالترتيب الذي تظهر به. يتجاهل Netscape الأسماء المألوفة في الشهادات الأخرى بينما يعرضها MSIE.

-CSP الاسم
    اكتب الاسم كاسم Microsoft CSP. مصدر كلمة السر للمدخلات، ولتعمية أي مفاتيح خاصة تخرج. لمزيد من المعلومات حول تنسيق المعطى، انظر openssl-passphrase-options(1).

-LMK
    أضف معرف "Local Key Set" (مجموعة المفاتيح المحلية) إلى السمات.

-keyex|-keysig
    يحدد ما إذا كان المفتاح الخاص سيُستخدم لتبادل المفاتيح أو للتوقيع فقط. يُفسر هذا الخيار فقط بواسطة MSIE وبرمجيات MS المماثلة. عادةً ما تسمح برمجيات "درجة التصدير" فقط باستخدام مفاتيح RSA بطول 512 بت لأغراض التعمية، ولكنها تسمح بمفاتيح ذات أطوال عشوائية للتوقيع. يحدد الخيار -keysig المفتاح للتوقيع فقط. مفاتيح التوقيع فقط يمكن استخدامها لتوقيع S/MIME، والـ authenticode (توقيع عناصر تحكم ActiveX) واستيثاق عملاء SSL؛ ومع ذلك، وبسبب علة برمجية، يدعم فقط MSIE 5.0 والإصدارات الأحدث استخدام مفاتيح التوقيع فقط لاستيثاق عملاء SSL.

-keypbe الخوارزمية، -certpbe الخوارزمية
    تسمح هذه الخيارات باختيار الخوارزمية المستخدمة لتعمية المفتاح الخاص والشهادات. يمكن استخدام أي اسم خوارزمية PKCS#5 v1.5 أو PKCS#12 PBE (انظر قسم "ملاحظات" لمزيد من المعلومات). إذا حُدد اسم شفرة (كما يخرج من "openssl list -cipher-algorithms") فسيُستخدم مع PKCS#5 v2.0. لأسباب تتعلق بالتوافق التشغيلي، يُنصح باستخدام خوارزميات PKCS#12 فقط.

    القيمة الخاصة "NONE" تعطل تعمية المفتاح الخاص والشهادات.

-descert
    عَمِّ الشهادات باستخدام DES الثلاثي. مبدئياً، يُعمى المفتاح الخاص والشهادات باستخدام AES-256-CBC ما لم يُستخدم الخيار '-legacy'. إذا استُخدم '-descert' مع '-legacy'، فسيُعمى كل من المفتاح الخاص والشهادات باستخدام DES الثلاثي.

-macalg بصمة
    حدد خوارزمية بصمة MAC. إذا لم تُضمن، فستُستخدم SHA256.

-pbmac1_pbkdf2
    استخدم PBMAC1 مع PBKDF2 لحماية MAC لملف PKCS#12.

-pbmac1_pbkdf2_md بصمة
    حدد خوارزمية بصمة PBKDF2 KDF. إذا لم تُحدد، فستُستخدم SHA256. يُتجاهل هذا المعامل ما لم يُحدد "-pbmac1_pbkdf2".

-iter عدد
    يحدد هذا الخيار عدد التكرارات لمفتاح التعمية و MAC. القيمة المبدئية هي 2048.

    لتثبيط الهجمات التي تستخدم قواميس ضخمة من كلمات السر الشائعة، يمكن تطبيق عدد تكرارات على الخوارزمية التي تشتق المفاتيح من كلمات السر؛ هذا يجعل جزءاً معيناً من الخوارزمية يتكرر ويبطئها. يُستخدم MAC للتحقق من سلامة الملف، ولكن بما أنه عادةً ما يملك نفس كلمة سر المفاتيح والشهادات، فإنه قد يتعرض للهجوم أيضاً.

-noiter، -nomaciter
    مبدئياً، يُضبط عدد تكرارات كل من التعمية و MAC على 2048؛ وباستخدام هذه الخيارات، يمكن ضبط عدد تكرارات MAC والتعمية على 1. وبما أن هذا يقلل من أمان الملف، فلا يجب عليك استخدام هذه الخيارات إلا عند الضرورة القصوى. معظم البرمجيات تدعم كلاً من عدد تكرارات MAC والتعمية. MSIE 4.0 لا يدعم عدد تكرارات MAC، لذا فهو يحتاج إلى الخيار -nomaciter.

-maciter
    أُدرج هذا الخيار للتوافق مع الإصدارات السابقة؛ فقد كان يُحتاج إليه لاستخدام عدد تكرارات MAC، ولكنها تُستخدم الآن مبدئياً.

-macsaltlen
    يحدد هذا الخيار طول المملحة (salt) بالبايت لـ MAC. يجب أن يكون طول المملحة 16 بايت على الأقل وفقاً للمعيار NIST SP 800-132، وهو القيمة المبدئية.

-nomac
    لا تحاول توفير سلامة MAC. يمكن أن يكون هذا مفيداً مع مزود FIPS لأن PKCS12 MAC يتطلب PKCS12KDF، وهي ليست خوارزمية FIPS معتمدة ولا يمكن دعمها بواسطة مزود FIPS.

-jdktrust
    صدر ملف pkcs12 بتنسيق متوافق مع استخدام مستودع مفاتيح Java. يقبل هذا الخيار معاملاً نصياً يشير إلى اسم الـ trust oid الذي سيُمنح للشهادة المرتبطة به. حالياً، لا يوجد سوى "anyExtendedKeyUsage" معرفاً. لاحظ أنه، بما أن مستودعات مفاتيح Java لا تقبل ملفات PKCS12 التي تحتوي على شهادات موثوقة وأزواج مفاتيح معاً، فإن استخدام هذا الخيار يعني ضمنياً ضبط الخيار -nokeys.

ملاحظات
على الرغم من وجود عدد كبير من الخيارات، إلا أن معظمها نادراً ما يُستخدم. لتحليل ملفات PKCS#12، لا يلزم سوى استخدام -in و -out؛ ولإنشاء ملفات PKCS#12، يُستخدم أيضاً -export و -name.

إذا لم يوجد أي من الخيارات -clcerts أو -cacerts أو -nocerts، فستُخرج جميع الشهادات بالترتيب الذي تظهر به في ملفات PKCS#12 المدخلة. لا يوجد ضمان بأن الشهادة الأولى هي المقابلة للمفتاح الخاص. بعض البرمجيات التي تحاول الحصول على مفتاح خاص والشهادة المقابلة قد تفترض أن الشهادة الأولى في الملف هي المقابلة للمفتاح الخاص، ولكن قد لا يكون هذا هو الحال دائماً. سيؤدي استخدام الخيار -clcerts إلى حل هذه المشكلة عن طريق إخراج الشهادة المقابلة للمفتاح الخاص فقط. إذا كانت شهادات سلطة الشهادات (CA) مطلوبة، فيمكن إخراجها إلى ملف منفصل باستخدام الخيارين -nokeys و -cacerts لإخراج شهادات سلطة الشهادات فقط.

تسمح خوارزميات -keypbe و -certpbe بتحديد خوارزميات تعمية دقيقة للمفاتيح الخاصة والشهادات. عادةً ما تكون القيم المبدئية جيدة، ولكن أحياناً لا تستطيع بعض البرمجيات التعامل مع المفاتيح الخاصة المعماة بـ DES الثلاثي؛ عندها يمكن استخدام الخيار -keypbe PBE-SHA1-RC2-40 لتقليل تعمية المفتاح الخاص إلى RC2 بـ 40 بت. يوجد وصف كامل لجميع الخوارزميات في openssl-pkcs8(1).

قبل الإصدار 1.1، كانت كلمات السر التي تحتوي على محارف غير ASCII تُرمز بطريقة غير متوافقة، مما حد من التوافق التشغيلي، لا سيما مع Windows. ولكن الانتقال إلى ترميز كلمات سر متوافق مع المعايير يطرح مشكلة في الوصول إلى البيانات القديمة المحمية بالترميز المعطوب. لهذا السبب، يُحاول حتى استخدام الترميزات الموروثة عند قراءة البيانات. إذا كنت تستخدم ملفات PKCS#12 في تطبيق إنتاجي، فننصحك بتحويل البيانات، لأن النهج التجريبي المطبق ليس آمناً مع خيوط المعالجة المتعددة (MT-safe)، وهدفه الوحيد هو تسهيل ترقية البيانات باستخدام هذا الأمر.

أمثلة
حلل ملف PKCS#12 وأخرجه إلى ملف PEM:

 openssl pkcs12 -in file.p12 -out file.pem

أخرج شهادات العميل فقط إلى ملف:

 openssl pkcs12 -in file.p12 -clcerts -out file.pem

لا تُعَمِّ المفتاح الخاص:

 openssl pkcs12 -in file.p12 -out file.pem -noenc

اطبع بعض المعلومات حول ملف PKCS#12:

 openssl pkcs12 -in file.p12 -info -noout

اطبع بعض المعلومات حول ملف PKCS#12 في الوضع الموروث (legacy):

 openssl pkcs12 -in file.p12 -info -noout -legacy

أنشئ ملف PKCS#12 من ملف PEM قد يحتوي على مفتاح وشهادات:

 openssl pkcs12 -export -in file.pem -out file.p12 -name "My PSE"

ضمّن بعض الشهادات الإضافية:

 openssl pkcs12 -export -in file.pem -out file.p12 -name "My PSE" \
  -certfile othercerts.pem

صدّر ملف PKCS#12 ببيانات من ملف شهادة PEM ومن ملف PEM إضافي يحتوي على مفتاح، باستخدام الخوارزميات المبدئية كما في المزوّد الموروث (legacy):

 openssl pkcs12 -export -in cert.pem -inkey key.pem -out file.p12 -legacy

انظر أيضًا
openssl(1)، openssl-pkcs8(1)، ossl_store-file(7)

التاريخ
أُهمل الخيار -engine في إصدار OpenSSL 3.0. كما أُهمل الخيار -nodes في إصدار OpenSSL 3.0 أيضًا؛ استخدم -noenc بدلًا منه. تغيرت القيمة المبدئية للخيار -macsaltlen من 8 إلى 16 بايت في إصدار OpenSSL 3.6.

حقوق النسخ
حقوق النشر 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.