كتيبات سطر الأوامر

Man » دليل openssl على الإنترنت - وثائق مفصلة عبر الإنترنت لصفحة man الخاصة بـ openssl

🌍
openssl - برنامج سطر الأوامر OpenSSL

ملخص

openssl command [ options ... ] [ parameters ... ]

openssl no-XXX [ options ]

openssl -help | -version

الوصف

OpenSSL عبارة عن مجموعة أدوات تشفير تنفذ بروتوكولات شبكة Secure Sockets Layer (SSL) و Transport Layer Security (TLS) ومعايير التشفير ذات الصلة المطلوبة لها.

برنامج openssl هو برنامج سطر أوامر لاستخدام وظائف التشفير المختلفة في مكتبة التشفير الخاصة بـ OpenSSL من سطر الأوامر. يمكن استخدامه من أجل:

o   إنشاء وإدارة المفاتيح الخاصة والمفاتيح العامة والمعلمات.
o   عمليات التشفير بالمفتاح العام.
o   إنشاء شهادات X.509 وطلبات توقيع الشهادة (CSRs) وقوائم إبطال الشهادات (CRLs).
o   حساب ملخصات الرسائل ورموز مصادقة الرسائل.
o   التشفير وفك التشفير باستخدام الخوارزميات.
o   اختبارات عميل/خادم SSL/TLS.
o   معالجة رسائل S/MIME الموقعة أو المشفرة.
o   طلبات الطابع الزمني وإنشاؤه والتحقق منه.

ملخص الأوامر

يوفر برنامج openssl مجموعة متنوعة من الأوامر (الأمر في "الملخص" أعلاه). يمكن أن يحتوي كل أمر على العديد من الخيارات ومعلمات الوسائط، كما هو موضح أعلاه كخيارات ومعلمات.

تتوفر وثائق واستخدامات مفصلة لمعظم الأوامر الفرعية القياسية (مثل openssl-x509(1)). يمكن استخدام الأمر الفرعي openssl-list(1) لسرد الأوامر الفرعية.

يختبر الأمر no-XXX ما إذا كان الأمر المحدد بالاسم متاحًا. إذا لم يكن هناك أمر باسم XXX، فإنه يُرجع 0 (نجاح) ولا يطبع no-XXX; وإلا فإنه يُرجع 1 ويطبع XXX. في كلتا الحالتين، يتم إخراج البيانات إلى stdout ولا تتم طباعة أي شيء إلى stderr. يتم تجاهل وسائط سطر الأوامر الإضافية دائمًا. نظرًا لوجود أمر لكل خوارزمية تشفير بنفس الاسم، فإنه يوفر طريقة سهلة لبرامج shell النصية لاختبار مدى توفر الخوارزميات في برنامج openssl. (لا يمكن لـ no-XXX اكتشاف الأوامر الوهمية مثل quit أو list أو no-XXX نفسه.)

خيار التكوين

تستخدم العديد من الأوامر ملف تكوين خارجي لبعض أو كل وسائطها ولديها خيار -config لتحديد هذا الملف. يكون الاسم الافتراضي للملف هو openssl.cnf في منطقة تخزين الشهادات الافتراضية، والتي يمكن تحديدها من الأمر openssl-version(1) باستخدام الخيار -d أو -a. يمكن استخدام متغير البيئة OPENSSL_CONF لتحديد موقع ملف مختلف أو لتعطيل تحميل التكوين (باستخدام سلسلة فارغة).

من بين أشياء أخرى، يمكن استخدام ملف التكوين لتحميل الوحدات وتحديد معلمات لإنشاء الشهادات والأرقام العشوائية. راجع config(5) للحصول على التفاصيل.

الأوامر القياسية

asn1parse

تحليل تسلسل ASN.1.


ca  إدارة سلطة التصديق (CA).

ciphers
تحديد وصف مجموعة التشفير.

cms أمر CMS (بنية رسالة التشفير).

crl إدارة قائمة إبطال الشهادات (CRL).

crl2pkcs7
تحويل CRL إلى PKCS#7.

