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].