dgst
حساب تجزئة الرسالة. عمليات حساب MAC قديمة، تم استبدالها بـ openssl-mac(1).

dhparam
إنشاء وإدارة معلمات Diffie-Hellman. تم استبدالها بـ openssl-genpkey(1) و openssl-pkeyparam(1).

dsa إدارة بيانات DSA.

dsaparam
إنشاء وإدارة معلمات DSA. تم استبدالها بـ openssl-genpkey(1) و openssl-pkeyparam(1).

ec  معالجة مفتاح EC (منحنى إهليلجي).

ecparam
معالجة وإنشاء معلمات EC.

enc التشفير وفك التشفير والترميز.

engine
معلومات وإدارة المحرك (الوحدة القابلة للتحميل).

errstr
تحويل رقم الخطأ إلى سلسلة الخطأ.

fipsinstall
تثبيت تكوين FIPS.

gendsa
إنشاء مفتاح خاص DSA من المعلمات. تم استبدالها بـ openssl-genpkey(1) و openssl-pkey(1).

genpkey
إنشاء مفتاح خاص أو معلمات.

genrsa
إنشاء مفتاح خاص RSA. تم استبدالها بـ openssl-genpkey(1).

help
عرض معلومات حول خيارات الأمر.

info
عرض معلومات متنوعة مدمجة في مكتبات OpenSSL.

kdf وظائف اشتقاق المفاتيح.

list
قائمة الخوارزميات والميزات.

mac حساب رمز مصادقة الرسالة.

nseq
إنشاء أو فحص تسلسل شهادة Netscape.

ocsp    أمر بروتوكول حالة الشهادة عبر الإنترنت (OCSP).

passwd
إنشاء كلمات مرور مشفرة.

pkcs12
إدارة بيانات PKCS#12.

pkcs7
إدارة بيانات PKCS#7.

pkcs8
أمر تحويل مفتاح خاص بتنسيق PKCS#8.

pkey    إدارة المفاتيح العامة والخاصة.

pkeyparam
إدارة معلمات الخوارزمية للمفتاح العام.

pkeyutl
أمر عمليات التشفير للخوارزمية للمفتاح العام.

prime
حساب الأعداد الأولية.

rand    إنشاء بايتات عشوائية زائفة.

rehash
إنشاء روابط رمزية لملفات الشهادة و CRL المسماة بقيم التجزئة.

req إدارة طلب توقيع الشهادة (CSR) بتنسيق PKCS#10 X.509.

rsa إدارة مفتاح RSA.

rsautl
أمر RSA للتوقيع والتحقق والتشفير وفك التشفير. تم استبداله بـ openssl-pkeyutl(1).

s_client
يقوم هذا بتنفيذ عميل SSL/TLS عام يمكنه إنشاء اتصال شفاف بخادم بعيد يتحدث بروتوكول SSL/TLS. وهو مخصص لأغراض الاختبار فقط ويوفر وظائف واجهة برمجة تطبيقات بسيطة، ولكنه يستخدم داخليًا معظم وظائف مكتبة SSL في OpenSSL.

s_server
يقوم هذا بتنفيذ خادم SSL/TLS عام يقبل الاتصالات من العملاء البعيدين الذين يتحدثون بروتوكول SSL/TLS. وهو مخصص لأغراض الاختبار فقط ويوفر وظائف واجهة برمجة تطبيقات بسيطة، ولكنه يستخدم داخليًا معظم وظائف مكتبة SSL في OpenSSL. يوفر كلاً من بروتوكول موجه سطر الأوامر الخاص به لاختبار وظائف SSL ووسيلة بسيطة للاستجابة لـ HTTP لمحاكاة خادم ويب على دراية بـ SSL/TLS.

s_time
مؤقت اتصال SSL.

sess_id
إدارة بيانات جلسة SSL.

smime
معالجة بريد S/MIME.

speed
قياس سرعة الخوارزمية.

spkac
أمر طباعة وإنشاء SPKAC.

srp
صيانة ملف كلمة مرور SRP. هذا الأمر مهمل.

storeutl
أمر لسرد وعرض الشهادات والمفاتيح وقوائم الإلغاء (CRLs) وما إلى ذلك.

ts
أمر سلطة ختم الوقت.

verify
التحقق من شهادة X.509. انظر أيضًا صفحة دليل openssl-verification-options(1).

version
معلومات إصدار OpenSSL.

x509
إدارة بيانات شهادة X.509.

أوامر تجزئة الرسائل

blake2b512
تجزئة BLAKE2b-512

blake2s256
تجزئة BLAKE2s-256

md2
تجزئة MD2

md4
تجزئة MD4

md5
تجزئة MD5

mdc2
تجزئة MDC2

rmd160
تجزئة RMD-160

sha1
تجزئة SHA-1

sha224
تجزئة SHA-2 224

sha256
تجزئة SHA-2 256

sha384
تجزئة SHA-2 384

sha512
تجزئة SHA-2 512

sha3-224
تجزئة SHA-3 224

sha3-256
تجزئة SHA-3 256

sha3-384
تجزئة SHA-3 384

sha3-512
تجزئة SHA-3 512

keccak-224
تجزئة KECCAK 224

keccak-256
تجزئة KECCAK 256

keccak-384
تجزئة KECCAK 384

keccak-512
تجزئة KECCAK 512

shake128
تجزئة SHA-3 SHAKE128

shake256
تجزئة SHA-3 SHAKE256

sm3
تجزئة SM3

أوامر التشفير وفك التشفير والترميز

توفر البدائل التالية وصولاً مريحًا إلى الترميزات والخوارزميات الأكثر استخدامًا.

اعتمادًا على كيفية تكوين وبناء OpenSSL، قد لا تكون جميع الخوارزميات المدرجة هنا موجودة. راجع openssl-enc(1) لمزيد من المعلومات.

aes128, aes-128-cbc, aes-128-cfb, aes-128-ctr, aes-128-ecb, aes-128-ofb
خوارزمية AES-128

aes192, aes-192-cbc, aes-192-cfb, aes-192-ctr, aes-192-ecb, aes-192-ofb
خوارزمية AES-192

aes256, aes-256-cbc, aes-256-cfb, aes-256-ctr, aes-256-ecb, aes-256-ofb
خوارزمية AES-256

aria128, aria-128-cbc, aria-128-cfb, aria-128-ctr, aria-128-ecb, aria-128-ofb
خوارزمية Aria-128

aria192, aria-192-cbc, aria-192-cfb, aria-192-ctr, aria-192-ecb, aria-192-ofb
خوارزمية Aria-192

aria256, aria-256-cbc, aria-256-cfb, aria-256-ctr, aria-256-ecb, aria-256-ofb
خوارزمية Aria-256

base64
ترميز Base64

bf, bf-cbc, bf-cfb, bf-ecb, bf-ofb
خوارزمية Blowfish

camellia128, camellia-128-cbc, camellia-128-cfb, camellia-128-ctr, camellia-128-ecb,
camellia-128-ofb
خوارزمية Camellia-128

camellia192, camellia-192-cbc, camellia-192-cfb, camellia-192-ctr, camellia-192-ecb,
camellia-192-ofb
خوارزمية Camellia-192

camellia256, camellia-256-cbc, camellia-256-cfb, camellia-256-ctr, camellia-256-ecb,
camellia-256-ofb
خوارزمية Camellia-256

cast, cast-cbc
خوارزمية CAST

cast5-cbc, cast5-cfb, cast5-ecb, cast5-ofb
خوارزمية CAST5

chacha20
خوارزمية Chacha20

des, des-cbc, des-cfb, des-ecb, des-ede, des-ede-cbc, des-ede-cfb, des-ede-ofb, des-ofb
خوارزمية DES

des3, desx, des-ede3, des-ede3-cbc, des-ede3-cfb, des-ede3-ofb
خوارزمية Triple-DES

idea, idea-cbc, idea-cfb, idea-ecb, idea-ofb
خوارزمية IDEA

rc2, rc2-cbc, rc2-cfb, rc2-ecb, rc2-ofb
خوارزمية RC2

rc4
خوارزمية RC4

rc5, rc5-cbc, rc5-cfb, rc5-ecb, rc5-ofb
خوارزمية RC5

seed، seed-cbc، seed-cfb، seed-ecb، seed-ofb
خوارزمية SEED

sm4، sm4-cbc، sm4-cfb، sm4-ctr، sm4-ecb، sm4-ofb
خوارزمية SM4

الخيارات

تعتمد تفاصيل الخيارات المتاحة على الأمر المحدد. يصف هذا القسم بعض الخيارات الشائعة ذات السلوك الشائع.

خيارات البرنامج

يمكن تحديد هذه الخيارات دون تحديد أمر للحصول على معلومات حول المساعدة أو الإصدار.

-help
يوفر ملخصًا موجزًا ​​لجميع الخيارات. للحصول على معلومات أكثر تفصيلاً، يدعم كل أمر خيار -help. يقبل أيضًا --help.

-version
يوفر ملخصًا موجزًا ​​عن إصدار برنامج openssl. للحصول على معلومات أكثر تفصيلاً، راجع openssl-version(1). يقبل أيضًا --version.

الخيارات الشائعة

-help
إذا كان الخيار يأخذ وسيطة، يتم أيضًا إعطاء "نوع" الوسيطة.

-- ينهي هذا قائمة الخيارات. وهو مفيد بشكل أساسي إذا كانت أي معلمات لاسم الملف تبدأ بعلامة الطرح:
openssl verify [flags...] -- -cert1.pem...

خيارات التنسيق

راجع صفحة دليل openssl-format-options(1).

خيارات عبارة المرور

راجع صفحة دليل openssl-passphrase-options(1).

خيارات حالة عشوائية

قبل الإصدار OpenSSL 1.1.1، كان من الشائع أن تحتفظ التطبيقات بمعلومات حول حالة مولد الأرقام العشوائية في ملف يتم تحميله في البداية وإعادة كتابته عند الخروج. في أنظمة التشغيل الحديثة، لم يعد هذا ضروريًا بشكل عام حيث سيقوم OpenSSL بزرع نفسه من مصدر إنتروبيا موثوق به توفره أنظمة التشغيل. لا تزال هذه العلامات مدعومة لمنصات أو ظروف خاصة قد تتطلبها.

من الخطأ عمومًا استخدام نفس ملف البذور أكثر من مرة، ويجب إقران كل استخدام لـ -rand بـ -writerand.

-rand files
ملف أو ملفات تحتوي على بيانات عشوائية تستخدم لتهيئة مولد الأرقام العشوائية. يمكن تحديد ملفات متعددة مفصولة بحرف يعتمد على نظام التشغيل. الفاصل هو ";" لنظام MSWindows، و "," لنظام OpenVMS، و ":" لجميع الأنظمة الأخرى. طريقة أخرى لتحديد ملفات متعددة هي تكرار هذه العلامة بأسماء ملفات مختلفة.

-writerand file
يكتب بيانات البذور إلى الملف المحدد عند الخروج. يمكن استخدام هذا الملف في استدعاء أمر لاحق.

خيارات التحقق من الشهادة

راجع صفحة دليل openssl-verification-options(1).

خيارات تنسيق الاسم

راجع صفحة دليل openssl-namedisplay-options(1).

خيارات إصدار TLS

تستخدم عدة أوامر SSL أو TLS أو DTLS. بشكل افتراضي، تستخدم الأوامر TLS ويقدم العملاء أدنى وأعلى إصدار من البروتوكول الذي يدعمونه، ويختار الخادم أعلى إصدار البروتوكول الذي يقدمه العميل والذي يدعمه الخادم أيضًا.

يمكن استخدام الخيارات أدناه لتقييد إصدارات البروتوكول المستخدمة، وما إذا كان سيتم استخدام TCP (SSL و TLS) أو UDP (DTLS). لاحظ أنه قد لا تكون جميع البروتوكولات والأعلام متاحة، اعتمادًا على كيفية إنشاء OpenSSL.

-ssl3، -tls1، -tls1_1، -tls1_2، -tls1_3، -no_ssl3، -no_tls1، -no_tls1_1، -no_tls1_2، -no_tls1_3
تتطلب هذه الخيارات أو تعطيل استخدام بروتوكولات SSL أو TLS المحددة. عند طلب إصدار TLS معين، سيتم عرض أو قبول هذا الإصدار فقط. لا يمكن إعطاء بروتوكول معين واحد ولا يمكن دمجه مع أي من الخيارات no_. لا تعمل خيارات no_ مع أوامر s_time و ciphers ولكنها تعمل مع أوامر s_client و s_server.

-dtls، -dtls1، -dtls1_2

تحدد هذه الخيارات استخدام DTLS بدلاً من TLS. باستخدام -dtls، سيقوم العميل بالتفاوض على أي إصدار مدعوم من بروتوكول DTLS. استخدم خيارات -dtls1 أو -dtls1_2 لدعم DTLS1.0 أو DTLS1.2 فقط، على التوالي.

خيارات المحرك

-engine id

قم بتحميل المحرك المحدد بواسطة id واستخدم جميع الطرق التي يطبقها (الخوارزميات، وتخزين المفاتيح، وما إلى ذلك)، ما لم يُحدد خلاف ذلك في وثائق الأوامر الخاصة أو تم تكوينه للقيام بذلك، كما هو موضح في "تكوين المحرك" في config(5).

سيتم استخدام المحرك للمعرفات الرئيسية المحددة باستخدام -key وخيارات مماثلة عندما يتم إعطاء خيار مثل -keyform engine.

حالة خاصة هي محرك "loader_attic"، وهو مخصص لأغراض اختبار OpenSSL الداخلية ويدعم تحميل المفاتيح والمعلمات والشهادات وقوائم إلغاء الشهادات (CRLs) من الملفات. عند استخدام هذا المحرك، تتم قراءة الملفات التي تحتوي على بيانات الاعتماد هذه عبر هذا المحرك. يعد استخدام مخطط "file:" اختياريًا؛ يمكن أن يكون اسم ملف عادي (مسار) كافيًا.

يمكن لخيارات تحديد المفاتيح، مثل -key وخيارات مماثلة، استخدام مخطط تحميل مفاتيح محرك OpenSSL العام "org.openssl.engine:" لاسترداد المفاتيح الخاصة والمفاتيح العامة. صيغة URI هي كما يلي، في شكل مبسط:

org.openssl.engine:{engineid}:{keyid}

حيث "{engineid}" هو هوية / اسم المحرك، و "{keyid}" هو معرف مفتاح مقبول بواسطة هذا المحرك. على سبيل المثال، عند استخدام محرك يتصل بتنفيذ PKCS#11، سيكون URI المفتاح العام شيئًا كهذا (هذا مثال لمحرك PKCS#11 الذي يعد جزءًا من OpenSC):

-key org.openssl.engine:pkcs11:label_some-private-key

بصفتك إمكانية ثالثة، بالنسبة للمحركات والموفرين الذين قاموا بتنفيذ OSSL_STORE_LOADER(3) الخاص بهم، لا ينبغي أن يكون "org.openssl.engine:" ضروريًا. بالنسبة لتنفيذ PKCS#11 الذي قام بتنفيذ حمّال مثل هذا، يجب أن يكون من الممكن استخدام URI PKCS#11 المحدد في RFC 7512 مباشرةً:

-key pkcs11:object=some-private-key;pin-value=1234

خيارات الموفر

-provider name

قم بتحميل وتهيئة الموفر المحدد بالاسم. يمكن أن يكون الاسم أيضًا مسارًا لوحدة الموفر. في هذه الحالة، سيكون اسم الموفر هو المسار المحدد وليس اسم وحدة الموفر فقط. تفسير المسارات النسبية خاص بالنظام الأساسي. يتم إلحاق المسار الذي تم تكوينه "MODULESDIR" أو متغير البيئة OPENSSL_MODULES أو المسار المحدد بواسطة -provider-path بالمسارات النسبية. راجع provider(7) للحصول على وصف أكثر تفصيلاً.


-provider-path مسار

يحدد مسار البحث الذي سيتم استخدامه للبحث عن الموفرين. وبدلاً من ذلك، يمكن تعيين متغير البيئة OPENSSL_MODULES.

-provparam [اسم:]مفتاح=قيمة

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

-propquery propq

يحدد عبارة الاستعلام عن الخصائص التي سيتم استخدامها عند استرداد الخوارزميات من الموفرين المحملين. راجع property(7) للحصول على وصف أكثر تفصيلاً.

البيئة

يمكن لمكتبات OpenSSL أن تأخذ بعض معلمات التكوين من البيئة.

للحصول على معلومات حول جميع متغيرات البيئة التي تستخدمها مكتبات OpenSSL، مثل OPENSSL_CONF و OPENSSL_MODULES و OPENSSL_TRACE، راجع openssl-env(7).

للحصول على معلومات حول استخدام متغيرات البيئة في التكوين، راجع "البيئة" في config(5).

للحصول على معلومات حول أوامر معينة، راجع openssl-engine(1) و openssl-rehash(1) و tsget(1).

للحصول على معلومات حول الاستعلام عن أو تحديد علامات بنية وحدة المعالجة المركزية، راجع OPENSSL_ia32cap(3) و OPENSSL_s390xcap(3) و OPENSSL_riscvcap(3).

انظر أيضًا

openssl-asn1parse(1)، openssl-ca(1)، openssl-ciphers(1)، openssl-cms(1)، openssl-crl(1)،
openssl-crl2pkcs7(1)، openssl-dgst(1)، openssl-dhparam(1)، openssl-dsa(1)، openssl-dsaparam(1)،
openssl-ec(1)، openssl-ecparam(1)، openssl-enc(1)، openssl-engine(1)، openssl-errstr(1)،
openssl-gendsa(1)، openssl-genpkey(1)، openssl-genrsa(1)، openssl-kdf(1)، openssl-list(1)،
openssl-mac(1)، openssl-nseq(1)، openssl-ocsp(1)، openssl-passwd(1)، openssl-pkcs12(1)،
openssl-pkcs7(1)، openssl-pkcs8(1)، openssl-pkey(1)، openssl-pkeyparam(1)، openssl-pkeyutl(1)،
openssl-prime(1)، openssl-rand(1)، openssl-rehash(1)، openssl-req(1)، openssl-rsa(1)،
openssl-rsautl(1)، openssl-s_client(1)، openssl-s_server(1)، openssl-s_time(1)،
openssl-sess_id(1)، openssl-smime(1)، openssl-speed(1)، openssl-spkac(1)، openssl-srp(1)،
openssl-storeutl(1)، openssl-ts(1)، openssl-verify(1)، openssl-version(1)، openssl-x509(1)،
config(5)، crypto(7)، openssl-env(7)، ssl(7)، x509v3_config(5).

التاريخ

تمت إضافة خيارات -XXX-algorithms في OpenSSL 1.0.0؛ للحصول على ملاحظات حول توفر الأوامر الأخرى، راجع صفحات الدليل الخاصة بها.


الخيار -issuer_checks مهمل اعتبارًا من OpenSSL 1.1.0 ويتم تجاهله بصمت.

الخياران -xcertform و -xkeyform قديمان ابتداءً من OpenSSL 3.0 وليس لهما أي تأثير.

تمت إزالة الوضع التفاعلي، الذي يمكن استدعاؤه عن طريق تشغيل "openssl" بدون وسائط إضافية، في OpenSSL 3.0، وتشغيل هذا البرنامج بدون وسائط يعادل الآن "openssl help".

حقوق الطبع والنشر

حقوق الطبع والنشر 2000-2025 مؤلفو مشروع OpenSSL. جميع الحقوق محفوظة.

مرخص بموجب ترخيص Apache 2.0 ("الترخيص"). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الترخيص. يمكنك الحصول على نسخة في الملف LICENSE في توزيع المصدر أو في [https://www.openssl.org/source/license.html].