OPENSSL(1) General Commands Manual OPENSSL(1)

openssl — ابزار خط فرمان OpenSSL

openssl command [command_opt ...] [command_arg ...]

openssl list-standard-commands | list-message-digest-commands | list-cipher-commands | list-cipher-algorithms | list-message-digest-algorithms | list-public-key-algorithms

openssl no-command

OpenSSL یک جعبه‌ابزار رمزنگاری برای پیاده‌سازی پروتکل شبکه Transport Layer Security (TLS) و همچنین استانداردهای رمزنگاری مرتبط است.

برنامه openssl یک ابزار خط فرمان برای استفاده از توابع مختلف رمزنگاری موجود در کتابخانه رمزنگاری openssl از طریق شل است.

شبه‌دستورهای list-standard-commands ، list-message-digest-commands و list-cipher-commands فهرستی (در هر سطر یک مورد) از نام تمامی دستورات استاندارد، دستورات خلاصه پیام (message digest) یا دستورات رمزگذاری (cipher) موجود در ابزار جاری openssl را در خروجی چاپ می‌کنند.

شبه‌دستورهای list-cipher-algorithms و list-message-digest-algorithms تمامی نام‌های الگوریتم‌های رمزگذاری و خلاصه پیام را در هر سطر یک مورد فهرست می‌کنند. نام‌های مستعار به‌صورت زیر فهرست می‌شوند:

from => to

شبه‌دستور list-public-key-algorithms تمامی الگوریتم‌های کلید عمومی پشتیبانی‌شده را فهرست می‌کند.

شبه‌دستور no-command بررسی می‌کند که آیا دستوری با نام مشخص‌شده در دسترس است یا خیر. اگر command وجود نداشته باشد، مقدار ۰ را برمی‌گرداند و عبارت no-command را چاپ می‌کند؛ در غیر این صورت مقدار ۱ را برمی‌گرداند و عبارت command را چاپ می‌کند. در هر دو حالت، خروجی به stdout ارسال شده و چیزی در stderr چاپ نمی‌شود. آرگومان‌های خط فرمان اضافی همواره نادیده گرفته می‌شوند. از آنجا که برای هر رمزگذار دستوری هم‌نام وجود دارد، این قابلیت روشی آسان برای اسکریپت‌های شل جهت بررسی دسترسی‌پذیری الگوریتم‌های رمزگذاری در برنامه openssl فراهم می‌کند.

نکته: no-command قادر به تشخیص شبه‌دستورهایی مانند quit ، list-...-commands یا خود no-command نیست.

openssl asn1parse
[-i] [-dlimit number] [-dump] [-genconf file] [-genstr str] [-in file] [-inform der | pem | txt] [-length number] [-noout] [-offset number] [-oid file] [-out file] [-strparse offset]

دستور asn1parse یک ابزار تشخیصی است که می‌تواند ساختارهای ASN.1 را تجزیه کند. همچنین می‌توان از آن برای استخراج داده از داده‌های قالب‌بندی‌شده با ASN.1 استفاده کرد.

گزینه‌ها به شرح زیر هستند:

number
تخلیه (dump) اولین number بایت از داده‌های ناشناخته در قالب هگزادسیمال.
تخلیه داده‌های ناشناخته در قالب هگزادسیمال.
file, -genstr str
تولید داده‌های کدگذاری‌شده بر اساس رشته str ، فایل file یا هر دو، با استفاده از قالبی که در ASN1_generate_nconf(3) شرح داده شده است. اگر فقط file مشخص شده باشد، رشته مورد نظر از بخش پیش‌فرض با استفاده از نام “asn1” به دست می‌آید. داده‌های کدگذاری‌شده از تجزیه‌کننده ASN.1 عبور داده می‌شوند و به گونه‌ای در خروجی چاپ می‌شوند که گویی از یک فایل آمده‌اند؛ بنابراین می‌توان محتوا را بررسی کرد و با استفاده از گزینه -out در یک فایل ذخیره نمود.
دندانه‌دار کردن خروجی متناسب با "عمق" ساختارها.
file
فایل ورودی برای خواندن، یا در صورت عدم تعیین، ورودی استاندارد.
der | |
قالب ورودی.
number
تعداد بایت‌ها برای تجزیه؛ حالت پیش‌فرض تا پایان فایل است.
خودداری از ارسال نسخه تجزیه‌شده فایل ورودی به خروجی.
number
آفست شروع برای آغاز تجزیه؛ حالت پیش‌فرض ابتدای فایل است.
file
فایلی حاوی شناسه‌های شیء اضافی (OID). اگر یک OID (شناسه شیء) در جدول داخلی openssl وجود نداشته باشد، به صورت عددی (برای نمونه 1.2.3.4) نمایش داده خواهد شد.

هر سطر شامل سه ستون است: ستون اول OID در قالب عددی است و باید با فاصله خالی دنبال شود. ستون دوم "نام کوتاه" است که یک کلمه منفرد بوده و با فاصله خالی دنبال می‌شود. ستون پایانی باقی‌مانده سطر و "نام کامل" است. asn1parse نام کامل را نمایش می‌دهد.

file
فایل خروجی کدگذاری‌شده با DER؛ حالت پیش‌فرض عدم تولید خروجی کدگذاری‌شده است (در صورت ترکیب با -strparse کاربرد دارد).
offset
تجزیه اوکتت‌های محتوای شیء ASN.1 که از offset شروع می‌شود. این گزینه می‌تواند چندین بار برای "پیمایش به عمق" یک ساختار تو‌در‌تو استفاده شود.

openssl ca
[-batch] [-cert file] [-config file] [-create_serial] [-crl_CA_compromise time] [-crl_compromise time] [-crl_hold instruction] [-crl_reason reason] [-crldays days] [-crlexts section] [-crlhours hours] [-crlsec seconds] [-days arg] [-enddate date] [-extensions section] [-extfile file] [-gencrl] [-in file] [-infiles] [-key password] [-keyfile file] [-keyform pem | der] [-md alg] [-multivalue-rdn] [-name section] [-noemailDN] [-notext] [-out file] [-outdir directory] [-passin arg] [-policy arg] [-preserveDN] [-revoke file] [-selfsign] [-sigopt nm:v] [-ss_cert file] [-startdate date] [-status serial] [-subj arg] [-updatedb] [-utf8] [-verbose]

دستور ca یک برنامه کمینه برای مرجع صدور گواهی (CA) است. از این ابزار می‌توان برای امضای درخواست‌های گواهی در قالب‌های مختلف و ایجاد فهرست‌های ابطال گواهی (CRL) استفاده کرد. همچنین این دستور یک پایگاه داده متنی از گواهی‌های صادرشده و وضعیت آن‌ها نگهداری می‌کند.

گزینه‌های مربوط به مرجع صدور گواهی (CA) به شرح زیر هستند:

حالت غیرتعاملی (دسته‌ای یا Batch). در این حالت هیچ پرسشی پرسیده نخواهد شد و تمام گواهی‌ها به صورت خودکار تایید و صادر می‌شوند.
file
فایل گواهی CA.
file
تعیین فایل پیکربندی جایگزین.
اگر خواندن شماره سریال از فایل متنی مشخص‌شده در پیکربندی با شکست مواجه شود، یک سریال تصادفی جدید برای استفاده به عنوان شماره سریال بعدی ایجاد می‌کند.
arg
تعداد روزهایی که گواهی برای آن مدت معتبر خواهد بود.
date
تنظیم تاریخ انقضا. قالب تاریخ به صورت [YY]YYMMDDHHMMSSZ است، و برای تاریخ‌های سال ۲۰۵۰ به بعد درج هر چهار رقم سال الزامی است.
section
بخشی از فایل پیکربندی که شامل افزونه‌های گواهی است تا در هنگام صدور گواهی اضافه شوند (پیش‌فرض x509_extensions است مگر اینکه از گزینه -extfile استفاده شود). اگر هیچ بخش افزونه‌ای وجود نداشته باشد، گواهی نسخه ۱ (V1) ایجاد می‌شود. اگر بخش افزونه وجود داشته باشد (حتی اگر خالی باشد ،) گواهی نسخه ۳ (V3) ایجاد می‌شود. برای جزئیات قالب بخش افزونه، صفحه راهنمای x509v3.cnf(5) را ببینید.
file
یک file پیکربندی اضافی برای خواندن افزونه‌های گواهی از آن (استفاده از بخش پیش‌فرض مگر اینکه از گزینه -extensions نیز استفاده شود).
file
یک file ورودی حاوی یک درخواست گواهی منفرد برای امضا توسط CA.
در صورت استفاده، این گزینه باید آخرین گزینه باشد؛ تمام آرگومان‌های بعدی به عنوان نام فایل‌های حاوی درخواست گواهی در نظر گرفته می‌شوند.
password
عبارت password که برای رمزنگاری کلید خصوصی استفاده می‌شود. از آنجا که در برخی سیستم‌ها آرگومان‌های خط فرمان برای دیگران قابل مشاهده هستند، این گزینه باید با احتیاط استفاده شود.
file
کلید خصوصی برای امضای درخواست‌ها.
pem |
قالب فایل کلید خصوصی. حالت پیش‌فرض pem است.
alg
خلاصه پیام مورد استفاده. مقادیر ممکن شامل md5 و sha1 است. این گزینه برای CRLها نیز اعمال می‌شود.
این گزینه باعث می‌شود که آرگومان -subj با پشتیبانی کامل از RDNهای چندمقداری تفسیر شود، برای نمونه "/DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe". اگر گزینه -multivalue-rdn استفاده نشود، مقدار UID برابر با "123456+CN=John Doe" تنظیم خواهد شد.
section
مشخص‌کننده section مورد استفاده از فایل پیکربندی (بازنویسی‌کننده default_ca در بخش ca ).
در صورتی که فیلد EMAIL در DN درخواست وجود داشته باشد، DN گواهی می‌تواند شامل آن باشد؛ با این حال سیاست مناسب این است که ایمیل فقط در افزونه altName گواهی قرار داده شود. هنگامی که این گزینه تنظیم شود، فیلد EMAIL از موضوع (subject) گواهی حذف شده و تنها در افزونه‌ها (در صورت وجود) قرار می‌گیرد. کلیدواژه email_in_dn می‌تواند در فایل پیکربندی برای فعال‌سازی این رفتار استفاده شود.
از درج شکل متنی گواهی در فایل خروجی خودداری می‌کند.
file
فایل خروجی برای نوشتن گواهی‌ها در آن. حالت پیش‌فرض خروجی استاندارد است. جزئیات گواهی نیز با قالب PEM در این فایل نوشته خواهد شد.
directory
پوشه directory برای ذخیره گواهی‌های خروجی. گواهی در فایلی با نام متشکل از شماره سریال در مبنای ۱۶ به همراه پسوند ".pem" ذخیره خواهد شد.
arg
منبع رمز عبور کلید.
arg
تعریف "خط‌مشی (policy)" مورد استفاده برای CA. بخش policy در فایل پیکربندی شامل مجموعه‌ای از متغیرهای متناظر با فیلدهای DN گواهی است. مقادیر می‌توانند یکی از موارد "match" (مقدار باید با همان فیلد در گواهی CA مطابقت داشته باشد)، "supplied" (مقدار باید حتماً وجود داشته باشد) یا "optional" (مقدار اختیاری است) باشند. هر فیلدی که در بخش policy ذکر نشده باشد بدون هشدار حذف می‌شود، مگر اینکه گزینه -preserveDN تنظیم شده باشد، هرچند این رفتار بیشتر یک ناهماهنگی است تا یک رفتار تعمدی.
به طور معمول، ترتیب DN یک گواهی برابر با ترتیب فیلدها در بخش خط‌مشی (policy) مربوطه است. هنگامی که این گزینه تنظیم شود، ترتیب همانند درخواست خواهد بود. این گزینه عمدتاً برای سازگاری با کنترل‌های ثبت‌نام قدیمی‌تر IE است که تنها در صورتی گواهی‌ها را می‌پذیرفتند که ترتیب DN آن‌ها دقیقاً مطابق با درخواست بود. این گزینه برای Xenroll نیازی نیست.
نشان می‌دهد که گواهی‌های صادرشده باید با همان کلیدی که درخواست‌های گواهی با آن امضا شده‌اند (که با -keyfile داده شده) امضا شوند. درخواست‌های گواهی که با کلید متفاوتی امضا شده‌اند نادیده گرفته می‌شوند. اگر -gencrl یا -ss_cert داده شوند، -selfsign نادیده گرفته خواهد شد.

یکی از پیامدهای استفاده از -selfsign این است که گواهی خودامضاشده در میان ورودی‌های پایگاه داده گواهی ظاهر می‌شود (گزینه پیکربندی database را ببینید) و از همان شمارنده شماره سریال گواهی‌های دیگر استفاده می‌کند.

nm:v
ارسال گزینه‌ها به الگوریتم امضا در طول عملیات امضا یا اعتبارسنجی. نام‌ها و مقادیر این گزینه‌ها وابسته به الگوریتم هستند.
file
یک گواهی خودامضاشده منفرد برای امضا توسط CA.
date
تنظیم تاریخ شروع. قالب تاریخ به صورت [YY]YYMMDDHHMMSSZ است، و برای تاریخ‌های سال ۲۰۵۰ به بعد درج هر چهار رقم سال الزامی است.
arg
جایگزین نام موضوع (subject) ارائه‌شده در درخواست می‌شود. آرگومان arg باید به این صورت قالب‌بندی شود: /type0=value0/type1=value1/type2=...; کاراکترها می‌توانند با ‘\’ (بک‌اسلش) اسکیپ شوند، هیچ فاصله‌ای نادیده گرفته نمی‌شود.
تفسیر مقادیر فیلدهای خوانده‌شده از ترمینال یا فایل پیکربندی به عنوان رشته‌های UTF-8. به طور پیش‌فرض، آن‌ها به عنوان ASCII تفسیر می‌شوند.
چاپ جزئیات بیشتر درباره عملیات در حال انجام.

گزینه‌های مربوط به فهرست‌های ابطال گواهی (CRL) به شرح زیر هستند:

time
مشابه -crl_compromise است، با این تفاوت که دلیل ابطال بر روی CACompromise تنظیم می‌شود.
time
تنظیم دلیل ابطال بر روی keyCompromise و زمان افشا بر روی time. پارامتر time باید در قالب GeneralizedTime یعنی YYYYMMDDHHMMSSZ باشد.
instruction
تنظیم کد دلیل ابطال CRL بر روی certificateHold و دستورالعمل تعلیق بر روی instruction که باید یک OID باشد. اگرچه هر OIDای می‌تواند استفاده شود، معمولاً تنها holdInstructionNone (که استفاده از آن توسط RFC 2459 منع شده)، holdInstructionCallIssuer یا holdInstructionReject استفاده می‌شوند.
reason
دلیل ابطال، که در آن reason یکی از موارد زیر است: unspecified، keyCompromise، CACompromise، affiliationChanged، superseded، cessationOfOperation، certificateHold یا removeFromCRL. تطبیق reason به حروف بزرگ و کوچک حساس نیست. تنظیم هرگونه دلیل ابطال باعث می‌شود که CRL نسخه ۲ (v2) شود. در عمل، removeFromCRL کاربرد چندانی ندارد زیرا تنها در delta CRLها کاربرد دارد که در حال حاضر پیاده‌سازی نشده‌اند.
days
تعداد روزهای باقی‌مانده تا سررسید CRL بعدی. این تعداد روز از اکنون است که در فیلد nextUpdate مربوط به CRL قرار می‌گیرد.
section
بخش section از فایل پیکربندی که شامل افزونه‌های CRL برای گنجاندن است. اگر هیچ بخش افزونه CRL وجود نداشته باشد، یک CRL نسخه ۱ ایجاد می‌شود؛ اگر بخش افزونه CRL موجود باشد (حتی اگر خالی باشد) یک CRL نسخه ۲ ایجاد خواهد شد. افزونه‌های مشخص‌شده مربوط به خود CRL هستند و نه مدخل‌های CRL. باید توجه داشت که برخی نرم‌افزارها قادر به پردازش CRL نسخه ۲ نیستند. برای جزئیات قالب بخش افزونه، صفحه راهنمای x509v3.cnf(5) را ببینید.
hours
تعداد ساعت‌های باقی‌مانده تا موعد CRL بعدی.
seconds
تعداد ثانیه‌های باقی‌مانده تا موعد CRL بعدی.
ایجاد یک CRL بر اساس اطلاعات موجود در فایل نمایه (index).
file
یک file حاوی گواهی برای ابطال.
serial
نمایش وضعیت گواهی با شماره سریال serial.
به‌روزرسانی نمایه پایگاه داده برای پاک‌سازی گواهی‌های منقضی‌شده.

بسیاری از گزینه‌ها را می‌توان در بخش ca از فایل پیکربندی (یا در بخش پیش‌فرض فایل پیکربندی) تنظیم کرد که با استفاده از default_ca یا -name مشخص می‌شود. گزینه preserve مستقیماً از بخش ca خوانده می‌شود.

بسیاری از گزینه‌های فایل پیکربندی با گزینه‌های خط فرمان یکسان هستند. هر جا که گزینه در هر دو فایل پیکربندی و خط فرمان وجود داشته باشد، مقدار خط فرمان استفاده می‌شود. در مواردی که گزینه‌ای به عنوان اجباری توصیف شده است، باید در فایل پیکربندی یا معادل خط فرمان آن (در صورت وجود) ارائه شود.

مشابه -cert. فایل حاوی گواهی CA را مشخص می‌کند. اجباری.
نحوه مدیریت افزونه‌ها در درخواست‌های گواهی را تعیین می‌کند. اگر بر روی none تنظیم شود یا این گزینه وجود نداشته باشد، افزونه‌ها نادیده گرفته شده و در گواهی کپی نمی‌شوند. اگر بر روی copy تنظیم شود، هر افزونه موجود در درخواست که هنوز در گواهی موجود نباشد به گواهی کپی می‌شود. اگر بر روی copyall تنظیم شود، تمام افزونه‌های موجود در درخواست در گواهی کپی می‌شوند: اگر افزونه از قبل در گواهی وجود داشته باشد، ابتدا حذف می‌شود.

گزینه copy_extensions باید با احتیاط استفاده شود. در صورت عدم دقت، می‌تواند یک خطر امنیتی ایجاد کند. برای مثال، اگر یک درخواست گواهی حاوی افزونه basicConstraints با مقدار CA:TRUE باشد و مقدار copy_extensions بر روی copyall تنظیم شده باشد و کاربر هنگام نمایش گواهی متوجه این موضوع نشود، یک گواهی معتبر CA به درخواست‌کننده اعطا خواهد شد.

از این وضعیت می‌توان با تنظیم copy_extensions بر روی copy و قرار دادن basicConstraints با مقدار CA:FALSE در فایل پیکربندی جلوگیری کرد. در این صورت، اگر درخواست حاوی افزونه basicConstraints باشد، نادیده گرفته خواهد شد.

کاربرد اصلی این گزینه این است که به درخواست گواهی اجازه دهد مقادیر برخی از افزونه‌ها مانند subjectAltName را تامین کند.

مشابه -crlexts.
یک فایل متنی حاوی شماره CRL بعدی در مبنای ۱۶. شماره CRL تنها در صورتی در CRLها درج خواهد شد که این فایل وجود داشته باشد. در صورت وجود این فایل، باید حاوی یک شماره CRL معتبر باشد.
فایل پایگاه داده متنی مورد استفاده. اجباری. این فایل باید وجود داشته باشد، هرچند در ابتدا خالی خواهد بود.
, default_crl_days
مشابه گزینه‌های -crlhours و -crldays. این مقادیر تنها در صورتی استفاده خواهند شد که هیچ‌یک از گزینه‌های خط فرمان مشخص نشده باشند. برای ایجاد یک CRL باید حداقل یکی از این دو موجود باشد.
مشابه گزینه -days. تعداد روزهایی که گواهی برای آن مدت صادر می‌شود.
مشابه گزینه -enddate. باید یا این گزینه یا default_days (یا معادل‌های خط فرمان آن‌ها) ارائه شوند.
مشابه گزینه -md. خلاصه پیام مورد استفاده. اجباری.
مشابه گزینه -startdate. تاریخ شروع اعتبار گواهی. اگر تنظیم نشود، زمان جاری سیستم استفاده می‌شود.
مشابه -noemailDN. اگر قرار است فیلد EMAIL از DN گواهی حذف شود، کافی است این مقدار بر روی "no" تنظیم شود. در صورت عدم وجود، پیش‌فرض اجازه دادن به وجود فیلد EMAIL در DN گواهی است.
, cert_opt
این گزینه‌ها قالبی را تعیین می‌کنند که برای نمایش جزئیات گواهی هنگام درخواست تایید امضا از کاربر استفاده می‌شود. تمام گزینه‌های پشتیبانی‌شده توسط سوئیچ‌های -nameopt و -certopt در ابزار x509 را می‌توان در اینجا استفاده کرد، به جز اینکه no_signame و no_sigdump به صورت دائمی تنظیم شده‌اند و نمی‌توان آن‌ها را غیرفعال کرد (زیرا امضای گواهی در این مرحله هنوز انجام نشده و نمی‌تواند نمایش داده شود).

برای سهولت، مقدار ca_default توسط هر دو پذیرفته می‌شود تا خروجی مناسبی تولید کند.

اگر هیچ‌یک از این گزینه‌ها موجود نباشد، قالبی که در نسخه‌های قدیمی‌تر openssl استفاده می‌شد به کار گرفته می‌شود. استفاده از قالب قدیمی اکیداً منع می‌شود زیرا تنها فیلدهای ذکرشده در بخش policy را نمایش می‌دهد، انواع رشته‌های چندکاراکتری را به درستی پردازش نمی‌کند و افزونه‌ها را نمایش نمی‌دهد.

مشابه گزینه خط فرمان -outdir. دایرکتوری محل قرارگیری گواهی‌های جدید را مشخص می‌کند. اجباری.
مشخص‌کننده فایلی حاوی شناسه‌های شیء (OID) اضافی است. هر سطر فایل باید شامل شکل عددی شناسه شیء به همراه فاصله، سپس نام کوتاه به همراه فاصله و در نهایت نام کامل باشد.
مشخص‌کننده بخشی در فایل پیکربندی حاوی شناسه‌های شیء اضافی است. هر سطر باید شامل نام کوتاه شناسه شیء به همراه ‘=’ و شکل عددی باشد. در صورت استفاده از این گزینه، نام کوتاه و نام کامل یکسان خواهند بود.
مشابه -policy. اجباری.
مشابه -preserveDN.
مشابه گزینه -keyfile. فایل حاوی کلید خصوصی CA. اجباری.
یک فایل متنی حاوی شماره سریال بعدی در مبنای ۱۶. اجباری. این فایل باید وجود داشته باشد و شامل یک شماره سریال معتبر باشد.
اگر مقدار yes داده شود، مدخل‌های گواهی معتبر در پایگاه داده باید دارای موضوع‌های (subjects) یکتا باشند. اگر مقدار no داده شود، چندین مدخل گواهی معتبر می‌توانند دقیقاً موضوع یکسانی داشته باشند. مقدار پیش‌فرض yes است.

توجه داشته باشید که در برخی شرایط ایجاد گواهی بدون هیچ موضوعی مجاز است. در مواردی که چندین گواهی بدون موضوع وجود دارند، این حالت به عنوان تکراری شمرده نمی‌شود.

مشابه -extensions.

openssl certhash
[-nv] dir ...

دستور certhash مقدار هش فایل‌های ".pem" را در فهرست دایرکتوری‌های مشخص‌شده محاسبه کرده و برای هر فایل پیوندهای نمادین ایجاد می‌کند، به گونه‌ای که نام پیوند، همان مقدار هش است. برای نحوه استفاده از پیوندهای هش، صفحه راهنمای SSL_CTX_load_verify_locations(3) را ببینید.

پیوندهای ایجادشده به فرم "HHHHHHHH.D" هستند، که در آن هر ‘H’ یک نویسه هگزادسیمال و ‘D’ یک رقم ده‌دهی منفرد است. هش‌های مربوط به CRLها مشابه هستند، با این تفاوت که حرف ‘r’ پس از نقطه ظاهر می‌شود، مانند: "HHHHHHHH.rD". هنگام پردازش یک پوشه، certhash ابتدا تمام پیوندهایی را که دارای نامی با این نحو و ارجاع نامعتبر هستند حذف می‌کند.

ممکن است چندین شیء دارای هش یکسانی باشند؛ آن‌ها با افزایش مقدار ‘D’ مشخص خواهند شد. موارد تکراری با مقایسه اثرانگشت کامل SHA256 شناسایی می‌شوند. در صورت یافتن مورد تکراری، یک هشدار نمایش داده خواهد شد.

همچنین اگر فایل‌هایی وجود داشته باشند که نتوان آن‌ها را به عنوان گواهی یا CRL تجزیه کرد، هشدار نمایش داده خواهد شد.

گزینه‌ها به شرح زیر هستند:

اجرای آزمایشی (بدون اعمال تغییرات واقعی).
چاپ جزئیات بیشتر درباره پردازش.
dir ...
مشخص کردن پوشه‌ها برای پردازش.

openssl ciphers [-hsVv] [-tls1_2] [-tls1_3] [control]

دستور ciphers رشته control را از قالبی که در SSL_CTX_set_cipher_list(3) مستند شده است به یک فهرست مرتب اولویت‌بندی مجموعه‌های رمزنگاری SSL تبدیل می‌کند. اگر هیچ رشته control مشخص نشود، فهرست DEFAULT چاپ می‌شود.

گزینه‌ها به شرح زیر هستند:

, -?
نمایش خلاصه پیام نحوه استفاده.
فقط رمزگذارهایی را که توسط روش TLS پشتیبانی می‌شوند فهرست می‌کند.
|
در ترکیب با گزینه -s -، رمزگذارهایی را فهرست می‌کند که در صورت مذاکره بر روی نسخه پروتکل مشخص‌شده، قابل استفاده خواهند بود.
خروجی با جزئیات کامل. فهرست کردن رمزگذارها همراه با کد مجموعه رمزگذاری در قالب هگز، نام الگوریتم و توضیحات کامل درباره نسخه پروتکل، تبادل کلید، احراز اصالت، رمزنگاری و الگوریتم‌های MAC.
مشابه -V -، اما بدون نمایش کدهای مجموعه رمزگذاری.

openssl cms
[-aes128 | -aes192 | -aes256 | -camellia128 | -camellia192 | -camellia256 | -des | -des3 | -rc2-40 | -rc2-64 | -rc2-128] [-CAfile file] [-CApath directory] [-CRLfile file] [-binary] [-certfile file] [-certsout file] [-cmsout] [-content file] [-crlfeol] [-data_create] [-data_out] [-debug_decrypt] [-decrypt] [-digest_create] [-digest_verify] [-econtent_type type] [-encrypt] [-EncryptedData_decrypt] [-EncryptedData_encrypt] [-from addr] [-in file] [-inform der | pem | smime] [-inkey file] [-keyform der | pem] [-keyid] [-keyopt nm:v] [-md digest] [-no_attr_verify] [-no_content_verify] [-no_signer_cert_verify] [-noattr] [-nocerts] [-nodetach] [-nointern] [-nooldmime] [-noout] [-nosigs] [-nosmimecap] [-noverify] [-out file] [-outform der | pem | smime] [-passin src] [-print] [-pwri_password arg] [-rctform der | pem | smime] [-receipt_request_all | -receipt_request_first] [-receipt_request_from addr] [-receipt_request_print] [-receipt_request_to addr] [-recip file] [-resign] [-secretkey key] [-secretkeyid id] [-sign] [-sign_receipt] [-signer file] [-stream | -indef | -noindef] [-subject s] [-text] [-to addr] [-verify] [-verify_receipt file] [-verify_retcode] [cert.pem ...]

دستور cms نامه‌های الکترونیکی S/MIME نسخه ۳.۱ را مدیریت می‌کند. این ابزار می‌تواند پیام‌های S/MIME را رمزگذاری، رمزگشایی، امضا و اعتبارسنجی کند.

پیام MIME باید بدون هیچ خط خالی میان سرایندها (headers) و خروجی ارسال شود. برخی از برنامه‌های ایمیل به طور خودکار یک خط خالی اضافه می‌کنند. ارسال مستقیم پیام با لوله (pipe) به sendmail یکی از روش‌های دستیابی به قالب صحیح است.

پیام ارائه‌شده برای امضا یا رمزگذاری باید شامل هدرهای ضروری MIME باشد، در غیر این صورت بسیاری از کلاینت‌های S/MIME نمی‌توانند آن را به درستی نمایش دهند (یا اصلاً نمایش نمی‌دهند). می‌توانید از گزینه -text برای افزودن خودکار هدرهای متن ساده استفاده کنید.

یک پیام "امضا و رمزگذاری‌شده" پیامی است که ابتدا امضا شده و سپس رمزگذاری می‌شود. این کار را می‌توان با رمزگذاری پیامی که قبلاً امضا شده است انجام داد.

گزینه‌های عملیاتی گوناگونی وجود دارند که نوع عملیات اجرایی را تعیین می‌کنند. معنای سایر گزینه‌ها متناسب با نوع عملیات متفاوت خواهد بود.

رمزگذاری ایمیل برای گواهی‌های گیرنده ارائه‌شده. فایل ورودی پیامی است که باید رمزگذاری شود. فایل خروجی ایمیل رمزگذاری‌شده در قالب MIME است. نوع واقعی CMS برابر با EnvelopedData است. توجه داشته باشید که هیچ بررسی ابطالی برای گواهی گیرنده انجام نمی‌شود، بنابراین اگر آن کلید لو رفته باشد، دیگران ممکن است بتوانند متن را رمزگشایی کنند.
رمزگشایی ایمیل با استفاده از گواهی و کلید خصوصی ارائه‌شده. در فایل ورودی انتظار یک پیام ایمیل رمزگذاری‌شده در قالب MIME را دارد. ایمیل رمزگشایی‌شده در فایل خروجی نوشته می‌شود.
امضای ایمیل با استفاده از گواهی و کلید خصوصی ارائه‌شده. فایل ورودی پیامی است که باید امضا شود. پیام امضاشده در قالب MIME در فایل خروجی نوشته می‌شود.
-verify
اعتبارسنجی ایمیل امضاشده. در ورودی انتظار یک پیام ایمیل امضاشده را دارد و داده‌های امضاشده را به خروجی می‌فرستد. هر دو امضای متن آشکار (clear text) و امضای مات (opaque) پشتیبانی می‌شوند.
دریافت یک پیام ورودی و نوشتن ساختار CMS کدگذاری‌شده با PEM در خروجی.
امضای مجدد یک پیام. دریافت یک پیام موجود و یک یا چند امضاکننده جدید. این عملیات هنگام افزودن یک امضاکننده جدید از خلاصه پیام موجود استفاده می‌کند. این بدان معناست که ویژگی‌ها باید حداقل در یک امضاکننده موجود با همان خلاصه پیام وجود داشته باشند، در غیر این صورت این عملیات ناموفق خواهد بود.
ایجاد یک نوع داده CMS Data.
خروجی دادن محتوا از نوع داده ورودی CMS Data.
ایجاد یک نوع داده CMS DigestedData.
اعتبارسنجی نوع داده CMS DigestedData و خروجی دادن محتوا.
رمزگذاری محتوا با استفاده از کلید متقارن و الگوریتم ارائه‌شده با استفاده از نوع داده CMS EncryptedData.
رمزگشایی یک نوع داده CMS EncryptedData با استفاده از کلید متقارن ارائه‌شده.
تولید و خروجی دادن رسید امضاشده برای پیام ارائه‌شده. پیام ورودی باید شامل درخواست رسید امضاشده باشد. سایر عملکردهای آن مشابه عملیات -sign است.
file
اعتبارسنجی رسید امضاشده در فایل. پیام ورودی باید حاوی درخواست رسید اولیه باشد. سایر عملکردهای آن مشابه عملیات -verify است.

سایر گزینه‌ها به شرح زیر هستند:

| | | | | | | | | |
الگوریتم رمزگذاری مورد استفاده. به ترتیب الگوریتم‌های AES با طول کلید ۱۲۸، ۱۹۲ یا ۲۵۶ بیت، CAMELLIA با طول ۱۲۸، ۱۹۲ یا ۲۵۶ بیت، DES (۵۶ بیت)، Triple DES (۱۶۸ بیت)، یا RC2 با طول ۴۰، ۶۴ یا ۱۲۸ بیت؛ در صورت عدم تعیین، AES با طول ۲۵۶ بیت استفاده می‌شود. تنها در دستورهای -encrypt و -EncryptedData_encrypt کاربرد دارد.
به طور معمول، پیام ورودی طبق الزامات مشخصات S/MIME به قالب "استاندارد" (canonical) که در عمل استفاده از CR/LF به عنوان پایان خط است تبدیل می‌شود. هنگامی که این گزینه ارائه شود، هیچ تبدیلی رخ نمی‌دهد. این گزینه هنگام پردازش داده‌های دودویی که ممکن است در قالب MIME نباشند مفید است.
file
فایل حاوی گواهی‌های معتمد CA، مورد استفاده همراه با -verify و -verify_receipt.
directory
پوشه حاوی گواهی‌های معتمد CA، مورد استفاده همراه با -verify و -verify_receipt. این پوشه باید یک پوشه استاندارد گواهی باشد: بدین معنا که هش هر نام موضوع (با استفاده از x509 -hash) باید به هر گواهی پیوند داده شده باشد.
file
امکان مشخص کردن فهرست‌های ابطال گواهی (CRL) اضافی را برای اعتبارسنجی فراهم می‌کند. این CRLها باید در قالب PEM باشند.
cert.pem ...
یک یا چند گواهی از گیرندگان پیام: هنگام رمزگذاری پیام استفاده می‌شود.
file
امکان تعیین گواهی‌های اضافی را فراهم می‌کند. هنگام امضا، این گواهی‌ها همراه با پیام گنجانده می‌شوند. هنگام اعتبارسنجی، این فایل‌ها برای یافتن گواهی‌های امضاکننده جستجو می‌شوند. گواهی‌ها باید در قالب PEM باشند.
file
فایلی که تمام گواهی‌های موجود در پیام در آن نوشته می‌شوند.
, -crl_check, -crl_check_all, -extended_crl, -ignore_critical, -issuer_checks, -policy, -policy_check, -purpose, -x509_strict
تنظیم گزینه‌های گوناگون اعتبارسنجی زنجیره گواهی. برای جزئیات بیشتر به دستور verify مراجعه کنید.
file
فایل حاوی محتوای جداشده (detached content). این گزینه تنها با دستور -verify مفید است. همچنین تنها زمانی قابل استفاده است که ساختار CMS از فرم امضای جداشده استفاده کند که در آن محتوا درون پیام گنجانده نشده است. اگر قالب ورودی S/MIME بوده و از نوع محتوای MIME multipart/signed استفاده کند، این گزینه هر محتوایی را بازنویسی خواهد کرد.
خروجی دادن پیام S/MIME با پایان خط CR/LF.
تنظیم پرچم CMS_DEBUG_DECRYPT هنگام رمزگشایی. این گزینه باید با احتیاط استفاده شود، چرا که می‌تواند حفاظت در برابر حمله MMA را غیرفعال کرده و در صورت عدم یافتن گیرنده خطا بازگرداند. برای جزئیات بیشتر درباره این فلگ به صفحه راهنمای CMS_decrypt(3) مراجعه کنید.
addr, -subject s, -to addr
سرایندهای (headers) مرتبط با ایمیل. این سرایندها در خارج از بخش امضاشده پیام قرار می‌گیرند، بنابراین می‌توان آن‌ها را به صورت دستی درج کرد. هنگام امضا، بسیاری از کلاینت‌های ایمیل S/MIME بررسی می‌کنند که نشانی ایمیل گواهی امضاکننده با نشانی مشخص‌شده در From: مطابقت داشته باشد.
type
تنظیم نوع محتوای کپسوله‌شده، مورد استفاده همراه با -sign. اگر ارائه نشود، از نوع Data استفاده می‌شود. آرگومان type می‌تواند هر نام معتبر OID در قالب متنی یا عددی باشد.
file
پیام ورودی برای رمزگذاری یا امضا، یا پیامی که باید رمزگشایی یا اعتبارسنجی شود.
der | | smime
قالب ورودی برای ساختار CMS. حالت پیش‌فرض smime است که پیامی با قالب S/MIME را می‌خواند. قالب‌های pem و der این رفتار را تغییر می‌دهند تا به جای آن ساختارهای CMS با قالب PEM و DER انتظار رود. این گزینه در حال حاضر تنها بر قالب ورودی ساختار CMS تاثیر می‌گذارد؛ اگر ساختار CMS ورودی داده نشود (برای مثال با -encrypt یا -sign) این گزینه تاثیری نخواهد داشت.
file
کلید خصوصی مورد استفاده هنگام امضا یا رمزگشایی. این کلید باید با گواهی مربوطه مطابقت داشته باشد. اگر این گزینه مشخص نشود، کلید خصوصی باید در فایل گواهی تعیین‌شده با گزینه -recip یا -signer گنجانده شده باشد. هنگام امضا، این گزینه می‌تواند چندین بار برای تعیین کلیدهای پیاپی استفاده شود.
der |
قالب کلید خصوصی ورودی. حالت پیش‌فرض pem است.
استفاده از شناسه کلید موضوع (subject key identifier) برای شناسایی گواهی‌ها به جای نام صادرکننده و شماره سریال. گواهی ارائه‌شده باید شامل افزونه شناسه کلید موضوع باشد. توسط عملیات‌های -sign و -encrypt پشتیبانی می‌شود.
nm:v
تنظیم پارامترهای سفارشی برای کلید یا گواهی پیشین جهت رمزگذاری و امضا. در حال حاضر می‌توان از آن برای تنظیم RSA-PSS جهت امضا، RSA-OAEP برای رمزگذاری یا تغییر پارامترهای پیش‌فرض برای ECDH استفاده کرد. این گزینه می‌تواند چندین بار استفاده شود.
digest
الگوریتم خلاصه پیام مورد استفاده هنگام امضا یا امضای مجدد. اگر وجود نداشته باشد، از الگوریتم خلاصه پیام پیش‌فرض برای کلید امضا استفاده خواهد شد (معمولاً SHA1).
ویژگی‌های امضاکننده را در امضا اعتبارسنجی نمی‌کند.
محتوای یک پیام امضاشده را اعتبارسنجی نمی‌کند.
گواهی امضاکننده یک پیام امضاشده را اعتبارسنجی نمی‌کند.
از گنجاندن ویژگی‌ها خودداری می‌کند. به طور معمول هنگام امضای یک پیام، مجموعه‌ای از ویژگی‌ها شامل زمان امضا و الگوریتم‌های متقارن پشتیبانی‌شده گنجانده می‌شوند. با این گزینه، آن‌ها درج نخواهند شد.
از درج گواهی امضاکننده خودداری می‌کند. این کار اندازه پیام امضاشده را کاهش می‌دهد اما اعتبارسنج باید یک نسخه محلی از گواهی امضاکننده را در دسترس داشته باشد (برای نمونه از طریق گزینه -certfile ارائه شده باشد).
هنگام امضای پیام، از امضای مات (opaque signing) استفاده می‌کند. این فرمت در برابر دستکاری توسط بازپخش‌کننده‌های ایمیل (mail relays) مقاوم‌تر است، اما توسط برنامه‌های ایمیلی که از S/MIME پشتیبانی نمی‌کنند خوانده نمی‌شود. بدون این گزینه، امضای متن آشکار با نوع MIME multipart/signed استفاده می‌شود.
تنها از گواهی‌های مشخص‌شده در گزینه -certfile استفاده می‌شود. هنگام اعتبارسنجی پیام، معمولاً گواهی‌های موجود در خود پیام (در صورت وجود) برای یافتن گواهی امضا جستجو می‌شوند. با این حال گواهی‌های ارائه‌شده می‌توانند به عنوان CAهای غیرمعتمد استفاده شوند.
خروجی دادن نوع محتوای قدیمی S/MIME مانند "application/x-pkcs7-".
از خروجی دادن ساختار تجزیه‌شده CMS برای عملیات -cmsout خودداری می‌کند. این گزینه در صورت ترکیب با گزینه -print یا هنگام بررسی صحت ساختار CMS کاربرد دارد.
تلاشی برای اعتبارسنجی امضاهای موجود در پیام انجام نمی‌دهد.
فهرست الگوریتم‌های پشتیبانی‌شده را از ویژگی‌های امضاشده حذف می‌کند؛ سایر گزینه‌ها مانند زمان امضا و نوع محتوا همچنان درج می‌شوند.
گواهی امضاکننده یک پیام امضاشده را اعتبارسنجی نمی‌کند.
file
متن پیامی که رمزگشایی یا اعتبارسنجی شده است، یا پیام خروجی با قالب MIME که امضا یا اعتبارسنجی شده است.
der | | smime
قالب خروجی ساختار CMS را تعیین می‌کند. حالت پیش‌فرض smime است که پیامی با قالب S/MIME می‌نویسد. قالب‌های pem و der این رفتار را تغییر می‌دهند تا ساختارهای CMS با قالب PEM و DER نوشته شوند. این گزینه در حال حاضر تنها بر قالب خروجی ساختار CMS اثر می‌گذارد؛ اگر ساختار CMS در خروجی نباشد (برای نمونه با -verify یا -decrypt) این گزینه تاثیری نخواهد داشت.
src
منبع رمز عبور کلید خصوصی.
چاپ تمام فیلدهای ساختار CMS برای عملیات -cmsout. این گزینه عمدتاً برای اهداف آزمایش و عیب‌یابی مفید است.
arg
تعیین رمز عبور PasswordRecipientInfo (PWRI) مورد استفاده. توسط عملیات‌های -encrypt و -decrypt پشتیبانی می‌شود.
der | | smime
تعیین قالب رسید امضاشده برای استفاده با عملیات -receipt_verify. حالت پیش‌فرض smime است.
|
مشخص می‌کند که درخواست‌ها باید توسط تمام گیرندگان یا گیرندگان رده اول (کسانی که مستقیماً و نه از فهرست پستی نامه را دریافت کرده‌اند) ارائه شوند، تا عملیات -sign شامل درخواست رسید امضاشده باشد. اگر -receipt_request_from درج شده باشد، این گزینه نادیده گرفته می‌شود.
addr
افزودن نشانی ایمیل مشخص برای ارائه رسیدها.
چاپ محتوای هرگونه درخواست رسید امضاشده برای عملیات -verify.
addr
افزودن نشانی ایمیل مشخص که رسیدهای امضاشده باید به آن ارسال شوند. در صورت درخواست رسید امضاشده، درج این گزینه الزامی است.
file
هنگام رمزگشایی پیام، این گزینه گواهی گیرنده را مشخص می‌کند. این گواهی باید با یکی از گیرندگان پیام مطابقت داشته باشد، در غیر این صورت خطایی رخ می‌دهد. هنگام رمزگذاری پیام، می‌توان از این گزینه چندین بار برای تعیین هر یک از گیرندگان استفاده کرد. اگر پارامترهای سفارشی نیاز باشد (برای نمونه جهت تعیین RSA-OAEP) باید از این فرم استفاده شود. تنها گواهی‌های حامل کلیدهای RSA، Diffie-Hellman یا EC توسط این گزینه پشتیبانی می‌شوند.
key
مشخص کردن کلید متقارن مورد استفاده. کلید باید در قالب هگزادسیمال ارائه شده و با الگوریتم استفاده‌شده سازگار باشد. توسط عملیات‌های -EncryptedData_encrypt -، -EncryptedData_decrypt -، -encrypt و -decrypt پشتیبانی می‌شود. هنگام استفاده با -encrypt یا -decrypt -، کلید ارائه‌شده برای بسته‌بندی یا باز کردن کلید رمزنگاری محتوا با استفاده از یک کلید AES در نوع KEKRecipientInfo به کار می‌رود.
id
شناسه کلید برای کلید متقارن ارائه‌شده در نوع KEKRecipientInfo. اگر گزینه -secretkey همراه با -encrypt استفاده شود، درج این گزینه الزامی است. در عملیات‌های -decrypt این شناسه برای مکان‌یابی کلید مربوطه استفاده می‌شود؛ اگر ارائه نشود، تلاشی برای رمزگشایی تمام ساختارهای KEKRecipientInfo صورت می‌گیرد.
file
گواهی امضاکننده هنگام امضا یا امضای مجدد یک پیام؛ اگر به بیش از یک امضاکننده نیاز باشد، این گزینه می‌تواند چندین بار استفاده شود. اگر پیامی در حال اعتبارسنجی باشد و اعتبارسنجی موفقیت‌آمیز باشد، گواهی‌های امضاکنندگان در این فایل نوشته خواهند شد.
| |
گزینه‌های -stream و -indef معادل یکدیگر هستند و ورودی/خروجی جریانی (streaming I/O) را برای عملیات کدگذاری فعال می‌کنند. این کار امکان پردازش تک‌گذره داده‌ها را بدون نیاز به نگهداری تمام محتوا در حافظه فراهم کرده و پشتیبانی از فایل‌های بسیار حجیم را ممکن می‌سازد. حالت جریانی برای امضای S/MIME با داده‌های جداشده در صورتی که قالب خروجی smime باشد به طور خودکار فعال می‌شود؛ در حال حاضر برای سایر عملیات به طور پیش‌فرض خاموش است. گزینه -noindef ورودی/خروجی جریانی را در مواردی که منجر به تولید کدگذاری ساخت‌یافته با طول نامعین می‌شود غیرفعال می‌کند. این گزینه در حال حاضر تاثیری ندارد.
افزودن هدرهای MIME متن ساده (text/plain) به پیام ارائه‌شده هنگام رمزگذاری یا امضا. هنگام رمزگشایی یا اعتبارسنجی، هدرهای متنی را حذف می‌کند: اگر پیام رمزگشایی‌شده یا اعتبارسنجی‌شده از نوع MIME text/plain نباشد، خطایی رخ خواهد داد.
تنظیم کد خطای اعتبارسنجی به عنوان کد خروج جهت نشان دادن اینکه چه خطای اعتبارسنجی رخ داده است. تنها توسط عملیات -verify پشتیبانی می‌شود. مقدار کد خروج منهای ۳۲ نشان‌دهنده کد خطای اعتبارسنجی است. برای فهرست کدهای خطای اعتبارسنجی به دستور verify مراجعه کنید.

کدهای خروج برای cms به شرح زیر هستند:

0
عملیات کاملاً موفقیت‌آمیز بود.
1
خطایی هنگام تجزیه گزینه‌های دستور رخ داد.
2
یکی از فایل‌های ورودی قابل خواندن نبود.
3
خطایی هنگام ایجاد فایل CMS یا هنگام خواندن پیام MIME رخ داد.
4
خطایی هنگام رمزگشایی یا اعتبارسنجی پیام رخ داد.
5
پیام به درستی اعتبارسنجی شد اما هنگام نوشتن گواهی‌های امضاکننده خطایی رخ داد.
6
خطایی هنگام نوشتن فایل خروجی رخ داد.
32+
خطای اعتبارسنجی رخ داد در حالی که گزینه -verify_retcode مشخص شده بود.

openssl crl
[-CAfile file] [-CApath dir] [-crlnumber] [-fingerprint] [-hash] [-hash_old] [-in file] [-inform der | pem] [-issuer] [-lastupdate] [-nameopt option] [-nextupdate] [-noout] [-out file] [-outform der | pem] [-text] [-verify]

دستور crl فایل‌های فهرست ابطال گواهی (CRL) را در قالب DER یا PEM پردازش می‌کند.

گزینه‌ها به شرح زیر هستند:

file
اعتبارسنجی امضا روی CRL با جستجوی گواهی صادرکننده در file.
directory
اعتبارسنجی امضا روی CRL با جستجوی گواهی صادرکننده در dir. این پوشه باید یک پوشه استاندارد گواهی باشد، بدین معنا که هشی از هر نام موضوع (با استفاده از x509 -hash) باید به هر گواهی پیوند داده شده باشد.
چاپ شماره CRL.
چاپ اثرانگشت CRL.
خروجی دادن مقدار هش نام صادرکننده. از این مقدار می‌توان برای جستجوی CRLها در یک دایرکتوری بر اساس نام صادرکننده استفاده کرد.
خروجی دادن هش سبک قدیمی (MD5) از نام صادرکننده.
file
فایل ورودی برای خواندن، یا ورودی استاندارد در صورت عدم تعیین.
der |
قالب ورودی.
چاپ نام صادرکننده در خروجی.
چاپ فیلد thisUpdate در خروجی. نام این گزینه به دلایل تاریخی نام‌گذاری نادرست شده است.
option
تعیین گزینه‌های نام گواهی.
چاپ فیلد nextUpdate در خروجی.
خودداری از ارسال نسخه کدگذاری‌شده CRL به خروجی.
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین.
der |
قالب خروجی.
چاپ CRL در قالب متن ساده.
-verify
اعتبارسنجی امضای موجود در CRL.

openssl crl2pkcs7
[-certfile file] [-in file] [-inform der | pem] [-nocrl] [-out file] [-outform der | pem]

دستور crl2pkcs7 یک CRL اختیاری و یک یا چند گواهی را دریافت کرده و آن‌ها را به یک ساختار تبهگن (degenerate) "فقط گواهی‌ها (certificates only)" در قالب PKCS#7 تبدیل می‌کند.

گزینه‌ها به شرح زیر هستند:

file
افزودن گواهی‌های موجود در file با قالب PEM به ساختار PKCS#7. از این گزینه می‌توان بیش از یک بار برای خواندن گواهی‌ها از چندین فایل استفاده کرد.
file
خواندن CRL از file ، یا ورودی استاندارد در صورت عدم تعیین.
der |
قالب ورودی.
به طور معمول، یک CRL در فایل خروجی گنجانده می‌شود. با این گزینه، هیچ CRLای در فایل خروجی درج نمی‌شود و هیچ CRLای از فایل ورودی خوانده نخواهد شد.
file
نوشتن ساختار PKCS#7 در file ، یا خروجی استاندارد در صورت عدم تعیین.
der |
قالب خروجی.

openssl dgst
[-cdr] [-binary] [-digest] [-hex] [-hmac key] [-keyform pem] [-mac algorithm] [-macopt nm:v] [-out file] [-passin arg] [-prverify file] [-sign file] [-signature file] [-sigopt nm:v] [-verify file] [file ...]

توابع خلاصه پیام (digest)، چکیده پیام مربوط به file یا files ارائه‌شده را در قالب هگزادسیمال در خروجی چاپ می‌کنند. همچنین می‌توان از آن‌ها برای امضای دیجیتال و اعتبارسنجی استفاده کرد.

گزینه‌ها به شرح زیر هستند:

خروجی دادن خلاصه پیام یا امضا در قالب دودویی (باینری).
چاپ خلاصه پیام در گروه‌های دو رقمی جداشده با دونقطه.
چاپ اطلاعات اشکال‌زدایی BIO.
-digest
استفاده از الگوریتم خلاصه پیام مشخص‌شده در digest. حالت پیش‌فرض SHA256 است. خلاصه‌های پیام موجود را می‌توان با دستور openssl list-message-digest-commands مشاهده کرد. دستورهای زیر معادل یکدیگرند: openssl dgst -sha256 و openssl sha256.
خلاصه پیام به صورت تخلیه هگز (hex dump) چاپ شود. این حالت پیش‌فرض برای یک خلاصه پیام "عادی" در مقایسه با امضای دیجیتال است.
key
ایجاد یک کد اصالت‌سنجی پیام مبتنی بر هش (HMAC) با استفاده از key.
pem
قالب کلید را برای امضای خلاصه پیام مشخص می‌کند.
algorithm
ایجاد یک کد اصالت‌سنجی پیام کلیددار (MAC). رایج‌ترین الگوریتم MAC، الگوریتم HMAC (کد اصالت‌سنجی پیام مبتنی بر هش) است، اما الگوریتم‌های MAC دیگری نیز وجود دارند که مبتنی بر هش نیستند. کلیدهای MAC و سایر گزینه‌ها باید از طریق پارامتر -macopt تنظیم شوند.
nm:v
ارسال گزینه‌ها به الگوریتم MAC، که توسط -mac مشخص شده است. گزینه‌های زیر توسط HMAC پشتیبانی می‌شوند:
:string
کلید MAC را به صورت یک رشته الفبایی-عددی مشخص می‌کند (زمانی استفاده شود که کلید تنها شامل نویسه‌های قابل چاپ باشد). طول رشته باید با محدودیت‌های الگوریتم MAC مطابقت داشته باشد.
:string
کلید MAC را در قالب هگزادسیمال مشخص می‌کند (دو رقم هگز برای هر بایت). طول کلید باید با محدودیت‌های الگوریتم MAC مطابقت داشته باشد.
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین.
arg
منبع رمز عبور کلید.
file
اعتبارسنجی امضا با استفاده از کلید خصوصی موجود در file. خروجی یکی از عبارت‌های "Verification OK" یا "Verification Failure" خواهد بود.
چاپ خلاصه پیام در قالب ابزارهای هسته (coreutils).
file
امضای دیجیتالی خلاصه پیام با استفاده از کلید خصوصی موجود در file.
file
امضای واقعی برای اعتبارسنجی.
nm:v
ارسال گزینه‌ها به الگوریتم امضا در طول عملیات امضا یا اعتبارسنجی. نام‌ها و مقادیر این گزینه‌ها وابسته به الگوریتم هستند.
-verify file
اعتبارسنجی امضا با استفاده از کلید عمومی موجود در file. خروجی یکی از عبارت‌های "Verification OK" یا "Verification Failure" خواهد بود.
file ...
فایل یا فایل‌ها برای محاسبه خلاصه پیام. در صورت عدم تعیین فایل، از ورودی استاندارد استفاده می‌شود.

openssl dhparam
[-2 | -5] [-check] [-dsaparam] [-in file] [-inform der | pem] [-noout] [-out file] [-outform der | pem] [-text] [numbits]

دستور dhparam برای مدیریت و دستکاری فایل‌های پارامتر دیفی-هلمن (DH) استفاده می‌شود. تنها قالب قدیمی‌تر PKCS#3 DH پشتیبانی می‌شود و نه قالب جدیدتر X9.42 DH.

گزینه‌ها به شرح زیر هستند:

, -5
مولد (generator) مورد استفاده؛ ۲ مقدار پیش‌فرض است. در صورت وجود، فایل ورودی نادیده گرفته شده و پارامترها به جای آن تولید می‌شوند.
بررسی و اعتبارسنجی پارامترهای DH.
-dsaparam
خواندن یا ایجاد پارامترهای DSA، که در خروجی به قالب DH تبدیل می‌شوند. در غیر این صورت، اعداد اول "قوی" (به گونه‌ای که (p-1)/2 نیز اول باشد) برای تولید پارامترهای DH استفاده خواهند شد.

تولید پارامترهای DH با گزینه -dsaparam بسیار سریع‌تر است، و طول توان پیشنهادی کوتاه‌تر است، که باعث کارایی بیشتر در تبادل کلید DH می‌شود. توجه داشته باشید که با چنین پارامترهای DH به سبک DSA، برای هر بار استفاده باید یک کلید تازه DH ایجاد شود تا از حملات زیرگروه کوچک (small-subgroup) که در غیر این صورت ممکن است رخ دهد جلوگیری گردد.

file
فایل ورودی برای خواندن از آن، یا ورودی استاندارد در صورت عدم تعیین.
der |
قالب ورودی.
خودداری از ارسال نسخه کدگذاری‌شده پارامترها به خروجی.
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین.
der |
قالب خروجی.
چاپ پارامترهای DH در قالب متن ساده.
numbits
تولید یک مجموعه پارامتر با اندازه numbits. این مورد باید آخرین گزینه باشد. اگر مشخص نشود، مقدار ۲۰۴۸ استفاده می‌شود. در صورت وجود این مقدار، فایل ورودی نادیده گرفته شده و پارامترها تولید خواهند شد.

openssl dsa
[-aes128 | -aes192 | -aes256 | -des | -des3] [-in file] [-inform der | pem | pvk] [-modulus] [-noout] [-out file] [-outform der | pem | pvk] [-passin arg] [-passout arg] [-pubin] [-pubout] [-pvk-none | -pvk-strong | -pvk-weak] [-text]

دستور dsa کلیدهای DSA را پردازش می‌کند. این کلیدها را می‌توان میان فرمت‌های گوناگون تبدیل کرده و اجزای آن‌ها را چاپ نمود.

نکته: این دستور از قالب سنتی سازگار با SSLeay برای رمزنگاری کلید خصوصی استفاده می‌کند: برنامه‌های جدیدتر باید از قالب امن‌تر PKCS#8 با استفاده از دستور pkcs8 استفاده کنند.

گزینه‌ها به شرح زیر هستند:

| | | |
رمزگذاری کلید خصوصی به ترتیب با الگوریتم‌های AES، DES یا Triple DES پیش از ارسال آن به خروجی. از کاربر عبارت عبور (passphrase) درخواست می‌شود. اگر هیچ‌یک از این گزینه‌ها مشخص نشوند، کلید به صورت متن آشکار نوشته می‌شود. این بدان معناست که استفاده از ابزار dsa برای خواندن یک کلید رمزگذاری‌شده بدون تعیین گزینه رمزگذاری می‌تواند برای حذف عبارت عبور از کلید استفاده شود، یا با تنظیم گزینه‌های رمزگذاری می‌توان برای افزودن یا تغییر عبارت عبور استفاده کرد. این گزینه‌ها تنها با فایل‌های خروجی با قالب PEM قابل استفاده هستند.
file
فایل ورودی برای خواندن از آن، یا ورودی استاندارد در صورت عدم تعیین. اگر کلید رمزگذاری شده باشد، عبارت عبور درخواست خواهد شد.
der | |
قالب ورودی.
چاپ مقدار مولفه کلید عمومی از کلید مورد نظر.
خودداری از ارسال نسخه کدگذاری‌شده کلید به خروجی.
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین. اگر هرگونه گزینه رمزگذاری تنظیم شده باشد، عبارت عبور درخواست خواهد شد.
der | |
قالب خروجی.
arg
منبع رمز عبور کلید.
arg
منبع رمز عبور فایل خروجی.
خواندن یک کلید عمومی به جای کلید خصوصی.
خروجی دادن یک کلید عمومی به جای کلید خصوصی. در صورتی که ورودی یک کلید عمومی باشد به طور خودکار فعال می‌شود.
| |
فعال یا غیرفعال کردن کدگذاری PVK. حالت پیش‌فرض -pvk-strong است.
چاپ کلید عمومی/خصوصی در قالب متن آشکار.

openssl dsaparam
[-genkey] [-in file] [-inform der | pem] [-noout] [-out file] [-outform der | pem] [-text] [numbits]

دستور dsaparam برای مدیریت یا تولید فایل‌های پارامتر DSA استفاده می‌شود.

گزینه‌ها به شرح زیر هستند:

تولید یک کلید DSA با استفاده از پارامترهای مشخص‌شده یا تولیدشده.
file
فایل ورودی برای خواندن از آن، یا ورودی استاندارد در صورت عدم تعیین. اگر پارامتر numbits درج شده باشد، این گزینه نادیده گرفته می‌شود.
der |
قالب ورودی.
خودداری از ارسال نسخه کدگذاری‌شده پارامترها به خروجی.
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین.
der |
قالب خروجی.
چاپ پارامترهای DSA در قالب متن آشکار.
numbits
تولید یک مجموعه پارامتر با اندازه numbits. در صورت گنجاندن این گزینه، فایل ورودی نادیده گرفته می‌شود.

openssl ec
[-conv_form arg] [-des] [-des3] [-in file] [-inform der | pem] [-noout] [-out file] [-outform der | pem] [-param_enc arg] [-param_out] [-passin arg] [-passout arg] [-pubin] [-pubout] [-text]

دستور ec کلیدهای منحنی بیضوی (EC) را پردازش می‌کند. این کلیدها را می‌توان میان فرمت‌های مختلف تبدیل کرد و اجزای آن‌ها را چاپ نمود. openssl از قالب کلید خصوصی مشخص‌شده در “SEC 1: Elliptic Curve Cryptography” (https://www.secg.org). استفاده می‌کند. برای تبدیل یک کلید خصوصی EC به قالب کلید خصوصی PKCS#8 از دستور pkcs8 استفاده کنید.

گزینه‌ها به شرح زیر هستند:

arg
نحوه تبدیل نقاط روی منحنی بیضوی به رشته‌های اوکتت را مشخص می‌کند. مقادیر ممکن عبارتند از: compressed ، uncompressed (پیش‌فرض)، و hybrid. برای اطلاعات بیشتر درباره فرم‌های تبدیل نقطه، استاندارد X9.62 را ببینید.
|
رمزگذاری کلید خصوصی با DES، Triple DES یا هر رمزگذار دیگری که توسط openssl پشتیبانی می‌شود. از کاربر عبارت عبور درخواست خواهد شد. اگر هیچ‌یک از این گزینه‌ها مشخص نشوند، کلید به صورت متن آشکار نوشته می‌شود. این بدان معناست که استفاده از ابزار ec برای خواندن یک کلید رمزگذاری‌شده بدون تعیین گزینه رمزگذاری می‌تواند برای حذف عبارت عبور از کلید استفاده شود، یا با تنظیم گزینه‌های رمزگذاری می‌توان برای افزودن یا تغییر عبارت عبور از آن استفاده نمود. این گزینه‌ها تنها با فایل‌های خروجی قالب PEM قابل استفاده هستند.
file
فایل ورودی برای خواندن کلید از آن، یا ورودی استاندارد در صورت عدم تعیین. اگر کلید رمزگذاری شده باشد، عبارت عبور درخواست خواهد شد.
der |
قالب ورودی.
خودداری از ارسال نسخه کدگذاری‌شده کلید به خروجی.
file
نام فایل خروجی برای نوشتن در آن، یا خروجی استاندارد در صورت عدم تعیین. اگر هرگونه گزینه رمزگذاری تنظیم شده باشد، عبارت عبور درخواست خواهد شد.
der |
قالب خروجی.
arg
مشخص می‌کند که پارامترهای منحنی بیضوی چگونه کدگذاری شوند. مقادیر ممکن عبارتند از: named_curve ، یعنی پارامترهای EC توسط یک OID مشخص می‌شوند؛ یا explicit ، که در آن پارامترهای EC به صراحت داده می‌شوند (برای تعریف ساختارهای پارامتر EC به RFC 3279 مراجعه کنید). مقدار پیش‌فرض named_curve است. نکته: گزینه جایگزین implicitlyCA همان‌طور که در RFC 3279 مشخص شده، در حال حاضر پیاده‌سازی نشده است.
چاپ پارامترهای منحنی بیضوی.
arg
منبع رمز عبور کلید.
arg
منبع رمز عبور فایل خروجی.
خواندن یک کلید عمومی به جای کلید خصوصی.
خروجی دادن یک کلید عمومی به جای کلید خصوصی. در صورتی که ورودی یک کلید عمومی باشد به طور خودکار فعال می‌شود.
چاپ کلید عمومی/خصوصی در قالب متن آشکار.

openssl ecparam
[-check] [-conv_form arg] [-genkey] [-in file] [-inform der | pem] [-list_curves] [-name arg] [-no_seed] [-noout] [-out file] [-outform der | pem] [-param_enc arg] [-text]

دستور ecparam برای مدیریت یا ایجاد فایل‌های پارامتر EC استفاده می‌شود. openssl قادر به تولید گروه‌های جدید نیست، بنابراین ecparam تنها می‌تواند پارامترهای EC را از منحنی‌های شناخته‌شده (نام‌گذاری‌شده) ایجاد کند.

گزینه‌ها به شرح زیر هستند:

اعتبارسنجی پارامترهای منحنی بیضوی.
arg
نحوه تبدیل نقاط روی منحنی بیضوی به رشته‌های اوکتت را مشخص می‌کند. مقادیر ممکن عبارتند از: compressed ، uncompressed (پیش‌فرض)، و hybrid. برای اطلاعات بیشتر درباره فرم‌های تبدیل نقطه، استاندارد X9.62 را ببینید.
تولید یک کلید خصوصی EC با استفاده از پارامترهای مشخص‌شده.
file
فایل ورودی برای خواندن از آن، یا ورودی استاندارد در صورت عدم تعیین.
der |
قالب ورودی.
چاپ فهرستی از تمام نام‌های پارامتر EC که در حال حاضر پیاده‌سازی شده‌اند و خروج.
arg
استفاده از پارامترهای EC با "نام کوتاه" مشخص‌شده.
دانه (seed) مورد استفاده برای تولید پارامتر را در ساختار ECParameters درج نمی‌کند (به RFC 3279 مراجعه کنید).
خودداری از ارسال نسخه کدگذاری‌شده پارامترها به خروجی.
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین.
der |
قالب خروجی.
arg
مشخص می‌کند که پارامترهای منحنی بیضوی چگونه کدگذاری شوند. مقادیر ممکن عبارتند از: named_curve ، یعنی پارامترهای EC توسط یک OID مشخص می‌شوند، یا explicit ، که در آن پارامترهای EC به صراحت داده می‌شوند (برای تعریف ساختارهای پارامتر EC به RFC 3279 مراجعه کنید). مقدار پیش‌فرض named_curve است. نکته: گزینه جایگزین implicitlyCA همان‌طور که در RFC 3279 مشخص شده، در حال حاضر پیاده‌سازی نشده است.
چاپ پارامترهای EC در قالب متن آشکار.

openssl enc
-ciphername [-AadePpv] [-base64] [-bufsize number] [-debug] [-in file] [-iter iterations] [-iv IV] [-K key] [-k password] [-kfile file] [-md digest] [-none] [-nopad] [-nosalt] [-out file] [-pass arg] [-pbkdf2] [-S salt] [-salt]

دستورات رمزگذاری متقارن امکان رمزگذاری یا رمزگشایی داده‌ها را با استفاده از انواع رمزگذارهای بلوکی و جریانی و بر مبنای کلیدهای مشتق‌شده از گذرواژه یا کلیدهای مشخص‌شده فراهم می‌کنند. کدگذاری یا کدگشایی Base64 نیز می‌تواند به صورت مستقل یا همراه با رمزگذاری یا رمزگشایی انجام شود. این برنامه می‌تواند به یکی از دو صورت openssl ciphername یا openssl enc -ciphername فراخوانی شود.

برخی از این رمزگذارها دارای کلیدهای طولانی نیستند و برخی دیگر در صورت عدم استفاده صحیح پیامدهای امنیتی دارند. تمام رمزگذارهای بلوکی به طور معمول از لایه‌گذاری PKCS#5 (معروف به لایه‌گذاری استاندارد بلوک) استفاده می‌کنند. اگر لایه‌گذاری غیرفعال شود، طول داده ورودی باید مضربی از طول بلوک رمزگذار باشد.

گزینه‌ها به شرح زیر هستند:

اگر گزینه -a تنظیم شده باشد، داده‌ها را در یک خط با Base64 پردازش می‌کند.
, -base64
پردازش داده‌ها با Base64. این بدان معناست که در صورت رمزگذاری، داده‌ها پس از رمزگذاری با Base64 کدگذاری می‌شوند. در صورت رمزگشایی، داده‌های ورودی پیش از رمزگشایی با Base64 کدگشایی می‌شوند.
number
تنظیم اندازه بافر برای ورودی/خروجی.
رمزگشایی داده‌های ورودی.
اشکال‌زدایی BIOهای مورد استفاده برای ورودی/خروجی.
رمزگذاری داده‌های ورودی. این حالت پیش‌فرض است.
file
فایل ورودی برای خواندن، یا ورودی استاندارد در صورت عدم تعیین.
iterations
استفاده از تابع اشتقاق کلید PBKDF2 با iterations تکرار (iteration).
IV
بردار اولیه واقعی IV (بردار مقداردهی اولیه یا Initialization Vector) مورد استفاده: این مقدار باید به عنوان رشته‌ای فقط شامل ارقام هگزادسیمال ارائه شود. هنگامی که تنها key با استفاده از گزینه -K مشخص شود، مقدار IV باید به طور صریح تعریف گردد. هنگامی که گذرواژه با استفاده از یکی از گزینه‌های دیگر مشخص شود، مقدار IV از این گذرواژه تولید می‌شود.
key
کلید واقعی key مورد استفاده: این مقدار باید به عنوان رشته‌ای فقط شامل ارقام هگزادسیمال ارائه شود. اگر تنها کلید مشخص شود، بردار IV نیز باید با استفاده از گزینه -iv مشخص گردد. هنگامی که هر دوی key و password مشخص شوند، کلید key داده‌شده با گزینه -K استفاده شده و IV تولیدشده از گذرواژه به کار گرفته می‌شود. تعیین همزمان هر دو پارامتر key و password چندان منطقی به نظر نمی‌رسد.
password
گذرواژه password برای اشتقاق کلید از آن. گزینه -pass جایگزین آن شده است.
file
خواندن گذرواژه برای اشتقاق کلید از سطر اول file. گزینه -pass جایگزین آن شده است.
digest
استفاده از خلاصه پیام digest برای ایجاد کلید از عبارت عبور. در حال حاضر مقدار پیش‌فرض sha256 است.
استفاده از رمزگذار NULL (بدون هیچ‌گونه رمزگذاری یا رمزگشایی ورودی).
غیرفعال کردن لایه‌گذاری استاندارد بلوک.
عدم استفاده از نمک (salt) در روال‌های اشتقاق کلید. از این گزینه هرگز نباید استفاده شود چرا که امکان انجام حملات فرهنگ‌لغتی (dictionary attacks) کارآمد روی گذرواژه و حمله به داده‌های رمزگذاری‌شده با رمزگذارهای جریانی را فراهم می‌سازد.
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین.
چاپ salt، key و IV مورد استفاده و سپس خروج فوری؛ هیچ رمزگذاری یا رمزگشایی انجام نمی‌دهد.
چاپ salt، key و IV مورد استفاده.
arg
منبع گذرواژه.
استفاده از تابع اشتقاق کلید PBKDF2 با مقدار پیش‌فرض ۱۰,۰۰۰ تکرار.
salt
نمک (salt) واقعی salt مورد استفاده: باید به عنوان رشته‌ای فقط شامل ارقام هگزادسیمال ارائه شود.
استفاده از نمک در روال‌های اشتقاق کلید (پیش‌فرض). هنگامی که نمک استفاده می‌شود، هشت بایت اول داده‌های رمزگذاری‌شده برای نمک رزرو می‌شوند: این مقدار هنگام رمزگذاری فایل به طور تصادفی تولید شده و هنگام رمزگشایی از فایل رمزگذاری‌شده خوانده می‌شود.
چاپ جزئیات بیشتر درباره پردازش.

openssl errstr errno ...

دستور errstr شماره خطا را به رشته متنی خطا تبدیل می‌کند و رشته‌ای خوانا برای انسان که نشان‌دهنده کد خطای errno است تولید می‌نماید. این رشته از طریق تابع ERR_error_string_n(3) به دست می‌آید و دارای قالب زیر است:

error:[error code]:[library name]:[function name]:[reason string]

بخش [error code] یک عدد هگزادسیمال ۸ رقمی است. سایر فیلدها شامل [library name ،] [function name] و [reason string] همگی متن ASCII هستند.

openssl gendsa
[-aes128 | -aes192 | -aes256 | -camellia128 | -camellia192 | -camellia256 | -des | -des3 | -idea] [-out file] [-passout arg] paramfile

دستور gendsa یک کلید خصوصی DSA را از روی یک فایل پارامتر DSA تولید می‌کند (که معمولاً توسط دستور openssl dsaparam ایجاد شده است). تولید کلید DSA اساساً چیزی بیش از تولید اعداد تصادفی نیست، بنابراین بسیار سریع‌تر از برای مثال تولید کلید RSA است.

گزینه‌ها به شرح زیر هستند:

| | | | | | | |
رمزگذاری کلید خصوصی به ترتیب با رمزگذارهای AES، CAMELLIA، DES، Triple DES یا IDEA پیش از ارسال آن به خروجی. عبارت عبور درخواست خواهد شد. اگر هیچ‌یک از این گزینه‌ها مشخص نشوند، از هیچ رمزگذاری استفاده نمی‌شود.
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین.
arg
منبع گذرواژه فایل خروجی.
paramfile
مشخص کردن فایل پارامتر DSA مورد استفاده. پارامترهای موجود در این فایل اندازه کلید خصوصی را تعیین می‌کنند.

openssl genpkey
[-algorithm alg] [cipher] [-genparam] [-out file] [-outform der | pem] [-paramfile file] [-pass arg] [-pkeyopt opt:value] [-text]

دستور genpkey کلیدهای خصوصی تولید می‌کند. استفاده از این برنامه نسبت به ابزارهای اختصاصی هر الگوریتم ترجیح داده می‌شود زیرا می‌توان از گزینه‌های اضافی الگوریتم‌ها استفاده کرد.

گزینه‌ها به شرح زیر هستند:

alg
الگوریتم کلید عمومی مورد استفاده، مانند RSA، DSA یا DH. این گزینه باید پیش از هر گزینه -pkeyopt قرار گیرد. گزینه‌های -paramfile و -algorithm ناسازگار با یکدیگر (مانعة‌الجمع) هستند.
cipher
رمزگذاری کلید خصوصی با رمزگذار ارائه‌شده. هر نام الگوریتمی که توسط EVP_get_cipherbyname(3) پذیرفته شود، قابل قبول است.
تولید یک مجموعه پارامتر به جای کلید خصوصی. این گزینه باید پیش از گزینه‌های -algorithm -، -paramfile یا -pkeyopt قرار گیرد.
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین.
der |
قالب خروجی.
file
برخی الگوریتم‌های کلید عمومی یک کلید خصوصی را بر اساس مجموعه‌ای از پارامترها تولید می‌کنند که می‌توان با این گزینه ارائه کرد. در صورت استفاده از این گزینه، الگوریتم کلید عمومی مورد استفاده توسط پارامترها تعیین می‌شود. این گزینه باید پیش از گزینه‌های -pkeyopt قرار گیرد. گزینه‌های -paramfile و -algorithm مانعة‌الجمع هستند.
arg
منبع گذرواژه فایل خروجی.
opt:value
تنظیم گزینه الگوریتم کلید عمومی opt بر روی value ، به صورت زیر:
rsa_keygen_bits:numbits
(RSA) تعداد بیت‌ها در کلید تولیدشده. پیش‌فرض ۲۰۴۸ است.
rsa_keygen_pubexp:value
(RSA) مقدار توان عمومی RSA. می‌تواند یک عدد ده‌دهی بزرگ یا مقدار هگزادسیمال با پیشوند 0x باشد. پیش‌فرض ۶۵۵۳۷ است.
dsa_paramgen_bits:numbits
(DSA) تعداد بیت‌ها در پارامترهای تولیدشده. پیش‌فرض ۱۰۲۴ است.
dh_paramgen_prime_len:numbits
(DH) تعداد بیت‌ها در پارامتر اول p.
dh_paramgen_generator:value
(DH) مقدار مورد استفاده برای مولد g.
ec_paramgen_curve:curve
(EC) منحنی بیضوی مورد استفاده.
چاپ کلید خصوصی/عمومی در قالب متن آشکار.

openssl genrsa
[-3 | -f4] [-aes128 | -aes192 | -aes256 | -camellia128 | -camellia192 | -camellia256 | -des | -des3 | -idea] [-out file] [-passout arg] [numbits]

دستور genrsa یک کلید خصوصی RSA تولید می‌کند، که اساساً شامل تولید دو عدد اول است. هنگام تولید کلید، نمادهای مختلفی برای نشان دادن روند پیشرفت تولید در خروجی نمایش داده می‌شوند. نماد ‘.’ نشان‌دهنده هر عددی است که آزمون غربال اولیه را پشت سر گذاشته است؛ نماد ‘+’ بدین معناست که یک عدد یک دور از آزمون اول بودن میلر-رابین (Miller-Rabin) را گذرانده است؛ نماد ‘*’ بدین معناست که عدد در آزمون اول بودن مردود شده و باید مجدداً از نو تولید شود. یک خط جدید بدین معناست که عدد تمام آزمون‌های اول بودن را پشت سر گذاشته است (تعداد واقعی آزمون‌ها به اندازه کلید بستگی دارد).

گزینه‌ها به شرح زیر هستند:

|
توان عمومی مورد استفاده، ۳ یا ۶۵۵۳۷. حالت پیش‌فرض ۶۵۵۳۷ است.
| | | | | | | |
رمزگذاری کلید خصوصی به ترتیب با الگوریتم‌های AES، CAMELLIA، DES، Triple DES یا IDEA پیش از ارسال آن به خروجی. اگر هیچ‌یک از این گزینه‌ها مشخص نشوند، رمزگذاری انجام نمی‌شود. اگر از رمزگذاری استفاده شود، عبارت عبور درخواست می‌شود مگر اینکه از طریق گزینه -passout ارائه شده باشد.
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین.
arg
منبع گذرواژه فایل خروجی.
numbits
اندازه کلید خصوصی برای تولید به بیت. این گزینه باید آخرین گزینه مشخص‌شده باشد. پیش‌فرض ۲۰۴۸ است.

openssl ocsp
[-CA file] [-CAfile file] [-CApath directory] [-cert file] [-dgst alg] [-header name value] [-host hostname:port] [-ignore_err] [-index indexfile] [-issuer file] [-ndays days] [-nmin minutes] [-no_cert_checks] [-no_cert_verify] [-no_certs] [-no_chain] [-no_explicit] [-no_intern] [-no_nonce] [-no_signature_verify] [-nonce] [-noverify] [-nrequest number] [-out file] [-path path] [-port portnum] [-req_text] [-reqin file] [-reqout file] [-resp_key_id] [-resp_no_certs] [-resp_text] [-respin file] [-respout file] [-rkey file] [-rother file] [-rsigner file] [-serial num] [-sign_other file] [-signer file] [-signkey file] [-status_age age] [-text] [-timeout seconds] [-trust_other] [-url responder_url] [-VAfile file] [-validity_period nsec] [-verify_other file]

پروتکل وضعیت برخط گواهی یا Online Certificate Status Protocol (OCSP) برنامه‌ها را قادر می‌سازد وضعیت (ابطال) یک گواهی مشخص را تعیین کنند (RFC 2560).

دستور ocsp بسیاری از وظایف رایج OCSP را انجام می‌دهد. از این ابزار می‌توان برای چاپ درخواست‌ها و پاسخ‌ها، ایجاد درخواست‌ها و ارسال پرس‌وجو به یک پاسخ‌دهنده OCSP، و همچنین ایفای نقش یک سرور کوچک OCSP استفاده کرد.

گزینه‌ها به شرح زیر هستند:

file, -CApath directory
فایل یا مسیری حاوی گواهی‌های معتمد CA، مورد استفاده برای اعتبارسنجی امضای موجود در پاسخ OCSP.
file
افزودن گواهی file به درخواست. گواهی صادرکننده از گزینه پیشین -issuer برداشته می‌شود، یا در صورت عدم تعیین گواهی صادرکننده خطایی رخ می‌دهد.
-dgst alg
استفاده از الگوریتم خلاصه پیام alg برای شناسایی گواهی در درخواست OCSP. به طور پیش‌فرض از SHA1 استفاده می‌شود.
hostname:port, -path path
ارسال درخواست OCSP به hostname روی پورت port. گزینه -path نام مسیر HTTP مورد استفاده را مشخص می‌کند، که پیش‌فرض آن / است.
افزودن هدر با مقدار مشخص‌شده به درخواست OCSP ارسالی به پاسخ‌دهنده. این گزینه می‌تواند تکرار شود.
file
گواهی صادرکننده جاری در قالب PEM. می‌تواند چندین بار استفاده شود و باید پیش از هر گزینه -cert قرار گیرد.
از انجام هرگونه بررسی اضافی روی گواهی امضاکننده پاسخ OCSP خودداری می‌کند. بدین معنا که بررسی نمی‌کند آیا گواهی امضاکننده مجاز به ارائه اطلاعات وضعیت لازم است یا خیر؛ در نتیجه این گزینه تنها باید برای اهداف آزمایشی استفاده شود.
گواهی امضاکننده پاسخ OCSP را اصلاً اعتبارسنجی نمی‌کند. از آنجا که این گزینه اجازه می‌دهد پاسخ OCSP توسط هر گواهی‌ای امضا شده باشد، تنها باید برای اهداف آزمایشی استفاده شود.
هیچ گواهی‌ای را در درخواست امضاشده درج نمی‌کند.
از گواهی‌های موجود در پاسخ به عنوان گواهی‌های CA غیرمعتمد اضافی استفاده نمی‌کند.
اعتماد صریح برای امضای OCSP را در گواهی ریشه CA بررسی نمی‌کند.
هنگام جستجو برای گواهی امضاکننده، گواهی‌های موجود در پاسخ OCSP را نادیده می‌گیرد. گواهی امضاکننده باید با یکی از گزینه‌های -verify_other یا -VAfile مشخص شود.
امضای موجود در پاسخ OCSP را بررسی نمی‌کند. از آنجا که این گزینه امضاهای نامعتبر را در پاسخ‌های OCSP نادیده می‌گیرد، به طور معمول تنها برای اهداف آزمایشی استفاده می‌شود.
, -no_nonce
افزودن افزونه نانس (nonce) به یک درخواست OCSP، یا غیرفعال کردن افزودن نانس به OCSP. به طور معمول، اگر یک درخواست OCSP با استفاده از گزینه -respin وارد شود، هیچ نانسی اضافه نمی‌شود؛ استفاده از گزینه -nonce افزودن نانس را اجباری می‌کند. اگر یک درخواست OCSP در حال ایجاد باشد (با استفاده از گزینه‌های -cert و -serial -)، نانس به طور خودکار اضافه می‌شود؛ مشخص کردن -no_nonce این رفتار را لغو می‌کند.
تلاشی برای اعتبارسنجی امضای پاسخ OCSP یا مقادیر نانس انجام نمی‌دهد. این گزینه معمولاً تنها برای اشکال‌زدایی استفاده می‌شود زیرا تمام اعتبارسنجی‌های گواهی پاسخ‌دهنده را غیرفعال می‌کند.
file
مشخص کردن فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین.
, -resp_text, -text
به ترتیب چاپ شکل متنی درخواست OCSP، پاسخ OCSP، یا هر دو.
file, -respin file
خواندن یک فایل درخواست یا پاسخ OCSP از file. اگر ایجاد درخواست یا پاسخ OCSP توسط سایر گزینه‌ها لحاظ شده باشد (برای نمونه با گزینه‌های -serial -، -cert و -host -)، این گزینه‌ها نادیده گرفته می‌شوند.
file, -respout file
نوشتن درخواست یا پاسخ گواهی کدگذاری‌شده با DER در file.
num
مشابه گزینه -cert است با این تفاوت که گواهی با شماره سریال num به درخواست اضافه می‌شود. شماره سریال به عنوان یک عدد صحیح ده‌دهی تفسیر می‌شود مگر اینکه با ‘0x’ آغاز شود. اعداد صحیح منفی را نیز می‌توان با قرار دادن علامت منفی پیش از مقدار مشخص کرد.
file
گواهی‌های اضافی برای گنجاندن در درخواست امضاشده.
file, -signkey file
امضای درخواست OCSP با استفاده از گواهی مشخص‌شده در گزینه -signer و کلید خصوصی مشخص‌شده توسط گزینه -signkey. اگر گزینه -signkey وجود نداشته باشد، کلید خصوصی از همان فایل گواهی خوانده می‌شود. اگر هیچ‌یک از این گزینه‌ها مشخص نشوند، درخواست OCSP امضا نمی‌شود.
seconds
مهلت زمانی اتصال (timeout) به پاسخ‌دهنده OCSP به ثانیه.
گواهی‌های مشخص‌شده توسط گزینه -verify_other باید به صراحت معتمد شمرده شوند و هیچ بررسی اضافی روی آن‌ها انجام نخواهد شد. این گزینه زمانی مفید است که زنجیره کامل گواهی پاسخ‌دهنده در دسترس نیست یا اعتماد به یک CA ریشه مناسب نباشد.
responder_url
مشخص کردن نشانی URL پاسخ‌دهنده. هر دو نشانی اینترنتی HTTP و HTTPS (SSL/TLS) را می‌توان تعیین کرد.
file
فایلی حاوی گواهی‌های پاسخ‌دهنده به صراحت معتمد. معادل گزینه‌های -verify_other و -trust_other.
nsec, -status_age age
محدوده زمانی (به ثانیه) که در پاسخ OCSP تحمل می‌شود. هر پاسخ وضعیت گواهی شامل زمان notBefore و زمان اختیاری notAfter است. زمان جاری باید میان این دو مقدار قرار گیرد، اما فاصله میان این دو زمان ممکن است تنها چند ثانیه باشد. در عمل ممکن است ساعت‌های پاسخ‌دهنده OCSP و کلاینت‌ها دقیقاً همگام نباشند و بنابراین چنین بررسی با شکست مواجه شود. برای جلوگیری از این امر می‌توان از گزینه -validity_period برای تعیین محدوده خطای قابل قبول به ثانیه استفاده کرد که مقدار پیش‌فرض آن ۵ دقیقه است.

اگر زمان notAfter در یک پاسخ حذف شده باشد، بدین معناست که اطلاعات وضعیت جدید بلافاصله در دسترس است. در این حالت، قدمت فیلد notBefore بررسی می‌شود تا اطمینان حاصل شود که قدیمی‌تر از age ثانیه نیست. به طور پیش‌فرض، این بررسی اضافی انجام نمی‌شود.

file
فایلی حاوی گواهی‌های اضافی برای جستجو هنگام تلاش برای یافتن گواهی امضای پاسخ OCSP. برخی پاسخ‌دهنده‌ها گواهی واقعی امضاکننده را از پاسخ حذف می‌کنند، بنابراین می‌توان از این گزینه برای ارائه گواهی لازم استفاده کرد.

گزینه‌های سرور OCSP به شرح زیر هستند:

file
گواهی CA متناظر با اطلاعات ابطال در indexfile.
نادیده گرفتن پاسخ نامعتبر.
indexfile
فایل indexfile یک فایل نمایه متنی در قالب ca حاوی اطلاعات ابطال گواهی است.

اگر این گزینه مشخص شود، ocsp در حالت پاسخ‌دهنده (responder) عمل می‌کند، در غیر این صورت در حالت کلاینت است. درخواست‌هایی که پاسخ‌دهنده پردازش می‌کند را می‌توان در خط فرمان مشخص کرد (با استفاده از گزینه‌های -issuer و -serial -)، در یک فایل ارائه داد (با استفاده از گزینه -respin -)، یا از طریق کلاینت‌های خارجی OCSP دریافت کرد (اگر port یا url مشخص شده باشد).

اگر این گزینه درج شده باشد، گزینه‌های -CA و -rsigner نیز باید حضور داشته باشند.

minutes, -ndays days
تعداد minutes دقیقه یا days روز تا زمانی که اطلاعات ابطال تازه در دسترس قرار گیرد: در فیلد nextUpdate استفاده می‌شود. اگر هیچ‌یک از این دو گزینه مشخص نشوند، فیلد nextUpdate حذف می‌شود، به این معنی که اطلاعات ابطال تازه بلافاصله در دسترس است.
number
خروج پس از دریافت number درخواست (حالت پیش‌فرض نامحدود است).
portnum
پورتی که باید برای دریافت درخواست‌های OCSP روی آن شنود شود. همچنین می‌توان با گزینه -url آن را مشخص کرد.
شناسایی گواهی امضاکننده با استفاده از شناسه کلید (key ID)؛ پیش‌فرض استفاده از نام موضوع است.
هیچ گواهی‌ای را در پاسخ OCSP درج نمی‌کند.
file
کلید خصوصی برای امضای پاسخ‌های OCSP؛ در صورت عدم وجود، از فایل مشخص‌شده در گزینه -rsigner استفاده می‌شود.
file
گواهی‌های اضافی برای درج در پاسخ OCSP.
file
گواهی برای امضای پاسخ‌های OCSP.

در ابتدا، گواهی پاسخ‌دهنده OCSP مکان‌یابی شده و امضای روی درخواست OCSP با استفاده از کلید عمومی گواهی پاسخ‌دهنده بررسی می‌شود. سپس اعتبارسنجی عادی گواهی روی گواهی پاسخ‌دهنده OCSP انجام شده و زنجیره گواهی در این فرآیند ساخته می‌شود. محل گواهی‌های معتمد استفاده‌شده برای ساخت زنجیره را می‌توان با گزینه‌های -CAfile و -CApath مشخص کرد، یا اینکه در دایرکتوری استاندارد گواهی‌های openssl جستجو خواهند شد.

اگر اعتبارسنجی اولیه شکست بخورد، فرآیند اعتبارسنجی OCSP با یک خطا متوقف می‌شود. در غیر این صورت، گواهی CA صادرکننده در درخواست با گواهی پاسخ‌دهنده OCSP مقایسه می‌شود: در صورت تطابق، اعتبارسنجی OCSP موفقیت‌آمیز است.

در غیر این صورت، CA مربوط به گواهی پاسخ‌دهنده OCSP در برابر گواهی CA صادرکننده در درخواست بررسی می‌شود. اگر تطابق وجود داشته باشد و کاربرد کلید توسعه‌یافته OCSPSigning در گواهی پاسخ‌دهنده OCSP موجود باشد، اعتبارسنجی OCSP موفق خواهد بود.

در غیر این صورت، CA ریشه مربوط به CA پاسخ‌دهنده OCSP بررسی می‌شود تا مشخص شود آیا برای امضای OCSP معتمد است یا خیر. اگر باشد، اعتبارسنجی OCSP موفقیت‌آمیز است.

اگر هیچ‌یک از این بررسی‌ها موفقیت‌آمیز نباشد، اعتبارسنجی OCSP با شکست مواجه می‌شود. معنای عملی این روند آن است که اگر گواهی پاسخ‌دهنده OCSP مستقیماً توسط همان CA که اطلاعات ابطال را صادر می‌کند مجاز شده باشد (و به درستی پیکربندی شده باشد)، اعتبارسنجی موفق خواهد شد.

اگر پاسخ‌دهنده OCSP یک پاسخ‌دهنده سراسری (global responder) باشد، که می‌تواند جزئیات مربوط به چندین CA را ارائه دهد و زنجیره گواهی جداگانه خود را دارد، آن‌گاه CA ریشه آن می‌تواند برای امضای OCSP مورد اعتماد قرار گیرد. همچنین خود گواهی پاسخ‌دهنده را می‌توان با استفاده از گزینه -VAfile به طور صریح معتمد اعلام کرد.

openssl passwd
[-1 | -apr1 | -crypt] [-in file] [-noverify] [-quiet] [-reverse] [-salt string] [-stdin] [-table] [password]

دستور passwd مقدار هش یک گذرواژه را محاسبه می‌کند.

گزینه‌ها به شرح زیر هستند:

استفاده از الگوریتم گذرواژه BSD مبتنی بر MD5 "1".
استفاده از الگوریتم "apr1" (گونه آپاچی از الگوریتم BSD).
استفاده از الگوریتم "crypt" (پیش‌فرض).
file
خواندن گذرواژه‌ها از file.
هنگام خواندن گذرواژه از ترمینال، تایید مجدد را درخواست نمی‌کند.
هنگام کوتاه شدن گذرواژه‌های ارائه‌شده در خط فرمان، هشداری چاپ نمی‌کند.
جابجا کردن ستون‌های جدول. این گزینه تنها همراه با گزینه -table معنا دارد.
string
استفاده از نمک (salt) مشخص‌شده توسط string. هنگام خواندن گذرواژه از ترمینال، این گزینه به طور ضمنی -noverify را اعمال می‌کند.
خواندن گذرواژه‌ها از ورودی استاندارد.
در فهرست خروجی، گذرواژه متن آشکار و یک نویسه TAB را پیش از هر هش گذرواژه درج می‌کند.

openssl pkcs7
[-in file] [-inform der | pem] [-noout] [-out file] [-outform der | pem] [-print] [-print_certs] [-text]

دستور pkcs7 فایل‌های PKCS#7 را در قالب DER یا PEM پردازش می‌کند. روال‌های PKCS#7 تنها نسخه ۱.۵ از PKCS#7 را طبق استاندارد RFC 2315 درک می‌کنند.

گزینه‌ها به شرح زیر هستند:

file
فایل ورودی برای خواندن، یا ورودی استاندارد در صورت عدم تعیین.
der |
قالب ورودی.
خودداری از ارسال نسخه کدگذاری‌شده ساختار PKCS#7 به خروجی (یا گواهی‌ها در صورتی که -print_certs تنظیم شده باشد).
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین.
der |
قالب خروجی.
چاپ نمایش ASN.1 ساختار PKCS#7.
چاپ تمام گواهی‌ها یا CRLهای موجود در فایل، به همراه نام موضوع و صادرکننده آن‌ها در قالب تک‌خطی.
چاپ جزئیات کامل گواهی به جای نمایش صرف نام‌های موضوع و صادرکننده.

openssl pkcs8
[-in file] [-inform der | pem] [-nocrypt] [-noiter] [-out file] [-outform der | pem] [-passin arg] [-passout arg] [-topk8] [-v1 alg] [-v2 alg]

دستور pkcs8 کلیدهای خصوصی (هم رمزگذاری‌شده و هم رمزگذاری‌نشده) را در قالب PKCS#8 با انواع الگوریتم‌های PKCS#5 (نسخه‌های ۱.۵ و ۲.۰) و PKCS#12 پردازش می‌کند.

گزینه‌ها به شرح زیر هستند:

file
فایل ورودی برای خواندن، یا ورودی استاندارد در صورت عدم تعیین. اگر کلید رمزگذاری شده باشد، عبارت عبور درخواست خواهد شد.
der |
قالب ورودی.
تولید یک ساختار PrivateKeyInfo بدون رمزگذاری. این گزینه کلیدهای خصوصی را اصلاً رمزگذاری نمی‌کند و تنها در مواقع کاملاً ضروری باید استفاده شود.
استفاده از ۱ بار تکرار (iteration). برای توضیحات کامل این گزینه، بخش PKCS12 در ادامه را ببینید.
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین. اگر گزینه‌های رمزگذاری تنظیم شده باشند، عبارت عبور درخواست خواهد شد.
der |
قالب خروجی.
arg
منبع گذرواژه کلید.
arg
منبع گذرواژه فایل خروجی.
خواندن کلید خصوصی در قالب سنتی و نوشتن کلید در قالب PKCS#8.
alg
مشخص کردن الگوریتم PKCS#5 v1.5 یا PKCS#12 مورد استفاده.
PBE-MD5-DES
الگوریتم DES با طول ۵۶ بیت.
PBE-SHA1-RC2-64 | PBE-MD5-RC2-64 | PBE-SHA1-DES
الگوریتم RC2 با طول ۶۴ بیت یا DES با طول ۵۶ بیت.
PBE-SHA1-RC4-128 | PBE-SHA1-RC4-40 | PBE-SHA1-3DES
 
PBE-SHA1-2DES | PBE-SHA1-RC2-128 | PBE-SHA1-RC2-40
الگوریتم‌های رمزگذاری مبتنی بر گذرواژه PKCS#12، که امکان استفاده از الگوریتم‌های رمزگذاری قوی مانند Triple DES یا RC2 با طول ۱۲۸ بیت را فراهم می‌کنند.
alg
استفاده از الگوریتم‌های PKCS#5 v2.0. این الگوریتم‌ها رمزگذارهای بلوکی مورد استفاده در حالت CBC هستند. پیش‌فرض AES-256-CBC است. به استثنای AES، سایر گزینه‌های موجود در RFC 8018 منسوخ در نظر گرفته می‌شوند. آن‌ها را می‌توان با des، des3 و rc2 فعال کرد (rc5 دیگر پشتیبانی نمی‌شود).

openssl pkcs12
[-aes128 | -aes192 | -aes256 | -camellia128 | -camellia192 | -camellia256 | -des | -des3 | -idea] [-cacerts] [-CAfile file] [-caname name] [-CApath directory] [-certfile file] [-certpbe alg] [-chain] [-clcerts] [-descert] [-export] [-in file] [-info] [-inkey file] [-keyex] [-keypbe alg] [-keysig] [-macalg alg] [-maciter] [-name name] [-nocerts] [-nodes] [-noiter] [-nokeys] [-nomac] [-nomaciter] [-nomacver] [-noout] [-out file] [-passin arg] [-passout arg] [-password arg] [-twopass]

دستور pkcs12 امکان ایجاد و تجزیه فایل‌های PKCS#12 (که گاهی فایل‌های PFX نامیده می‌شوند) را فراهم می‌کند. به طور پیش‌فرض، فایل PKCS#12 تجزیه می‌شود؛ یک فایل PKCS#12 را می‌توان با استفاده از گزینه -export ایجاد کرد.

گزینه‌های مربوط به تجزیه فایل PKCS12 به شرح زیر هستند:

| | | | | | | |
رمزگذاری کلیدهای خصوصی به ترتیب با رمزگذارهای AES، CAMELLIA، DES، Triple DES یا IDEA. حالت پیش‌فرض Triple DES است.
تنها گواهی‌های CA را به خروجی می‌فرستد (نه گواهی‌های کلاینت را).
تنها گواهی‌های کلاینت را به خروجی می‌فرستد (نه گواهی‌های CA را).
file
فایل ورودی برای خواندن، یا ورودی استاندارد در صورت عدم تعیین.
چاپ اطلاعات اضافی درباره ساختار فایل PKCS#12، الگوریتم‌های استفاده‌شده و تعداد تکرارها.
از خروجی دادن گواهی‌ها خودداری می‌کند.
کلیدهای خصوصی را رمزگذاری نمی‌کند.
از خروجی دادن کلیدهای خصوصی خودداری می‌کند.
تلاشی برای اعتبارسنجی MAC یکپارچگی پیش از خواندن فایل انجام نمی‌دهد.
از خروجی دادن کلیدها و گواهی‌ها در فایل خروجی خودداری می‌کند.
file
The output file to write to, or standard output if not specified.
arg
منبع گذرواژه کلید.
arg
منبع گذرواژه فایل خروجی.
درخواست گذرواژه‌های جداگانه برای یکپارچگی و رمزگذاری: اغلب نرم‌افزارها همواره فرض می‌کنند که این دو یکسان هستند، بنابراین این گزینه ممکن است چنین فایل‌های PKCS#12 را غیرقابل خواندن کند.

گزینه‌های مربوط به ایجاد فایل PKCS12 به شرح زیر هستند:

file
مخزن CA به صورت یک فایل.
directory
مخزن CA به صورت یک دایرکتوری. دایرکتوری باید یک دایرکتوری استاندارد گواهی باشد: بدین معنا که هشی از هر نام موضوع (با استفاده از x509 -hash) باید به هر گواهی پیوند داده شده باشد.
name
مشخص کردن "نام دوستانه (friendly name)" برای سایر گواهی‌ها. می‌تواند چندین بار برای تعیین نام تمام گواهی‌ها به ترتیب ظهورشان استفاده شود.
file
فایلی برای خواندن گواهی‌های اضافی از آن.
alg, -keypbe alg
مشخص کردن الگوریتم مورد استفاده برای رمزگذاری کلید خصوصی و گواهی‌های انتخابی. از هر نام الگوریتم PKCS#5 v1.5 یا PKCS#12 PBE می‌توان استفاده کرد. اگر نام یک رمزگذار (همانند خروجی دستور list-cipher-algorithms) مشخص شود، همراه با PKCS#5 v2.0 استفاده خواهد شد. به دلایل سازگاری و تعامل‌پذیری، توصیه می‌شود تنها از الگوریتم‌های PKCS#12 استفاده شود.
گنجاندن کل زنجیره گواهیِ مربوط به گواهی کاربر. مخزن استاندارد CA برای این جستجو استفاده می‌شود. اگر جستجو شکست بخورد، به عنوان یک خطای مهلک در نظر گرفته می‌شود.
رمزگذاری گواهی با استفاده از Triple DES؛ این کار ممکن است فایل PKCS#12 را برای برخی نرم‌افزارهای دارای "درجه صادراتی (export grade)" غیرقابل خواندن سازد. به طور پیش‌فرض، کلید خصوصی با Triple DES و گواهی با RC2 چهل بیتی رمزگذاری می‌شوند.
ایجاد یک فایل PKCS#12 (به جای تجزیه کردن آن).
file
فایل ورودی برای خواندن، یا ورودی استاندارد در صورت عدم تعیین. The order doesn't matter but one private key and its corresponding certificate should be present. If additional certificates are present, they will also be included in the PKCS#12 file.
file
فایل برای خواندن کلید خصوصی از آن. در صورت عدم وجود، کلید خصوصی باید در فایل ورودی موجود باشد.
|
مشخص می‌کند که آیا کلید خصوصی برای تبادل کلید استفاده می‌شود یا صرفاً امضا. به طور معمول نرم‌افزارهای "درجه صادراتی" تنها اجازه استفاده از کلیدهای ۵۱۲ بیتی RSA را برای مقاصد رمزگذاری می‌دهند، اما برای امضا طول دلخواه را می‌پذیرند. گزینه -keysig کلید را صرفاً برای امضا نشانه‌گذاری می‌کند. کلیدهای صرفاً امضا می‌توانند برای امضای S/MIME، Authenticode (امضای کنترل‌های اکتیوایکس) و احراز اصالت کلاینت SSL استفاده شوند.
alg
تعیین الگوریتم خلاصه پیام برای MAC. پیش‌فرض SHA1 است.
تنها برای سازگاری گنجانده شده است: قبلاً برای استفاده از تعداد تکرارهای MAC لازم بود، اما اکنون به طور پیش‌فرض استفاده می‌شوند.
name
مشخص کردن "نام دوستانه" برای گواهی و کلید خصوصی. این نام معمولاً در جعبه‌های فهرست توسط نرم‌افزاری که فایل را ایمپورت می‌کند نمایش داده می‌شود.
تلاشی برای تامین یکپارچگی MAC انجام نمی‌دهد.
, -noiter
بر تعداد تکرارها در الگوریتم‌های MAC و کلید اثر می‌گذارد.

برای جلوگیری از حملات با استفاده از فرهنگ‌لغت‌های بزرگِ گذرواژه‌های رایج، الگوریتمی که کلیدها را از گذرواژه‌ها استخراج می‌کند می‌تواند دارای شمارش تکرار باشد: این امر باعث تکرار بخش خاصی از الگوریتم و کندتر شدن آن می‌شود. کد MAC برای بررسی یکپارچگی فایل استفاده می‌شود اما از آنجا که معمولاً گذرواژه‌ای یکسان با کلیدها و گواهی‌ها دارد، می‌تواند مورد حمله قرار گیرد. به طور پیش‌فرض، تعداد تکرارهای هر دوی MAC و رمزگذاری بر روی ۲۰۴۸ تنظیم شده است؛ با استفاده از این گزینه‌ها می‌توان تعداد تکرارهای MAC و رمزگذاری را بر روی ۱ تنظیم کرد. از آنجا که این کار امنیت فایل را کاهش می‌دهد، نباید از این گزینه‌ها استفاده کنید مگر اینکه واقعاً مجبور باشید. بیشتر نرم‌افزارها از هر دو شمارش تکرار MAC و کلید پشتیبانی می‌کنند.

file
The output file to write to, or standard output if not specified.
arg
منبع گذرواژه کلید.
arg
منبع گذرواژه فایل خروجی.
arg
همراه با -export -، گزینه -password معادل -passout است. در غیر این صورت، -password معادل -passin خواهد بود.

openssl pkey
[cipher] [-in file] [-inform der | pem] [-noout] [-out file] [-outform der | pem] [-passin arg] [-passout arg] [-pubin] [-pubout] [-text] [-text_pub]

دستور pkey کلیدهای عمومی یا خصوصی را پردازش می‌کند. این کلیدها را می‌توان میان قالب‌های مختلف تبدیل کرد و مولفه‌های آن‌ها را چاپ نمود.

گزینه‌ها به شرح زیر هستند:

cipher
رمزگذاری کلید خصوصی با رمزگذار مشخص‌شده. هر نام الگوریتمی که توسط EVP_get_cipherbyname(3) پذیرفته شود، قابل قبول است، مانند des3.
file
فایل ورودی برای خواندن، یا ورودی استاندارد در صورت عدم تعیین. اگر کلید رمزگذاری شده باشد، عبارت عبور درخواست خواهد شد.
der |
قالب ورودی.
Do not output the encoded version of the key.
file
The output file to write to, or standard output if not specified. اگر گزینه‌های رمزگذاری تنظیم شده باشند، عبارت عبور درخواست خواهد شد.
der |
قالب خروجی.
arg
منبع گذرواژه کلید.
arg
منبع گذرواژه فایل خروجی.
Read in a public key, not a private key.
Output a public key, not a private key. Automatically set if the input is a public key.
Print the public/private key in plain text.
تنها چاپ مولفه‌های کلید عمومی، حتی اگر یک کلید خصوصی در حال پردازش باشد.

openssl pkeyparam [-in file] [-noout] [-out file] [-text]

دستور pkeyparam پارامترهای کلیدهای عمومی یا خصوصی را پردازش می‌کند. نوع کلید توسط هدرهای PEM تعیین می‌شود.

گزینه‌ها به شرح زیر هستند:

file
فایل ورودی برای خواندن، یا ورودی استاندارد در صورت عدم تعیین.
Do not output the encoded version of the parameters.
file
The output file to write to, or standard output if not specified.
چاپ پارامترها در قالب متن آشکار.

openssl pkeyutl
[-asn1parse] [-certin] [-decrypt] [-derive] [-encrypt] [-hexdump] [-in file] [-inkey file] [-keyform der | pem] [-out file] [-passin arg] [-peerform der | pem] [-peerkey file] [-pkeyopt opt:value] [-pubin] [-rev] [-sigfile file] [-sign] [-verify] [-verifyrecover]

دستور pkeyutl می‌تواند برای انجام عملیات کلید عمومی با استفاده از هر الگوریتم پشتیبانی‌شده‌ای استفاده شود.

گزینه‌ها به شرح زیر هستند:

-asn1parse
تجزیه ASN.1 روی داده‌های خروجی. این گزینه در ترکیب با گزینه -verifyrecover هنگامی که یک ساختار ASN.1 امضا شده است کاربرد دارد.
ورودی یک گواهی حاوی کلید عمومی است.
رمزگشایی داده‌های ورودی با استفاده از کلید خصوصی.
اشتقاق یک راز مشترک با استفاده از کلید همتا (peer key).
رمزگذاری داده‌های ورودی با استفاده از کلید عمومی.
تخلیه هگز (hex dump) داده‌های خروجی.
file
فایل ورودی برای خواندن، یا ورودی استاندارد در صورت عدم تعیین.
file
فایل کلید ورودی. به طور پیش‌فرض باید یک کلید خصوصی باشد.
der |
قالب کلید.
file
The output file to write to, or standard output if not specified.
arg
منبع گذرواژه کلید.
der |
قالب کلید همتا.
file
فایل کلید همتا، مورد استفاده در عملیات اشتقاق کلید (تفاهم کلید).
opt:value
تنظیم گزینه الگوریتم کلید عمومی opt بر روی value. مگر در مواردی که خلاف آن ذکر شده باشد، تمام الگوریتم‌ها از قالب digest:alg پشتیبانی می‌کنند که خلاصه پیام مورد استفاده را برای عملیات sign، verify و verifyrecover مشخص می‌کند. مقدار alg باید نشان‌دهنده نام یک خلاصه پیام باشد همان‌طور که در تابع EVP_get_digestbyname(3) استفاده می‌شود.

الگوریتم RSA به طور کلی از عملیات‌های encrypt، decrypt، sign، verify و verifyrecover پشتیبانی می‌کند. با این حال برخی حالت‌های لایه‌گذاری تنها از بعضی از این عملیات‌ها پشتیبانی می‌کنند.

rsa_padding_mode:mode
این گزینه حالت لایه‌گذاری RSA را تنظیم می‌کند. مقادیر قابل قبول برای mode عبارتند از: pkcs1 برای لایه‌گذاری PKCS#1؛ none برای بدون لایه‌گذاری؛ oaep برای حالت OAEP؛ x931 برای حالت X9.31؛ و pss برای PSS.

در لایه‌گذاری PKCS#1 اگر خلاصه پیام تنظیم نشده باشد، داده‌های ارائه‌شده به جای استفاده از ساختار DigestInfo به طور مستقیم امضا یا اعتبارسنجی می‌شوند. اگر خلاصه پیام تنظیم شده باشد، از ساختار DigestInfo استفاده می‌شود و طول آن باید با نوع خلاصه پیام مطابقت داشته باشد. برای حالت oeap تنها رمزگذاری و رمزگشایی پشتیبانی می‌شود. برای x931 اگر نوع خلاصه پیام تنظیم شده باشد، برای قالب‌بندی داده‌های بلوک استفاده می‌شود؛ در غیر این صورت، بایت اول برای تعیین شناسه خلاصه پیام X9.31 استفاده می‌شود. عملیات‌های sign، verify و verifyrecover را می‌توان در این حالت انجام داد. برای حالت pss تنها sign و verify پشتیبانی می‌شوند و نوع خلاصه پیام باید مشخص شود.

rsa_pss_saltlen:len
تنها برای حالت pss، این گزینه طول نمک (salt) را مشخص می‌کند. دو مقدار ویژه پشتیبانی می‌شوند: مقدار ۱- طول نمک را برابر با طول خلاصه پیام قرار می‌دهد. هنگام امضا، ۲- طول نمک را بر روی حداکثر مقدار مجاز تنظیم می‌کند. هنگام اعتبارسنجی، ۲- باعث می‌شود طول نمک بر اساس ساختار بلوک PSS به طور خودکار تعیین گردد.

الگوریتم DSA از عملیات‌های sign و verify پشتیبانی می‌کند. در حال حاضر گزینه‌های اضافی به جز digest وجود ندارد. تنها خلاصه پیام SHA1 قابل استفاده است و این خلاصه پیام به طور پیش‌فرض فرض می‌شود.

الگوریتم DH از عملیات derive پشتیبانی می‌کند و هیچ گزینه اضافی ندارد.

الگوریتم EC از عملیات‌های sign، verify و derive پشتیبانی می‌کند. عملیات‌های sign و verify از ECDSA استفاده می‌کنند و derive از ECDH استفاده می‌نماید. در حال حاضر هیچ گزینه اضافی به جز digest وجود ندارد. تنها خلاصه پیام SHA1 می‌تواند استفاده شود و این خلاصه پیام به طور پیش‌فرض فرض می‌شود.

The input file is a public key.
معکوس کردن ترتیب بافر ورودی.
file
فایل امضا (تنها در عملیات verify).
امضای داده‌های ورودی و خروجی دادن نتیجه امضاشده. این عملیات به کلید خصوصی نیاز دارد.
-verify
اعتبارسنجی داده‌های ورودی در برابر فایل امضا و نشان دادن موفقیت‌آمیز بودن یا شکست اعتبارسنجی.
اعتبارسنجی داده‌های ورودی و خروجی دادن داده‌های بازیابی‌شده.

openssl prime [-bits n] [-checks n] [-generate] [-hex] [-safe] p

دستور prime برای تولید اعداد اول یا بررسی اول بودن اعداد استفاده می‌شود. نتایج احتمالی هستند: احتمال بسیار بالایی برای درستی آن‌ها وجود دارد، اما تضمین قطعی نیست.

گزینه‌ها به شرح زیر هستند:

n
مشخص کردن تعداد بیت‌ها در عدد اول تولیدشده. باید همراه با گزینه -generate استفاده شود.
n
انجام آزمون احتمالاتی اول بودن میلر-رابین با n تکرار. پیش‌فرض ۲۰ است.
تولید یک عدد اول شبه‌تصادفی. باید همراه با گزینه -bits استفاده شود.
خروجی در قالب هگزادسیمال.
تنها تولید اعداد اول "امن" (یعنی یک عدد اول p که در آن (p-1)/2 نیز اول باشد).
p
آزمون اینکه آیا عدد p اول است یا خیر.

openssl rand
[-base64] [-hex] [-out file] num

دستور rand تعداد num بایت شبه‌تصادفی را در خروجی تولید می‌کند.

گزینه‌ها به شرح زیر هستند:

انجام کدگذاری Base64 بر روی خروجی.
تعیین خروجی به صورت هگزادسیمال.
file
The output file to write to, or standard output if not specified.

openssl req
[-addext ext] [-batch] [-config file] [-days n] [-extensions section] [-in file] [-inform der | pem] [-key keyfile] [-keyform der | pem] [-keyout file] [-md4 | -md5 | -sha1] [-modulus] [-multivalue-rdn] [-nameopt option] [-new] [-newhdr] [-newkey arg] [-nodes] [-noout] [-out file] [-outform der | pem] [-passin arg] [-passout arg] [-pkeyopt opt:value] [-pubkey] [-reqexts section] [-reqopt option] [-set_serial n] [-sigopt nm:v] [-subj arg] [-subject] [-text] [-utf8] [-verbose] [-verify] [-x509]

دستور req عمدتاً درخواست‌های گواهی را در قالب PKCS#10 ایجاد و پردازش می‌کند. همچنین می‌تواند گواهی‌های خودامضاشده تولید کند، برای نمونه جهت استفاده به عنوان CA ریشه.

گزینه‌ها به شرح زیر هستند:

ext
افزودن یک افزونه خاص به گواهی (اگر گزینه -x509 ارائه شده باشد) یا درخواست گواهی. آرگومان باید به شکل یک جفت key=value باشد همان‌طور که در فایل پیکربندی ظاهر می‌شود. این گزینه می‌تواند چندین بار مشخص شود.
حالت غیرتعاملی (batch).
file
مشخص کردن فایل پیکربندی جایگزین.
n
مشخص کردن تعداد روزهایی که گواهی برای آن مدت معتبر خواهد بود. حالت پیش‌فرض ۳۰ روز است. همراه با گزینه -x509 استفاده می‌شود.
section, -reqexts section
مشخص کردن بخش‌های جایگزین برای گنجاندن افزونه‌های گواهی (همراه با -x509) یا افزونه‌های درخواست گواهی، که امکان استفاده از چندین بخش مختلف در یک فایل پیکربندی یکسان را فراهم می‌کند.
file
فایل ورودی برای خواندن درخواست از آن، یا ورودی استاندارد در صورت عدم تعیین. درخواست تنها در صورتی خوانده می‌شود که گزینه‌های ایجاد شامل -new و -newkey مشخص نشده باشند.
der |
قالب ورودی.
keyfile
فایلی برای خواندن کلید خصوصی از آن. همچنین کلیدهای خصوصی در قالب PKCS#8 را برای فایل‌های قالب PEM می‌پذیرد.
der |
قالب فایل کلید خصوصی مشخص‌شده در آرگومان -key. حالت پیش‌فرض pem است.
file
فایلی برای نوشتن کلید خصوصی تازه‌تولیدشده در آن. اگر این گزینه مشخص نشود، از نام فایل موجود در فایل پیکربندی استفاده می‌شود.
| |
الگوریتم خلاصه پیام برای امضای درخواست. این گزینه الگوریتم خلاصه پیام مشخص‌شده در فایل پیکربندی را بازنویسی می‌کند.

برخی الگوریتم‌های کلید عمومی ممکن است این انتخاب را نادیده بگیرند. برای نمونه، امضاهای DSA همیشه از SHA1 استفاده می‌کنند.

چاپ مقدار مدولوس (modulus) کلید عمومی موجود در درخواست.
این گزینه باعث می‌شود آرگومان -subj با پشتیبانی کامل از RDNهای چندمقداری تفسیر شود، برای نمونه "/DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe". اگر -multivalue-rdn استفاده نشود، مقدار UID بر روی "123456+CN=John Doe" تنظیم خواهد شد.
option, -reqopt option
تعیین نحوه نمایش نام‌های موضوع یا صادرکننده. option می‌تواند یک گزینه منفرد یا چندین گزینه جداشده با کاما باشد. همچنین این گزینه‌ها می‌توانند بیش از یک بار برای تنظیم چندین گزینه استفاده شوند. برای جزئیات به بخش X509 در ادامه مراجعه کنید.
تولید یک درخواست گواهی جدید. مقادیر فیلدهای مربوطه از کاربر درخواست می‌شود. فیلدهای واقعی درخواستی و حداکثر و حداقل اندازه آن‌ها در فایل پیکربندی و هرگونه افزونه درخواستی مشخص شده‌اند.

اگر از گزینه -key استفاده نشود، یک کلید خصوصی RSA جدید با استفاده از اطلاعات مشخص‌شده در فایل پیکربندی تولید خواهد شد.

افزودن واژه NEW به خطوط سرآیند و پانویس فایل PEM در درخواست خروجی. برخی نرم‌افزارها و CAها به این نیاز دارند.
arg
ایجاد یک درخواست گواهی جدید و یک کلید خصوصی جدید. آرگومان یکی از چندین فرم زیر را می‌گیرد:

rsa:nbits یک کلید RSA با اندازه nbits تولید می‌کند. اگر nbits حذف شود، از اندازه کلید پیش‌فرض استفاده می‌شود.

dsa:file یک کلید DSA با استفاده از پارامترهای موجود در file تولید می‌کند.

param:file یک کلید با استفاده از پارامترها یا گواهی موجود در file تولید می‌کند.

تمامی الگوریتم‌های دیگر از فرم algorithm:file پشتیبانی می‌کنند، که در آن file می‌تواند یک فایل پارامتر الگوریتم باشد که توسط دستور genpkey -genparam ایجاد شده است، یا یک گواهی X.509 برای کلیدی با الگوریتم مناسب. پارامتر file می‌تواند حذف شود، که در این حالت هر پارامتری می‌تواند از طریق گزینه -pkeyopt مشخص شود.

کلید خصوصی را رمزگذاری نمی‌کند.
از خروجی دادن نسخه کدگذاری‌شده درخواست خودداری می‌کند.
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین.
der |
قالب خروجی.
arg
منبع گذرواژه کلید.
arg
منبع گذرواژه فایل خروجی.
opt:value
تنظیم گزینه الگوریتم کلید عمومی opt بر روی value.
خروجی دادن کلید عمومی.
option
سفارشی‌سازی قالب خروجی مورد استفاده با -text. آرگومان option می‌تواند یک گزینه منفرد یا چندین گزینه جداشده با کاما باشد. همچنین به توضیحات -certopt در دستور x509 مراجعه کنید.
n
شماره سریال برای استفاده هنگام خروجی دادن یک گواهی خودامضاشده. می‌تواند به عنوان یک مقدار ده‌دهی یا یک مقدار هگزادسیمال با پیشوند ‘0x’ مشخص شود. استفاده از شماره سریال‌های منفی امکان‌پذیر است اما توصیه نمی‌شود.
nm:v
ارسال گزینه‌ها به الگوریتم امضا در طول عملیات امضا. نام‌ها و مقادیر این گزینه‌ها وابسته به الگوریتم هستند.
arg
جایگزین کردن فیلد موضوع درخواست ورودی با داده‌های مشخص‌شده و خروجی دادن درخواست اصلاح‌شده. آرگومان arg باید به صورت /type0=value0/type1=value1/type2=... قالب‌بندی شود؛ کاراکترها می‌توانند با ‘\’ (بک‌اسلش) اسکیپ شوند؛ هیچ فاصله‌ای نادیده گرفته نمی‌شود.
چاپ موضوع درخواست (یا موضوع گواهی در صورتی که -x509 مشخص شده باشد).
چاپ درخواست گواهی در قالب متن آشکار.
تفسیر مقادیر فیلدها به عنوان رشته‌های UTF-8 به جای ASCII.
چاپ جزئیات بیشتر درباره عملیات در حال انجام.
-verify
اعتبارسنجی امضای موجود روی درخواست.
-x509
خروجی دادن یک گواهی خودامضاشده به جای درخواست گواهی. این گزینه معمولاً برای ایجاد یک گواهی آزمایشی یا یک CA ریشه خودامضاشده استفاده می‌شود. افزونه‌های اضافه‌شده به گواهی (در صورت وجود) در فایل پیکربندی مشخص می‌شوند. مگر اینکه با گزینه -set_serial مشخص شده باشد، عدد ۰ برای شماره سریال استفاده می‌شود.

گزینه‌های پیکربندی در بخش "req" از فایل پیکربندی مشخص می‌شوند. گزینه‌های موجود به شرح زیر هستند:

بخشی شامل ویژگی‌های درخواست: قالب آن مشابه distinguished_name است. معمولاً این بخش ممکن است شامل انواع challengePassword یا unstructuredName باشد. در حال حاضر توسط ابزارهای امضای درخواست در openssl نادیده گرفته می‌شوند، اما برخی CAها ممکن است به آن‌ها نیاز داشته باشند.
اندازه پیش‌فرض کلید به بیت. حالت پیش‌فرض ۲۰۴۸ است. در صورت استفاده از گزینه -new به کار می‌رود و می‌توان با استفاده از گزینه -newkey آن را بازنویسی کرد.
فایل پیش‌فرض برای نوشتن کلید خصوصی، یا خروجی استاندارد در صورت عدم تعیین. می‌توان آن را با گزینه -keyout بازنویسی کرد.
الگوریتم خلاصه پیام مورد استفاده. مقادیر ممکن شامل md5 ، sha1 و sha256 (پیش‌فرض) هستند. می‌توان آن را در خط فرمان بازنویسی کرد.
بخشی شامل فیلدهای نام متمایز (distinguished name) که باید هنگام ایجاد گواهی یا درخواست گواهی از کاربر پرسیده شوند. قالب آن در ادامه شرح داده شده است.
اگر بر روی "no" تنظیم شود و یک کلید خصوصی تولید گردد، کلید رمزگذاری نخواهد شد. معادل گزینه -nodes است. جهت سازگاری، encrypt_rsa_key یک گزینه معادل است.
|
گذرواژه‌های فایل کلید خصوصی ورودی (در صورت وجود) و فایل کلید خصوصی خروجی (در صورت ایجاد). گزینه‌های خط فرمان -passin و -passout مقادیر فایل پیکربندی را بازنویسی می‌کنند.
فایلی حاوی شناسه‌های شیء (OBJECT IDENTIFIER) اضافی. هر سطر فایل باید شامل شکل عددی شناسه شیء به همراه فاصله، سپس نام کوتاه به همراه فاصله و در نهایت نام کامل باشد.
مشخص کردن بخشی در فایل پیکربندی حاوی شناسه‌های شیء اضافی. هر سطر باید شامل نام کوتاه شناسه شیء به همراه ‘=’ و شکل عددی باشد. در صورت استفاده از این گزینه، نام کوتاه و نام کامل یکسان خواهند بود.
اگر بر روی "no" تنظیم شود، پرسش فیلدهای گواهی از کاربر را غیرفعال می‌کند و مقادیر را مستقیماً از فایل پیکربندی می‌گیرد. همچنین قالب مورد انتظار برای بخش‌های distinguished_name و attributes را تغییر می‌دهد.
بخش فایل پیکربندی حاوی فهرستی از افزونه‌ها برای اضافه شدن به درخواست گواهی. می‌توان آن را با گزینه -reqexts بازنویسی کرد.
محدود کردن انواع رشته‌ها برای کدگذاری برخی فیلدها. مقادیر زیر را می‌توان استفاده کرد که رشته‌ها را به انواع مشخص‌شده محدود می‌کنند:
رشته‌های UTF8String. این حالت پیش‌فرض است، همان‌گونه که توسط PKIX در RFC 2459 توصیه شده است.
رشته‌های PrintableString، IA5String، T61String، BMPString، UTF8String.
رشته‌های PrintableString، IA5String، BMPString، UTF8String. الهام‌گرفته از توصیه PKIX در RFC 2459 برای گواهی‌های تولیدشده قبل از سال ۲۰۰۴، با این تفاوت که IA5String را نیز مجاز می‌داند.
رشته‌های PrintableString، IA5String، T61String، UniversalString. راهکاری برای برخی نرم‌افزارهای بسیار قدیمی که با انواع BMPString و UTF8String با اندازه متغیر مشکل داشتند.
:number
یک ماسک بیتی صریح از انواع مجاز، که در آن number یک عدد هگزادسیمال، ده‌دهی یا اکتال به سبک C است که حاصل OR بیتی از مقادیر B_ASN1_* از فایل <openssl/asn1.h> می‌باشد.
اگر بر روی "yes" تنظیم شود، مقادیر فیلدها به عنوان رشته‌های UTF-8 تفسیر می‌شوند.
بخش فایل پیکربندی حاوی فهرستی از افزونه‌ها برای اضافه شدن به گواهی ایجادشده هنگامی که سوئیچ -x509 استفاده شده باشد. می‌توان آن را با سوئیچ خط فرمان -extensions بازنویسی کرد.

دو قالب جداگانه برای بخش‌های distinguished name و attribute وجود دارد. اگر گزینه -prompt بر روی "no" تنظیم شده باشد، این بخش‌ها صرفاً شامل نام فیلدها و مقادیر آن‌ها خواهند بود. اگر گزینه -prompt وجود نداشته باشد یا بر روی "no" تنظیم نشده باشد، فایل شامل اطلاعات درخواست فیلد از کاربر به فرم زیر خواهد بود:

fieldName="prompt"
fieldName_default="default field value"
fieldName_min= 2
fieldName_max= 4

بخش "fieldName" نام فیلد مورد استفاده است، برای نمونه commonName (یا CN). رشته "prompt" برای درخواست از کاربر جهت وارد کردن جزئیات مربوطه استفاده می‌شود. اگر کاربر چیزی وارد نکند، مقدار پیش‌فرض استفاده می‌شود؛ اگر مقدار پیش‌فرضی وجود نداشته باشد، فیلد حذف خواهد شد. حتی در صورت وجود مقدار پیش‌فرض، اگر کاربر تنها نویسه ‘.’ را وارد کند، فیلد حذف می‌شود.

تعداد نویسه‌های واردشده باید میان محدودیت‌های fieldName_min و fieldName_max باشد: ممکن است محدودیت‌های اضافی بر اساس فیلد مورد استفاده وجود داشته باشد (برای نمونه countryName همواره باید دو نویسه باشد و در یک PrintableString بگنجد).

برخی فیلدها (مانند organizationName) می‌توانند بیش از یک بار در یک DN استفاده شوند. این امر مشکلی ایجاد می‌کند زیرا فایل‌های پیکربندی نام یکسانی را که دو بار تکرار شده باشد تشخیص نمی‌دهند. برای جلوگیری از این مشکل، اگر fieldName شامل نویسه‌هایی به همراه یک نقطه باشد، آن بخش نادیده گرفته می‌شود. بنابراین برای نمونه می‌توان دومین organizationName را با نام‌گذاری آن به صورت "1.organizationName" وارد کرد.

نام‌های مجاز فیلدها در واقع شامل هر نام کوتاه یا کاملِ شناسه شیء (OID) هستند. این مقادیر در داخل openssl کامپایل شده‌اند و شامل مقادیر متداول مانند commonName ، countryName ، localityName ، organizationName ، organizationalUnitName ، stateOrProvinceName می‌باشند. علاوه بر این، emailAddress و همچنین name ، surname ، givenName ، initials و dnQualifier نیز گنجانده شده‌اند.

شناسه‌های شیء اضافی را می‌توان با گزینه‌های oid_file یا oid_section در فایل پیکربندی تعریف کرد. با هر فیلد اضافی به گونه‌ای رفتار خواهد شد که گویی یک DirectoryString است.

openssl rsa
[-aes128 | -aes192 | -aes256 | -des | -des3] [-check] [-in file] [-inform der | net | pem | pvk] [-modulus] [-noout] [-out file] [-outform der | net | pem | pvk] [-passin arg] [-passout arg] [-pubin] [-pubout] [-pvk-none | -pvk-strong | -pvk-weak] [-RSAPublicKey_in] [-RSAPublicKey_out] [-text]

دستور rsa کلیدهای RSA را پردازش می‌کند. این کلیدها را می‌توان میان فرمت‌های مختلف تبدیل کرد و اجزای آن‌ها را چاپ نمود. دستور rsa از قالب سنتی سازگار با SSLeay برای رمزنگاری کلید خصوصی استفاده می‌کند: برنامه‌های جدیدتر باید از قالب امن‌تر PKCS#8 با استفاده از ابزار pkcs8 استفاده کنند.

گزینه‌ها به شرح زیر هستند:

| | | |
رمزگذاری کلید خصوصی به ترتیب با رمزگذارهای AES، DES یا Triple DES پیش از ارسال آن به خروجی. عبارت عبور درخواست خواهد شد. اگر هیچ‌یک از این گزینه‌ها مشخص نشوند، کلید به صورت متن آشکار نوشته می‌شود. این بدان معناست که استفاده از ابزار rsa برای خواندن یک کلید رمزگذاری‌شده بدون تعیین گزینه رمزگذاری می‌تواند برای حذف عبارت عبور از کلید استفاده شود، یا با تنظیم گزینه‌های رمزگذاری می‌توان برای افزودن یا تغییر عبارت عبور از آن استفاده نمود. این گزینه‌ها تنها با فایل‌های خروجی با قالب PEM قابل استفاده هستند.
بررسی سازگاری و درستی ساختاری یک کلید خصوصی RSA.
file
The input file to read from, or standard input if not specified. If the key is encrypted, a pass phrase will be prompted for.
der | | |
قالب ورودی.
Do not output the encoded version of the key.
چاپ مقدار مدولوس (modulus) کلید.
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین.
der | | |
قالب خروجی.
arg
منبع گذرواژه کلید.
arg
منبع گذرواژه فایل خروجی.
خواندن یک کلید عمومی، و نه یک کلید خصوصی.
خروجی دادن یک کلید عمومی، و نه یک کلید خصوصی. در صورت عمومی بودن ورودی، به طور خودکار فعال می‌شود.
| |
Enable or disable PVK encoding. The default is -pvk-strong.
, -RSAPublicKey_out
مشابه -pubin و -pubout است با این تفاوت که از قالب RSAPublicKey استفاده می‌شود.
چاپ اجزای کلید عمومی/خصوصی در قالب متن آشکار.

openssl rsautl
[-asn1parse] [-certin] [-decrypt] [-encrypt] [-hexdump] [-in file] [-inkey file] [-keyform der | pem] [-oaep | -pkcs | -raw | -x931] [-out file] [-passin arg] [-pubin] [-rev] [-sign] [-verify]

دستور rsautl می‌تواند برای امضا، اعتبارسنجی، رمزگذاری و رمزگشایی داده‌ها با استفاده از الگوریتم RSA به کار رود.

گزینه‌ها به شرح زیر هستند:

-asn1parse
تجزیه با asn1parse روی داده‌های خروجی؛ در صورت ترکیب با گزینه -verify کاربرد دارد.
ورودی یک گواهی حاوی کلید عمومی RSA است.
رمزگشایی داده‌های ورودی با استفاده از کلید خصوصی RSA.
رمزگذاری داده‌های ورودی با استفاده از کلید عمومی RSA.
Hex dump the output data.
file
The input to read from, or standard input if not specified.
file
فایل کلید ورودی؛ به طور پیش‌فرض یک کلید خصوصی RSA است.
der |
قالب کلید خصوصی. حالت پیش‌فرض pem است.
| | |
لایه‌گذاری مورد استفاده: به ترتیب لایه‌گذاری PKCS#1 OAEP، PKCS#1 v1.5 (پیش‌فرض)، بدون لایه‌گذاری یا ANSI X9.31. برای امضاها تنها گزینه‌های -pkcs و -raw قابل استفاده هستند.
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین.
arg
منبع گذرواژه کلید.
فایل ورودی یک کلید عمومی RSA است.
Reverse the order of the input buffer.
امضای داده‌های ورودی و خروجی دادن نتیجه امضاشده. به یک کلید خصوصی RSA نیاز دارد.
-verify
Verify the input data and output the recovered data.

openssl s_client
[-4 | -6] [-alpn protocols] [-bugs] [-CAfile file] [-CApath directory] [-cert file] [-certform der | pem] [-check_ss_sig] [-cipher cipherlist] [-connect host[:port]] [-crl_check] [-crl_check_all] [-crlf] [-debug] [-dtls] [-dtls1_2] [-extended_crl] [-groups list] [-host host] [-ign_eof] [-ignore_critical] [-issuer_checks] [-key keyfile] [-keyform der | pem] [-keymatexport label] [-keymatexportlen len] [-legacy_server_connect] [-msg] [-mtu mtu] [-nbio] [-nbio_test] [-no_comp] [-no_ign_eof] [-no_legacy_server_connect] [-no_ticket] [-no_tls1_2] [-no_tls1_3] [-pass arg] [-policy_check] [-port port] [-prexit] [-proxy host:port] [-quiet] [-reconnect] [-servername name] [-serverpref] [-sess_in file] [-sess_out file] [-showcerts] [-starttls protocol] [-state] [-status] [-timeout] [-tls1_2] [-tls1_3] [-tlsextdebug] [-use_srtp profiles] [-verify depth] [-verify_return_error] [-x509_strict] [-xmpphost host]

دستور s_client یک کلاینت عمومی SSL/TLS را پیاده‌سازی می‌کند که با استفاده از SSL/TLS به یک میزبان راه دور متصل می‌شود.

اگر اتصالی با یک سرور SSL برقرار شود، هر داده‌ای که از سرور دریافت شود نمایش داده شده و فشردن هر کلیدی به سرور ارسال خواهد شد. هنگامی که به صورت تعاملی استفاده شود (یعنی نه گزینه -quiet و نه -ign_eof ارائه نشده باشند)، اگر خط ورودی با حرف R آغاز شود نشست دوباره مذاکره خواهد شد؛ اگر خط با حرف Q آغاز شود یا به انتهای فایل برسد، اتصال بسته خواهد شد.

گزینه‌ها به شرح زیر هستند:

تلاش برای برقراری اتصال تنها با استفاده از IPv4.
تلاش برای برقراری اتصال تنها با استفاده از IPv6.
protocols
فعال‌سازی مذاکره پروتکل لایه کاربرد یا Application-Layer Protocol Negotiation (ALPN). protocols فهرستی جداشده با کاما از نام‌های پروتکل است که کلاینت باید پشتیبانی از آن‌ها را اعلان کند.
فعال‌سازی راهکارهای ترمیمی گوناگون برای پیاده‌سازی‌های دارای باگ.
file
یک file حاوی گواهی‌های معتمد جهت استفاده در احراز اصالت سرور و برای استفاده هنگام تلاش جهت ساخت زنجیره گواهی کلاینت.
directory
دایرکتوری directory مورد استفاده برای اعتبارسنجی گواهی سرور. این پوشه باید در "قالب هش" باشد؛ برای اطلاعات بیشتر به -verify مراجعه کنید. این موارد همچنین هنگام ساخت زنجیره گواهی کلاینت استفاده می‌شوند.
file
گواهی مورد استفاده در صورتی که توسط سرور درخواست شود. حالت پیش‌فرض عدم استفاده از گواهی است.
der |
قالب گواهی. حالت پیش‌فرض pem است.
, -crl_check, -crl_check_all, -extended_crl, -ignore_critical, -issuer_checks, -policy_check, -x509_strict
Set various certificate chain validation options. See the verify command for details.
cipherlist
اصلاح فهرست رمزگذارهای ارسالی توسط کلاینت. اگرچه سرور تعیین می‌کند که کدام مجموعه رمزنگاری استفاده شود، اما باید اولین رمزگذار پشتیبانی‌شده در فهرست ارسالی کلاینت را انتخاب کند. برای اطلاعات بیشتر به دستور ciphers مراجعه کنید.
host[:port]
میزبان host و پورت port برای اتصال. در صورت عدم تعیین، تلاشی برای اتصال به میزبان محلی (localhost) روی پورت ۴۴۳۳ انجام می‌شود. همچنین زوج میزبان و پورت می‌توانند با استفاده از نویسه اسلش (/) جدا شوند، که برای نشانی‌های عددی IPv6 مفید است.
تبدیل کاراکتر پایان خط (Line Feed) از ترمینال به CR+LF، همان‌طور که توسط برخی سرورها الزامی است.
چاپ اطلاعات گسترده اشکال‌زدایی، شامل تخلیه هگز (hex dump) تمام ترافیک شبکه.
اجازه استفاده از هر نسخه‌ای از DTLS.
اجازه استفاده تنها از نسخه ۱.۲ پروتکل DTLS.
list
تنظیم گروه‌های منحنی بیضوی پشتیبانی‌شده بر اساس list جداشده با دونقطه از NIDها یا نام‌های گروه طبق آنچه در SSL_CTX_set1_groups_list(3) مستند شده است.
host
میزبان host برای اتصال. پیش‌فرض localhost است.
جلوگیری از قطع اتصال هنگام رسیدن به انتهای فایل (EOF) در ورودی.
keyfile
کلید خصوصی مورد استفاده. در صورت عدم تعیین، از فایل گواهی استفاده خواهد شد.
der |
The private key format. The default is pem.
label
استخراج داده‌های کلیدی (keying material) با استفاده از برچسب.
len
استخراج len بایت از داده‌های کلیدی (پیش‌فرض ۲۰).
, -no_legacy_server_connect
مجاز یا غیرمجاز کردن اتصال اولیه به سرورهایی که از مذاکره مجدد امن (RI) پشتیبانی نمی‌کنند.
نمایش تمام پیام‌های پروتکل همراه با تخلیه هگز.
mtu
تنظیم MTU لایه پیوند.
فعال‌سازی ورودی/خروجی غیرمسدودکننده (non-blocking I/O).
آزمایش ورودی/خروجی غیرمسدودکننده.
قطع اتصال هنگام رسیدن به انتهای فایل در ورودی. می‌تواند برای لغو -ign_eof ضمنیِ ناشی از -quiet استفاده شود.
|
به ترتیب غیرفعال کردن استفاده از TLS1.2 و TLS1.3.
غیرفعال کردن پشتیبانی از بلیت نشست RFC 4507.
arg
The private key password source.
port
پورت port برای اتصال. پیش‌فرض ۴۴۳۳ است.
چاپ اطلاعات نشست هنگام خروج برنامه. این گزینه همواره تلاش می‌کند تا اطلاعات را چاپ کند حتی اگر اتصال شکست بخورد. به طور معمول اطلاعات تنها یک بار در صورت برقراری موفقیت‌آمیز اتصال چاپ می‌شود. این گزینه مفید است زیرا رمزگذار در حال استفاده ممکن است دوباره مذاکره شود، یا اتصال ممکن است به دلیل لزوم ارائه گواهی کلاینت یا درخواست آن پس از تلاش برای دسترسی به یک URL خاص شکست بخورد. توجه داشته باشید که خروجی تولیدشده توسط این گزینه همواره دقیق نیست زیرا ممکن است هرگز اتصالی برقرار نشده باشد.
host:port
استفاده از پراکسی HTTP در host و port. اتصال به پراکسی به صورت متن آشکار انجام شده و آرگومان -connect به پراکسی داده می‌شود. در صورت عدم تعیین، localhost به عنوان مقصد نهایی استفاده می‌شود. سپس اتصال از طریق پراکسی به مقصد به TLS تغییر می‌یابد.
جلوگیری از چاپ اطلاعات نشست و گواهی. این گزینه به طور ضمنی -ign_eof را نیز فعال می‌کند.
اتصال مجدد به همان سرور به تعداد ۵ بار با استفاده از شناسه نشست یکسان؛ از این گزینه می‌توان برای آزمایش عملکرد کش نشست استفاده کرد.
name
گنجاندن افزونه Server Name Indication (SNI) در پیام ClientHello با استفاده از نام سرور name.
نمایش کل زنجیره گواهی سرور: به طور معمول تنها خود گواهی سرور نمایش داده می‌شود.
استفاده از اولویت‌های رمزگذاری سرور.
file
بارگذاری نشست TLS از فایل. کلاینت تلاش خواهد کرد تا اتصال را از این نشست از سر بگیرد.
file
خروجی دادن نشست TLS به فایل.
protocol
ارسال پیام‌های ویژه پروتکل برای ارتقای ارتباط به TLS (STARTTLS). protocol کلیدواژه‌ای برای پروتکل مورد نظر است. در حال حاضر کلیدواژه‌های پشتیبانی‌شده عبارتند از: "ftp ،" "imap ،" "sieve ،" "smtp ،" "pop3" و "xmpp".
چاپ وضعیت‌های نشست SSL.
ارسال درخواست وضعیت گواهی به سرور (OCSP stapling). پاسخ سرور (در صورت وجود) چاپ می‌شود.
فعال‌سازی مهلت زمانی (timeout) ارسال/دریافت در اتصالات DTLS.
|
به ترتیب اجازه استفاده تنها از TLS1.2 یا TLS1.3.
چاپ تخلیه هگز هرگونه افزونه TLS دریافت‌شده از سرور.
profiles
پیشنهاد مدیریت کلید SRTP با فهرستی از پروفایل‌های جداشده با دونقطه.
-verify depth
فعال‌سازی اعتبارسنجی گواهی سرور، با حداکثر عمق depth. در حال حاضر عملیات اعتبارسنجی پس از خطاها ادامه می‌یابد تا تمام مشکلات مربوط به زنجیره گواهی قابل مشاهده باشد. به عنوان یک اثر جانبی، اتصال هرگز به دلیل شکست در اعتبارسنجی گواهی سرور متوقف نخواهد شد.
بازگرداندن خطای اعتبارسنجی.
hostname
هنگام استفاده با -starttls xmpp ، میزبان مربوط به ویژگی "to" در عنصر stream را مشخص می‌کند. اگر این گزینه مشخص نشود، میزبان تعیین‌شده با -connect استفاده خواهد شد.

openssl s_server
[-accept port] [-alpn protocols] [-bugs] [-CAfile file] [-CApath directory] [-cert file] [-cert2 file] [-certform der | pem] [-cipher cipherlist] [-context id] [-crl_check] [-crl_check_all] [-crlf] [-dcert file] [-dcertform der | pem] [-debug] [-dhparam file] [-dkey file] [-dkeyform der | pem] [-dpass arg] [-dtls] [-dtls1] [-dtls1_2] [-groups list] [-HTTP] [-id_prefix arg] [-key keyfile] [-key2 keyfile] [-keyform der | pem] [-keymatexport label] [-keymatexportlen len] [-msg] [-mtu mtu] [-naccept num] [-named_curve arg] [-nbio] [-nbio_test] [-no_cache] [-no_dhe] [-no_ecdhe] [-no_ticket] [-no_tls1_2] [-no_tls1_3] [-no_tmp_rsa] [-nocert] [-pass arg] [-quiet] [-servername name] [-servername_fatal] [-serverpref] [-state] [-status] [-status_timeout nsec] [-status_url url] [-status_verbose] [-timeout] [-tls1_2] [-tls1_3] [-tlsextdebug] [-use_srtp profiles] [-Verify depth] [-verify depth] [-verify_return_error] [-WWW] [-www]

دستور s_server یک سرور عمومی SSL/TLS را پیاده‌سازی می‌کند که برای اتصالات روی پورت مشخص با استفاده از SSL/TLS شنود می‌کند.

اگر درخواست اتصالی با یک کلاینت برقرار شود و نه گزینه -www و نه -WWW استفاده نشده باشد، هر داده دریافت‌شده از کلاینت نمایش داده شده و فشردن کلیدها به کلاینت ارسال می‌شود. برخی دستورات تک‌حرفی عملیات‌های خاصی انجام می‌دهند:

ارسال متن ساده، که باید باعث قطع اتصال کلاینت شود.
پایان دادن به اتصال SSL جاری و خروج.
پایان دادن به اتصال SSL جاری، اما همچنان پذیرش اتصالات جدید.
مذاکره مجدد نشست SSL و درخواست گواهی کلاینت.
مذاکره مجدد نشست SSL.
چاپ برخی اطلاعات مربوط به وضعیت کش نشست.

گزینه‌ها به شرح زیر هستند:

port
شنود روی پورت TCP port برای اتصالات. پیش‌فرض پورت ۴۴۳۳ است.
protocols
فعال‌سازی مذاکره پروتکل لایه کاربرد (ALPN). protocols فهرستی جداشده با کاما از نام‌های پروتکل‌های پشتیبانی‌شده است.
فعال‌سازی راهکارهای ترمیمی گوناگون برای پیاده‌سازی‌های دارای باگ.
file
یک file حاوی گواهی‌های معتمد جهت استفاده هنگام احراز اصالت کلاینت و هنگام تلاش برای ساخت زنجیره گواهی سرور. این فهرست همچنین در فهرست CAهای قابل قبول کلاینت که هنگام درخواست گواهی به کلاینت ارسال می‌شود به کار می‌رود.
directory
دایرکتوری directory مورد استفاده برای اعتبارسنجی گواهی کلاینت. این پوشه باید در "قالب هش" باشد؛ برای اطلاعات بیشتر به -verify مراجعه کنید. این موارد همچنین هنگام ساخت زنجیره گواهی سرور استفاده می‌شوند.
file
گواهی مورد استفاده: اکثر مجموعه‌های رمزنگاری سرور به استفاده از یک گواهی نیاز دارند و برخی به گواهی با نوع کلید عمومی خاصی نیاز دارند. برای نمونه، مجموعه‌های رمزنگاری DSS به گواهی حاوی کلید DSS (DSA) نیاز دارند. در صورت عدم تعیین، فایل server.pem استفاده خواهد شد.
file
گواهی مورد استفاده برای servername.
der |
قالب گواهی. حالت پیش‌فرض pem است.
cipherlist
اصلاح فهرست رمزگذارهای مورد استفاده سرور. این گزینه امکان تغییر فهرست رمزگذارهای سرور را فراهم می‌کند. هنگامی که کلاینت فهرستی از رمزگذارهای پشتیبانی‌شده را ارسال می‌کند، اولین رمزگذار کلاینت که در فهرست سرور نیز وجود داشته باشد استفاده می‌شود. از آنجا که کلاینت ترتیب اولویت را مشخص می‌کند، ترتیب فهرست رمزگذار سرور بی‌تاثیر است. See the ciphers command for more information.
id
تنظیم شناسه بستر (context ID) برای SSL. می‌تواند هر مقدار رشته‌ای دلخواهی باشد.
, -crl_check_all
بررسی اینکه گواهی همتا توسط CA مربوطه باطل نشده باشد. فایل‌های CRL به فایل گواهی پیوست می‌شوند. گزینه -crl_check_all تمام CRLهای همه CAهای موجود در زنجیره را بررسی می‌کند.
تبدیل کاراکتر پایان خط ترمینال به CR+LF.
file, -dkey file
مشخص کردن گواهی و کلید خصوصی اضافی؛ این موارد همانند گزینه‌های -cert و -key رفتار می‌کنند با این تفاوت که در صورت عدم تعیین، پیش‌فرضی ندارند (هیچ گواهی یا کلید اضافی استفاده نمی‌شود). با استفاده از گواهی‌ها و کلیدهای RSA و DSS، یک سرور می‌تواند با استفاده از گواهی مناسب از کلاینت‌هایی که تنها از مجموعه‌های رمزنگاری RSA یا DSS پشتیبانی می‌کنند پشتیبانی نماید.
der | , -dkeyform der | , -dpass arg
به ترتیب قالب گواهی و کلید خصوصی اضافی، و منبع گذرواژه کلید خصوصی.
چاپ اطلاعات گسترده اشکال‌زدایی، شامل تخلیه هگز (hex dump) تمام ترافیک شبکه.
-dhparam file
فایل پارامتر DH مورد استفاده. مجموعه‌های رمزنگاری گذرا (ephemeral) دیفی-هلمن کلیدها را با استفاده از مجموعه‌ای از پارامترهای DH تولید می‌کنند. در صورت عدم تعیین، تلاشی برای بارگذاری پارامترها از فایل گواهی سرور انجام می‌شود. اگر این کار شکست بخورد، مجموعه‌ای ایستا از پارامترها که در برنامه s_server تعبیه شده‌اند استفاده خواهد شد.
اجازه استفاده از هر نسخه‌ای از DTLS.
اجازه استفاده تنها از نسخه ۱.۲ پروتکل DTLS.
list
تنظیم گروه‌های منحنی بیضوی پشتیبانی‌شده بر اساس list جداشده با دونقطه از NIDها یا نام‌های گروه طبق آنچه در SSL_CTX_set1_groups_list(3) مستند شده است.
شبیه‌سازی یک وب‌سرور ساده. صفحات نسبت به دایرکتوری جاری آدرس‌دهی می‌شوند. برای نمونه اگر نشانی https://myhost/page.html درخواست شود، فایل ./page.html بارگذاری خواهد شد. فرض بر این است که فایل‌های بارگذاری‌شده شامل یک پاسخ کامل و صحیح HTTP هستند (سطرهایی که بخشی از سطر پاسخ HTTP و هدرها هستند باید به CRLF ختم شوند).
arg
تولید شناسه‌های نشست SSL/TLS با پیشوند arg. این گزینه عمدتاً برای آزمایش کدهای SSL/TLS که با چندین سرور تعامل دارند کاربرد دارد، زمانی که هر سرور ممکن است محدوده یکتایی از شناسه‌های نشست را تولید کند.
keyfile
کلید خصوصی مورد استفاده. در صورت عدم تعیین، از فایل گواهی استفاده خواهد شد.
keyfile
کلید خصوصی مورد استفاده برای servername.
der |
The private key format. The default is pem.
label
استخراج داده‌های کلیدی (keying material) با استفاده از برچسب.
len
استخراج len بایت از داده‌های کلیدی (پیش‌فرض ۲۰).
نمایش تمام پیام‌های پروتکل همراه با تخلیه هگز.
mtu
تنظیم MTU لایه پیوند.
num
خاتمه سرور پس از num اتصال.
arg
مشخص کردن نام منحنی بیضوی برای کلیدهای گذرای ECDH. این گزینه منسوخ شده است؛ به جای آن از -groups استفاده کنید.
فعال‌سازی ورودی/خروجی غیرمسدودکننده (non-blocking I/O).
آزمایش ورودی/خروجی غیرمسدودکننده.
غیرفعال کردن کش نشست.
غیرفعال کردن مجموعه‌های رمزنگاری گذرا (ephemeral) دیفی-هلمن.
غیرفعال کردن مجموعه‌های رمزنگاری گذرای ECDH.
غیرفعال کردن پشتیبانی از بلیت نشست RFC 4507.
|
به ترتیب غیرفعال کردن استفاده از TLS1.2 و TLS1.3.
غیرفعال کردن تولید کلید موقت RSA.
عدم استفاده از گواهی. این کار مجموعه‌های رمزنگاری در دسترس را به موارد ناشناس (در حال حاضر تنها DH ناشناس) محدود می‌کند.
arg
The private key password source.
Inhibit printing of session and certificate information.
name
تنظیم افزونه Server Name Indication (SNI) با name.
ارسال هشدار مهلک (fatal alert) در صورت عدم تطابق servername. حالت پیش‌فرض هشدار اخطار (warning alert) است.
استفاده از اولویت‌های رمزگذاری سرور.
چاپ وضعیت‌های نشست SSL.
فعال‌سازی پشتیبانی از درخواست وضعیت گواهی (OCSP stapling).
nsec
تنظیم مهلت زمانی پاسخ OCSP به ثانیه.
url
تنظیم یک آدرس URL پاسخ‌دهنده پشتیبان در صورتی که هیچ نشانی پاسخ‌دهنده‌ای در گواهی سرور موجود نباشد. بدون این گزینه، اگر گواهی سرور شامل نشانی پاسخ‌دهنده نباشد، خطایی بازگردانده می‌شود.
فعال‌سازی پشتیبانی از درخواست وضعیت گواهی (OCSP stapling) و چاپ کامل پاسخ OCSP همراه با جزئیات.
فعال‌سازی مهلت زمانی (timeout) ارسال/دریافت در اتصالات DTLS.
|
به ترتیب اجازه استفاده تنها از TLS1.2 یا TLS1.3.
چاپ تخلیه هگز هرگونه افزونه TLS دریافت‌شده از سرور.
profiles
پیشنهاد مدیریت کلید SRTP با فهرستی از پروفایل‌های جداشده با دونقطه.
بازگرداندن خطای اعتبارسنجی.
Emulate a simple web server. Pages are resolved relative to the current directory. For example if the URL https://myhost/page.html is requested, the file ./page.html will be loaded.
ارسال پیام وضعیت به کلاینت هنگام اتصال، شامل اطلاعات درباره رمزگذارهای استفاده‌شده و پارامترهای مختلف نشست. خروجی در قالب HTML است بنابراین این گزینه معمولاً با یک مرورگر وب استفاده می‌شود.
depth, -verify depth
درخواست یک زنجیره گواهی از کلاینت، با حداکثر طول depth. با گزینه -Verify -، کلاینت باید حتماً گواهی ارائه دهد در غیر این صورت خطا رخ می‌دهد؛ با گزینه -verify -، گواهی درخواست می‌شود اما کلاینت مجبور به ارسال آن نیست.

openssl s_time
[-bugs] [-CAfile file] [-CApath directory] [-cert file] [-cipher cipherlist] [-connect host[:port]] [-key keyfile] [-nbio] [-new] [-no_shutdown] [-reuse] [-time seconds] [-verify depth] [-www page]

دستور s_time یک کلاینت عمومی SSL/TLS را پیاده‌سازی می‌کند که با استفاده از SSL/TLS به یک میزبان راه دور متصل می‌شود. این ابزار می‌تواند صفحه‌ای را از سرور درخواست کند و زمان انتقال داده‌های مفید (payload) را در اندازه‌گیری‌های زمانی خود لحاظ نماید. این دستور تعداد اتصالات در یک بازه زمانی مشخص، میزان داده‌های منتقل‌شده (در صورت وجود) را اندازه‌گیری کرده و میانگین زمان صرف‌شده برای یک اتصال را محاسبه می‌کند.

گزینه‌ها به شرح زیر هستند:

فعال‌سازی راهکارهای ترمیمی گوناگون برای پیاده‌سازی‌های دارای باگ.
file
یک file حاوی گواهی‌های معتمد جهت استفاده در احراز اصالت سرور و برای استفاده هنگام تلاش جهت ساخت زنجیره گواهی کلاینت.
directory
The directory to use for server certificate verification. This directory must be in "hash format"; see verify for more information. These are also used when building the client certificate chain.
file
گواهی مورد استفاده در صورتی که توسط سرور درخواست شود. حالت پیش‌فرض عدم استفاده از گواهی است.
cipherlist
Modify the cipher list sent by the client. Although the server determines which cipher suite is used, it should take the first supported cipher in the list sent by the client. See the ciphers command for more information.
host[:port]
میزبان و پورت برای اتصال.
keyfile
کلید خصوصی مورد استفاده. در صورت عدم تعیین، از فایل گواهی استفاده خواهد شد.
فعال‌سازی ورودی/خروجی غیرمسدودکننده (non-blocking I/O).
انجام آزمون زمان‌سنجی با استفاده از یک شناسه نشست جدید برای هر اتصال. اگر هیچ‌یک از گزینه‌های -new و -reuse مشخص نشوند، هر دو به طور پیش‌فرض فعال بوده و به ترتیب اجرا می‌شوند.
قطع اتصال بدون ارسال هشدار قطع اتصال "close notify" به سرور.
انجام آزمون زمان‌سنجی با استفاده از همان شناسه نشست قبلی برای هر اتصال. اگر هیچ‌یک از گزینه‌های -new و -reuse مشخص نشوند، هر دو به طور پیش‌فرض فعال بوده و به ترتیب اجرا می‌شوند.
seconds
محدود کردن بنچمارک‌های s_time به مدت seconds ثانیه. حالت پیش‌فرض ۳۰ ثانیه است.
-verify depth
فعال‌سازی اعتبارسنجی گواهی سرور، با حداکثر طول depth. در حال حاضر عملیات اعتبارسنجی پس از خطاها ادامه می‌یابد تا تمام مشکلات زنجیره گواهی قابل مشاهده باشد. به عنوان یک اثر جانبی، اتصال هرگز به دلیل شکست در اعتبارسنجی گواهی سرور متوقف نخواهد شد.
page
صفحه‌ای که باید با متد GET از سرور دریافت شود. مقدار ‘/’ صفحه index.htm[l] را دریافت می‌کند. اگر این پارامتر مشخص نشود، s_time تنها دست‌تکانی (handshake) برقراری اتصالات SSL را انجام می‌دهد اما هیچ داده مفیدی (payload) را منتقل نخواهد کرد.

openssl sess_id
[-cert] [-context ID] [-in file] [-inform der | pem] [-noout] [-out file] [-outform der | pem] [-text]

برنامه sess_id نسخه کدگذاری‌شده ساختار نشست SSL را پردازش می‌کند و به صورت اختیاری جزئیات نشست SSL (برای نمونه کلید اصلی یا master key نشست SSL) را در قالبی خوانا برای انسان چاپ می‌کند.

گزینه‌ها به شرح زیر هستند:

اگر گواهی در نشست وجود داشته باشد، با این گزینه به خروجی ارسال می‌شود؛ اگر گزینه -text نیز درج شده باشد، در قالب متنی چاپ خواهد شد.
ID
تنظیم شناسه نشست ID. شناسه می‌تواند هر رشته‌ای از کاراکترها باشد.
file
فایل ورودی برای خواندن، یا ورودی استاندارد در صورت عدم تعیین.
der |
قالب ورودی. der از قالب کدگذاری‌شده ASN.1 DER حاوی جزئیات نشست استفاده می‌کند. قالب دقیق می‌تواند از یک نسخه به نسخه دیگر متفاوت باشد. pem قالب پیش‌فرض است: شامل قالب DER کدگذاری‌شده با Base64 همراه با خطوط هدر و فوتر اضافی است.
از خروجی دادن نسخه کدگذاری‌شده نشست خودداری می‌کند.
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین.
der |
قالب خروجی.
علاوه بر نسخه کدگذاری‌شده، اجزای مختلف کلید عمومی یا خصوصی را در قالب متن آشکار چاپ می‌کند.

خروجی sess_id به صورت زیر تشکیل شده است:

Protocol
پروتکل در حال استفاده.
Cipher
کد خام رمزگذار واقعی SSL یا TLS.
Session-ID
شناسه نشست SSL در قالب هگز.
Session-ID-ctx
بستر شناسه نشست در قالب هگز.
Master-Key
کلید اصلی (master key) نشست SSL.
Key-Arg
آرگومان کلید؛ تنها در SSL v2 کاربرد دارد.
Start Time
زمان شروع نشست در قالب UNIX.
Timeout
مهلت زمانی به ثانیه.
Verify return code
کد بازگشتی هنگام اعتبارسنجی گواهی.

از آنجا که خروجی نشست SSL شامل کلید اصلی است، خواندن محتوای یک نشست رمزگذاری‌شده با استفاده از این اطلاعات امکان‌پذیر است. بنابراین در صورتی که این اطلاعات توسط یک برنامه "واقعی" خروجی داده می‌شود باید تدابیر امنیتی مناسب اتخاذ گردد. با این حال، این کار اکیداً منع می‌شود و تنها باید برای اهداف اشکال‌زدایی استفاده شود.

openssl smime
[-aes128 | -aes192 | -aes256 | -des | -des3 | -rc2-40 | -rc2-64 | -rc2-128] [-binary] [-CAfile file] [-CApath directory] [-certfile file] [-check_ss_sig] [-content file] [-crl_check] [-crl_check_all] [-decrypt] [-encrypt] [-extended_crl] [-from addr] [-ignore_critical] [-in file] [-indef] [-inform der | pem | smime] [-inkey file] [-issuer_checks] [-keyform der | pem] [-md digest] [-noattr] [-nocerts] [-nochain] [-nodetach] [-noindef] [-nointern] [-nosigs] [-nosmimecap] [-noverify] [-out file] [-outform der | pem | smime] [-passin arg] [-pk7out] [-policy_check] [-recip file] [-resign] [-sign] [-signer file] [-stream] [-subject s] [-text] [-to addr] [-verify] [-x509_strict] [cert.pem ...]

دستور smime نامه‌های S/MIME را مدیریت می‌کند. این ابزار می‌تواند پیام‌های S/MIME را رمزگذاری، رمزگشایی، امضا و اعتبارسنجی کند.

پیام MIME باید بدون هیچ خط خالی میان هدرها و خروجی ارسال شود. برخی برنامه‌های پستی به طور خودکار یک خط خالی اضافه می‌کنند. ارسال مستقیم نامه از طریق پایپ به یک MTA یکی از راه‌های دستیابی به قالب صحیح است.

پیام ارائه‌شده برای امضا یا رمزگذاری باید شامل هدرهای لازم MIME باشد، در غیر این صورت بسیاری از کلاینت‌های S/MIME آن را به درستی نمایش نخواهند داد (یا اصلاً نمایش نمی‌دهند). از گزینه -text برای افزودن خودکار هدرهای متن ساده استفاده کنید.

یک پیام "امضا و رمزگذاری‌شده" پیامی است که ابتدا امضا شده و سپس رمزگذاری می‌گردد. این کار را می‌توان با رمزگذاری پیامی که قبلاً امضا شده است انجام داد.

تعدادی از عملیات قابل انجام به شرح زیر هستند:

رمزگشایی ایمیل با استفاده از گواهی و کلید خصوصی ارائه‌شده. فایل ورودی یک پیام ایمیل رمزگذاری‌شده در قالب MIME است. ایمیل رمزگشایی‌شده در فایل خروجی نوشته می‌شود.
رمزگذاری ایمیل برای گواهی‌های گیرنده ارائه‌شده. ورودی پیامی است که باید رمزگذاری شود. فایل خروجی ایمیل رمزگذاری‌شده در قالب MIME است.
دریافت یک پیام ورودی و نوشتن ساختار PKCS#7 با کدگذاری PEM در خروجی.
امضای مجدد پیام: دریافت یک پیام موجود و یک یا چند امضاکننده جدید.
امضای ایمیل با استفاده از گواهی و کلید خصوصی ارائه‌شده. فایل ورودی پیامی است که باید امضا شود. پیام امضاشده در قالب MIME در فایل خروجی نوشته می‌شود.
-verify
اعتبارسنجی ایمیل امضاشده. ورودی یک پیام ایمیل امضاشده و خروجی داده‌های امضاشده است. هر دو امضای متن آشکار و امضای مات پشتیبانی می‌شوند.

سایر گزینه‌ها به شرح زیر هستند:

| | | | | | |
الگوریتم رمزگذاری مورد استفاده. به ترتیب الگوریتم‌های AES با طول ۱۲۸، ۱۹۲ یا ۲۵۶ بیت، DES (۵۶ بیت)، Triple DES (۱۶۸ بیت)، یا RC2 با طول ۴۰، ۶۴ یا ۱۲۸ بیت؛ در صورت عدم تعیین، AES با طول ۲۵۶ بیت استفاده می‌شود. تنها با گزینه -encrypt استفاده می‌شود.
به طور معمول، پیام ورودی به قالب "استاندارد (canonical)" که از CR/LF به عنوان پایان خط طبق الزامات S/MIME استفاده می‌کند تبدیل می‌شود. در صورت وجود این گزینه، هیچ تبدیلی رخ نمی‌دهد. این گزینه هنگام پردازش داده‌های دودویی که ممکن است در قالب MIME نباشند مفید است.
file
یک file حاوی گواهی‌های معتمد CA؛ تنها همراه با -verify استفاده می‌شود.
directory
یک directory حاوی گواهی‌های معتمد CA؛ تنها همراه با -verify استفاده می‌شود. این پوشه باید یک پوشه استاندارد گواهی باشد: بدین معنا که هشی از هر نام موضوع (با استفاده از x509 -hash) باید به هر گواهی پیوند داده شده باشد.
cert.pem ...
یک یا چند گواهی از گیرندگان پیام: هنگام رمزگذاری یک پیام استفاده می‌شود.
file
امکان تعیین گواهی‌های اضافی را فراهم می‌کند. هنگام امضا، این گواهی‌ها همراه با پیام درج می‌شوند. هنگام اعتبارسنجی، این گواهی‌ها برای یافتن گواهی‌های امضاکنندگان جستجو می‌شوند. گواهی‌ها باید در قالب PEM باشند.
, -crl_check, -crl_check_all, -extended_crl, -ignore_critical, -issuer_checks, -policy_check, -x509_strict
تنظیم گزینه‌های گوناگون اعتبارسنجی زنجیره گواهی. برای جزئیات به دستور verify مراجعه کنید.
file
فایلی حاوی محتوای جداشده. این گزینه تنها همراه با گزینه -verify مفید است، و تنها زمانی قابل استفاده است که ساختار PKCS#7 از فرم امضای جداشده استفاده کند که در آن محتوا درج نشده است. اگر قالب ورودی S/MIME باشد و از نوع MIME multipart/signed استفاده کند، این گزینه هر محتوایی را بازنویسی خواهد کرد.
addr, -subject s, -to addr
سرایندهای مرتبط با ایمیل. این سرایندها در خارج از بخش امضاشده پیام قرار می‌گیرند بنابراین می‌توان آن‌ها را به صورت دستی درج کرد. هنگام امضا، بسیاری از کلاینت‌های ایمیل S/MIME بررسی می‌کنند که نشانی ایمیل گواهی امضاکننده با نشانی From: مطابقت داشته باشد.
file
فایل ورودی برای خواندن از آن.
فعال‌سازی ورودی/خروجی جریانی برای عملیات کدگذاری. این کار امکان پردازش تک‌گذره داده‌ها را بدون نیاز به نگهداری کل محتوا در حافظه فراهم کرده و از فایل‌های بسیار حجیم پشتیبانی می‌کند. حالت جریانی برای امضای S/MIME با داده‌های جداشده در صورتی که قالب خروجی SMIME باشد به طور خودکار فعال است؛ در حال حاضر برای تمام عملیات دیگر به طور پیش‌فرض خاموش است.
der | | smime
قالب ورودی.
file
کلید خصوصی مورد استفاده هنگام امضا یا رمزگشایی، که باید با گواهی مربوطه مطابقت داشته باشد. اگر این گزینه مشخص نشود، کلید خصوصی باید در فایل گواهی تعیین‌شده با گزینه -recip یا -signer گنجانده شده باشد. هنگام امضا، این گزینه می‌تواند چندین بار برای تعیین کلیدهای متوالی استفاده شود.
der |
قالب کلید خصوصی ورودی. حالت پیش‌فرض pem است.
digest
الگوریتم خلاصه پیام مورد استفاده هنگام امضا یا امضای مجدد. اگر وجود نداشته باشد، از الگوریتم پیش‌فرض خلاصه پیام برای کلید امضا استفاده می‌شود (معمولاً SHA1).
ویژگی‌ها را درج نمی‌کند.
گواهی امضاکننده را درج نمی‌کند. این کار اندازه پیام امضاشده را کاهش می‌دهد اما اعتبارسنج باید یک نسخه از گواهی امضاکننده را به صورت محلی در دسترس داشته باشد (برای نمونه با گزینه -certfile ارائه شده باشد).
اعتبارسنجی زنجیره‌ای گواهی‌های امضاکنندگان را انجام نمی‌دهد: بدین معنا که از گواهی‌های موجود در پیام امضاشده به عنوان CAهای غیرمعتمد استفاده نمی‌کند.
هنگام امضای پیام، از امضای مات (opaque) استفاده می‌کند: این فرمت در برابر دستکاری توسط رله‌های پستی مقاوم‌تر است اما توسط کلاینت‌هایی که از S/MIME پشتیبانی نمی‌کنند خوانده نمی‌شود. بدون این گزینه، امضای متن آشکار با نوع MIME multipart/signed استفاده می‌شود.
غیرفعال کردن ورودی/خروجی جریانی در مواردی که منجر به کدگذاری با طول نامعین شود (در حال حاضر تاثیری ندارد).
تنها از گواهی‌های مشخص‌شده در -certfile استفاده می‌کند. گواهی‌های ارائه‌شده همچنان می‌توانند به عنوان CAهای غیرمعتمد به کار روند.
تلاشی برای اعتبارسنجی امضاهای روی پیام انجام نمی‌دهد.
فهرست الگوریتم‌های پشتیبانی‌شده را از ویژگی‌های امضاشده حذف می‌کند؛ سایر گزینه‌ها مانند زمان امضا و نوع محتوا همچنان درج می‌شوند.
گواهی امضاکننده یک پیام امضاشده را اعتبارسنجی نمی‌کند.
file
فایل خروجی برای نوشتن در آن.
der | | smime
قالب خروجی. پیش‌فرض smime است که پیامی در قالب S/MIME می‌نویسد. قالب‌های pem و der این رفتار را تغییر می‌دهند تا به جای آن ساختارهای PKCS#7 با قالب PEM و DER نوشته شوند. این گزینه در حال حاضر تنها بر قالب خروجی ساختار PKCS#7 اثر می‌گذارد؛ اگر ساختار PKCS#7 در خروجی نباشد (برای نمونه با -verify یا -decrypt) این گزینه تاثیری ندارد.
arg
منبع گذرواژه کلید.
file
گواهی گیرنده هنگام رمزگشایی پیام. این گواهی باید با یکی از گیرندگان پیام مطابقت داشته باشد در غیر این صورت خطا رخ می‌دهد.
file
گواهی امضاکننده هنگام امضا یا امضای مجدد پیام؛ اگر بیش از یک امضاکننده لازم باشد، این گزینه می‌تواند چندین بار استفاده شود. اگر پیامی در حال اعتبارسنجی باشد، گواهی‌های امضاکننده در صورت موفقیت اعتبارسنجی در این فایل نوشته خواهند شد.
مشابه -indef.
افزودن هدرهای MIME متن ساده (text/plain) به پیام ارائه‌شده در صورت رمزگذاری یا امضا. در صورت رمزگشایی یا اعتبارسنجی، هدرهای متنی را حذف می‌کند: اگر پیام رمزگشایی‌شده یا اعتبارسنجی‌شده از نوع MIME text/plain نباشد، خطایی رخ می‌دهد.

کدهای خروج برای smime به شرح زیر هستند:

0
عملیات کاملاً موفقیت‌آمیز بود.
1
خطایی هنگام تجزیه گزینه‌های دستور رخ داد.
2
یکی از فایل‌های ورودی قابل خواندن نبود.
3
خطایی هنگام ایجاد فایل یا خواندن پیام رخ داد.
4
خطایی هنگام رمزگشایی یا اعتبارسنجی پیام رخ داد.
5
خطایی هنگام نوشتن گواهی‌ها رخ داد.

openssl speed
[algorithm] [-decrypt] [-elapsed] [-evp algorithm] [-mr] [-multi number] [-unaligned number]

دستور speed برای سنجش کارایی و سرعت الگوریتم‌های رمزنگاری استفاده می‌شود.

algorithm
انجام آزمون با استفاده از الگوریتم algorithm. حالت پیش‌فرض آزمودن تمامی الگوریتم‌ها است.
زمان‌سنجی رمزگشایی به جای رمزگذاری؛ باید همراه با -evp استفاده شود.
اندازه‌گیری زمان بر حسب زمان واقعی (real time) به جای زمان پردازنده (CPU time).
algorithm
انجام آزمون با استفاده از یکی از الگوریتم‌های پذیرفته‌شده توسط EVP_get_cipherbyname(3).
تولید خروجی قابل خواندن توسط ماشین (machine-readable).
number
اجرای number بنچمارک به صورت موازی.
number
استفاده از بافرهای تخصیص‌یافته با آفست number بایت از تراز ارائه‌شده توسط malloc(3). پارامتر number باید عددی بین ۰ تا ۱۶ باشد.

openssl ts
[-md4 | -md5 | -ripemd160 | -sha1] [-cert] [-config configfile] [-data file_to_hash] [-digest digest_bytes] [-in request.tsq] [-no_nonce] [-out request.tsq] [-policy object_id] [-text]
openssl ts
[-chain certs_file.pem] [-config configfile] [-in response.tsr] [-inkey private.pem] [-out response.tsr] [-passin arg] [-policy object_id] [-queryfile request.tsq] [-section tsa_section] [-signer tsa_cert.pem] [-text] [-token_in] [-token_out]
openssl ts
-verify [-CAfile trusted_certs.pem] [-CApath trusted_cert_path] [-data file_to_hash] [-digest digest_bytes] [-in response.tsr] [-queryfile request.tsq] [-token_in] [-untrusted cert_file.pem]

دستور ts یک برنامه کلاینت و سرور پایه برای مرجع برچسب‌گذاری زمانی یا Time Stamping Authority (TSA) طبق استاندارد RFC 3161 (پروتکل برچسب زمانی یا TSP) است. یک TSA می‌تواند بخشی از استقرار یک زیرساخت کلید عمومی (PKI) باشد و نقش آن ارائه اثبات بلندمدت برای وجود داده‌های مشخص است. شرح مختصری از این پروتکل به قرار زیر است:

  1. کلاینت TSA یک مقدار هش یک‌طرفه برای فایل داده محاسبه کرده و هش را به TSA ارسال می‌کند.
  2. مرجع TSA تاریخ و زمان جاری را به مقدار هش دریافت‌شده ضمیمه کرده، آن‌ها را امضا می‌کند و توکن برچسب زمانی را به کلاینت بازمی‌گرداند. با ایجاد این توکن، TSA وجود فایل داده اصلی را در زمان تولید پاسخ گواهی می‌کند.
  3. کلاینت TSA توکن برچسب زمانی را دریافت کرده و امضای روی آن را اعتبارسنجی می‌کند. همچنین بررسی می‌کند که آیا توکن شامل همان مقدار هشی است که به TSA فرستاده بود یا خیر.

یک واحد داده پروتکل (PDU) کدگذاری‌شده با DER برای انتقال درخواست برچسب زمانی به TSA و یکی برای ارسال پاسخ برچسب زمانی به کلاینت تعریف شده است. دستور ts سه عملکرد اصلی دارد: ایجاد درخواست برچسب زمانی بر اساس یک فایل داده؛ ایجاد پاسخ برچسب زمانی بر اساس یک درخواست؛ و اعتبارسنجی این که آیا پاسخ متناظر با یک درخواست خاص یا فایل داده است یا خیر.

هنوز هیچ پشتیبانی برای ارسال خودکار درخواست‌ها/پاسخ‌ها از طریق HTTP یا TCP مطابق پیشنهاد RFC 3161 وجود ندارد. کاربران باید درخواست‌ها را از طریق FTP یا ایمیل ارسال کنند.

سوئیچ -query می‌تواند برای ایجاد و چاپ درخواست برچسب زمانی همراه با گزینه‌های زیر استفاده شود:

انتظار از TSA برای گنجاندن گواهی امضای خود در پاسخ.
configfile
مشخص کردن فایل پیکربندی جایگزین. تنها بخش OID استفاده می‌شود.
file_to_hash
فایل داده‌ای که درخواست برچسب زمانی باید برای آن ایجاد شود. پیش‌فرض ورودی استاندارد است.
digest_bytes
تعیین صریح اثر پیام (imprint) بدون فایل داده. اثر پیام باید در قالب هگزادسیمال، دو کاراکتر برای هر بایت، با امکان جداسازی بایت‌ها با دونقطه مشخص شود. تعداد بایت‌ها باید با الگوریتم خلاصه پیام مورد استفاده مطابقت داشته باشد.
request.tsq
یک درخواست برچسب زمانی که قبلاً در قالب DER ایجاد شده و در فایل خروجی چاپ خواهد شد. برای بررسی محتوای یک درخواست در قالب خوانا برای انسان کاربرد دارد.
| | | |
الگوریتم خلاصه پیام برای اعمال بر روی فایل داده. از تمام الگوریتم‌های خلاصه پیام پشتیبانی‌شده توسط دستور dgst پشتیبانی می‌کند. پیش‌فرض SHA1 است.
عدم درج نانس (nonce) در درخواست. درج یک نانس شبه‌تصادفی ۶۴ بیتی (پیش‌فرض) برای محافظت در برابر حملات تکرار (replay attacks) توصیه می‌شود.
request.tsq
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورت عدم تعیین.
object_id
خط‌مشی (policy) مورد انتظار کلاینت از TSA برای ایجاد توکن برچسب زمانی. می‌توان از نمادگذاری نقطه‌ای OID یا نام‌های OID تعریف‌شده در فایل پیکربندی استفاده کرد. اگر خط‌مشی درخواست نشود، TSA از خط‌مشی پیش‌فرض خود استفاده می‌کند.
خروجی در قالب متنی خوانا به جای DER.

یک پاسخ برچسب زمانی (TimeStampResp) شامل وضعیت پاسخ و خود توکن برچسب زمانی (ContentInfo) است، البته اگر تولید توکن موفقیت‌آمیز بوده باشد. دستور -reply برای ایجاد یک پاسخ برچسب زمانی یا توکن برچسب زمانی بر اساس یک درخواست و چاپ پاسخ/توکن در قالب خوانا برای انسان است. اگر -token_out مشخص نشده باشد، خروجی همواره پاسخ برچسب زمانی (TimeStampResp) است، در غیر این صورت یک توکن برچسب زمانی (ContentInfo) خواهد بود.

certs_file.pem
مجموعه‌ای از گواهی‌های PEM که در صورت استفاده از گزینه -cert برای درخواست، علاوه بر گواهی امضاکننده در پاسخ درج خواهند شد. این فایل باید شامل زنجیره گواهی برای گواهی امضاکننده از صادرکننده آن به بالا باشد. دستور -reply زنجیره گواهی را به صورت خودکار نمی‌سازد.
configfile
مشخص کردن فایل پیکربندی جایگزین.
response.tsr
مشخص کردن پاسخ برچسب زمانی قبلاً ایجادشده (یا توکن برچسب زمانی، اگر -token_in نیز مشخص شده باشد) در قالب DER که در فایل خروجی نوشته خواهد شد. این گزینه نیازی به درخواست ندارد؛ برای نمونه جهت بررسی محتوای یک پاسخ یا توکن یا استخراج توکن برچسب زمانی از یک پاسخ کاربرد دارد. اگر ورودی یک توکن و خروجی یک پاسخ برچسب زمانی باشد، اطلاعات وضعیت پیش‌فرض "اعطاشده (granted)" به توکن اضافه می‌شود.
private.pem
کلید خصوصی امضاکننده TSA در قالب PEM. گزینه فایل پیکربندی signer_key را بازنویسی می‌کند.
response.tsr
پاسخ در این فایل نوشته می‌شود. قالب و محتوای فایل به سایر گزینه‌ها بستگی دارد (به -text و -token_out مراجعه کنید). حالت پیش‌فرض خروجی استاندارد است.
arg
منبع گذرواژه کلید.
object_id
خط‌مشی پیش‌فرض مورد استفاده برای پاسخ. می‌توان از نمادگذاری نقطه‌ای OID یا نام‌های OID تعریف‌شده در فایل پیکربندی استفاده کرد. اگر خط‌مشی درخواست نشود، TSA از خط‌مشی پیش‌فرض خود استفاده می‌کند.
request.tsq
فایل حاوی درخواست برچسب زمانی با کدگذاری DER.
tsa_section
بخش فایل پیکربندی حاوی تنظیمات مربوط به تولید پاسخ.
tsa_cert.pem
گواهی امضاکننده PEM مربوط به TSA. گواهی امضای TSA باید دقیقاً یک کاربرد کلید توسعه‌یافته به آن اختصاص داده شده باشد: timeStamping. همچنین این کاربرد کلید توسعه‌یافته باید حیاتی (critical) باشد، در غیر این صورت گواهی رد خواهد شد. متغیر signer_cert در فایل پیکربندی را بازنویسی می‌کند.
خروجی در قالب متنی خوانا به جای DER.
ورودی یک توکن برچسب زمانی کدگذاری‌شده با DER (ContentInfo) است به جای پاسخ برچسب زمانی (TimeStampResp).
خروجی یک توکن برچسب زمانی (ContentInfo) است به جای پاسخ برچسب زمانی (TimeStampResp).

دستور -verify برای بررسی و اعتبارسنجی این است که آیا پاسخ یا توکن برچسب زمانی معتبر بوده و با یک درخواست یا فایل داده خاص مطابقت دارد یا خیر. دستور -verify از فایل پیکربندی استفاده نمی‌کند.

trusted_certs.pem
فایل حاوی مجموعه‌ای از گواهی‌های معتمد خودامضاشده PEM برای CA. برای جزئیات بیشتر به verify مراجعه کنید. باید یا این گزینه یا -CApath مشخص شوند.
trusted_cert_path
پوشه حاوی گواهی‌های معتمد CA برای کلاینت. برای جزئیات بیشتر به verify مراجعه کنید. باید یا این گزینه یا -CAfile مشخص شوند.
file_to_hash
پاسخ یا توکن باید در برابر file_to_hash اعتبارسنجی شود. فایل با الگوریتم خلاصه پیام مشخص‌شده در توکن هش می‌شود. گزینه‌های -digest و -queryfile نباید همراه با این گزینه مشخص شوند.
digest_bytes
پاسخ یا توکن باید در برابر خلاصه پیام مشخص‌شده با این گزینه اعتبارسنجی شود. تعداد بایت‌ها باید با الگوریتم خلاصه پیام مشخص‌شده در توکن مطابقت داشته باشد. گزینه‌های -data و -queryfile نباید همراه با این گزینه مشخص شوند.
response.tsr
پاسخ برچسب زمانی که باید اعتبارسنجی شود، در قالب DER. این گزینه اجباری است.
request.tsq
درخواست اصلی برچسب زمانی در قالب DER. گزینه‌های -data و -digest نباید همراه با این گزینه مشخص شوند.
ورودی یک توکن برچسب زمانی با کدگذاری DER (ContentInfo) است به جای پاسخ برچسب زمانی (TimeStampResp).
cert_file.pem
گواهی‌های PEM غیرمعتمد اضافی که ممکن است هنگام ساخت زنجیره گواهی برای گواهی امضای TSA مورد نیاز باشند. این فایل باید شامل گواهی امضای TSA و تمام گواهی‌های میانی CA باشد مگر اینکه پاسخ خود شامل آن‌ها باشد.

گزینه‌های مشخص‌شده در خط فرمان همواره تنظیمات موجود در فایل پیکربندی را بازنویسی می‌کنند:

section, default_tsa
این بخش اصلی است و نام بخش دیگری را مشخص می‌کند که شامل تمام گزینه‌های مربوط به گزینه -reply است. این بخش را می‌توان با سوئیچ خط فرمان -section بازنویسی کرد.
برای توضیحات به ca مراجعه کنید.
برای توضیحات به ca مراجعه کنید.
فایل حاوی شماره سریال هگزادسیمال مربوط به آخرین پاسخ برچسب زمانی ایجادشده. این عدد برای هر پاسخ ۱ واحد افزایش می‌یابد. اگر این فایل در زمان تولید پاسخ وجود نداشته باشد، یک فایل جدید با شماره سریال ۱ ایجاد می‌شود. این پارامتر اجباری است.
گواهی امضای TSA در قالب PEM. مشابه گزینه خط فرمان -signer.
مجموعه‌ای از گواهی‌های کدگذاری‌شده با PEM که باید در پاسخ گنجانده شوند. مشابه گزینه خط فرمان -chain.
کلید خصوصی TSA در قالب PEM. مشابه گزینه خط فرمان -inkey.
خط‌مشی پیش‌فرض مورد استفاده زمانی که درخواست هیچ خط‌مشی خاصی را الزامی نکرده باشد. مشابه گزینه خط فرمان -policy.
فهرستی جداشده با کاما از خط‌مشی‌هایی که برای TSA نیز قابل قبول هستند و تنها در صورتی استفاده می‌شوند که درخواست صراحتاً یکی از آن‌ها را مشخص کند.
فهرست الگوریتم‌های خلاصه پیام که TSA می‌پذیرد. حداقل یک الگوریتم باید مشخص شود. این پارامتر اجباری است.
دقت منبع زمان TSA بر حسب ثانیه، میلی‌ثانیه و میکروثانیه. برای نمونه secs:1, millisecs:500, microsecs:100. اگر هر یک از مولفه‌ها وجود نداشته باشد، مقدار صفر برای آن فیلد در نظر گرفته می‌شود.
حداکثر تعداد ارقام اعشار ثانیه که باید در فیلد زمان درج شوند. صفرهای پایانی باید از زمان حذف شوند، بنابراین ممکن است در عمل ارقام کمتری وجود داشته باشد یا اصلاً اعشار ثانیه نباشد. حداکثر مقدار ۶ است؛ پیش‌فرض ۰ است.
اگر این گزینه yes باشد، پاسخ‌های تولیدشده توسط این TSA همیشه قابل مرتب‌سازی هستند، حتی اگر اختلاف زمانی میان دو پاسخ کمتر از مجموع دقت‌های آن‌ها باشد. پیش‌فرض no است.
اگر نام موضوع TSA باید در فیلد نام TSA در پاسخ درج شود، این گزینه را بر روی yes تنظیم کنید. پیش‌فرض no است.
اشیاء SignedData ایجادشده توسط TSA همیشه شامل شناسه گواهیِ گواهی امضاکننده در یک ویژگی امضاشده هستند (RFC 2634 را ببینید). اگر این گزینه بر روی yes تنظیم شده باشد و متغیر certs یا گزینه -chain مشخص شده باشند، آن‌گاه شناسه‌های گواهی زنجیره نیز در ویژگی امضاشده SigningCertificate درج خواهند شد. اگر این متغیر بر روی no تنظیم شده باشد، تنها شناسه گواهی امضاکننده درج می‌شود. پیش‌فرض no است.

openssl verify
[-CAfile file] [-CApath directory] [-check_ss_sig] [-CRLfile file] [-crl_check] [-crl_check_all] [-explicit_policy] [-extended_crl] [-help] [-ignore_critical] [-inhibit_any] [-inhibit_map] [-issuer_checks] [-legacy_verify] [-policy_check] [-purpose purpose] [-trusted file] [-untrusted file] [-verbose] [-x509_strict] [certificates]

دستور verify زنجیره‌های گواهی را اعتبارسنجی می‌کند.

گزینه‌ها به شرح زیر هستند:

file
یک file از گواهی‌های معتمد. این file باید شامل چندین گواهی در قالب PEM باشد که به یکدیگر الحاق شده‌اند.
directory
یک directory از گواهی‌های معتمد. گواهی‌ها یا پیوندهای نمادین به آن‌ها باید نام‌هایی به فرم hash.0 داشته باشند، که در آن hash نام موضوع هش‌شده گواهی است (گزینه -hash از ابزار x509 را ببینید).
اعتبارسنجی امضا روی CA ریشه خودامضاشده. این گزینه به طور پیش‌فرض غیرفعال است زیرا امنیت بیشتری ایجاد نمی‌کند.
file
فایل file باید شامل یک یا چند CRL در قالب PEM باشد.
بررسی اعتبار گواهی موجودیت نهایی با تلاش برای جستجوی یک CRL معتبر. اگر CRL معتبری یافت نشود، خطایی رخ می‌دهد.
بررسی اعتبار تمام گواهی‌های موجود در زنجیره با تلاش برای یافتن CRLهای معتبر.
تنظیم متغیر خط‌مشی require-explicit-policy (طبق RFC 3280).
فعال‌سازی ویژگی‌های توسعه‌یافته CRL مانند CRLهای غیرمستقیم و کلیدهای امضای جایگزین CRL.
چاپ پیام نحوه استفاده.
نادیده گرفتن افزونه‌های حیاتی به جای رد کردن گواهی.
تنظیم متغیر خط‌مشی inhibit-any-policy (طبق RFC 3280).
تنظیم متغیر خط‌مشی inhibit-policy-mapping (طبق RFC 3280).
چاپ اطلاعات تشخیصی مربوط به جستجوهای گواهی صادرکننده برای گواهی جاری که نشان می‌دهد چرا هر گواهی صادرکننده نامزد رد شده است. وجود پیام‌های رد شدن لزوماً به این معنا نیست که مشکلی وجود دارد: در طول فرآیند عادی اعتبارسنجی ممکن است چندین مورد رد شدن رخ دهد.
استفاده از کد موروثی اعتبارسنجی زنجیره گواهی X.509.
فعال‌سازی پردازش خط‌مشی گواهی.
purpose
کاربرد مورد نظر برای گواهی. بدون این گزینه هیچ اعتبارسنجی زنجیره‌ای انجام نخواهد شد. کاربردهای پذیرفته‌شده فعلی عبارتند از: sslclient ، sslserver ، nssslserver ، smimesign ، smimeencrypt ، crlsign ، any و ocsphelper.
file
یک file از گواهی‌های معتمد. این file باید شامل چندین گواهی باشد.
file
یک file از گواهی‌های غیرمعتمد. این file باید شامل چندین گواهی باشد.
چاپ اطلاعات بیشتر درباره عملیات در حال انجام.
غیرفعال کردن راهکارهای ترمیمی برای گواهی‌های خراب که جهت تطابق سخت‌گیرانه با X.509 باید غیرفعال شوند.
certificates
یک یا چند certificates در قالب PEM برای اعتبارسنجی. اگر هیچ فایل گواهی‌ای درج نشود، تلاشی برای خواندن یک گواهی از ورودی استاندارد انجام می‌شود. اگر نام فایل اولین گواهی با خط تیره آغاز شود، از یک خط تیره تنها برای نشانه‌گذاری آخرین گزینه استفاده کنید.

برنامه verify از همان توابعی استفاده می‌کند که در اعتبارسنجی داخلی SSL و S/MIME به کار می‌روند، با یک تفاوت اساسی: تا جای ممکن تلاشی برای ادامه کار پس از وقوع خطا انجام می‌شود، در حالی که معمولاً عملیات اعتبارسنجی با اولین خطا متوقف می‌شود. این کار اجازه می‌دهد تا تمام مشکلات یک زنجیره گواهی مشخص و شناسایی شوند.

عملیات اعتبارسنجی شامل چندین مرحله جداگانه است. ابتدا یک زنجیره گواهی از گواهی ارائه‌شده آغاز شده و به CA ریشه ختم می‌شود. اگر نتوان کل زنجیره را ساخت، یک خطا رخ داده است. زنجیره با جستجوی گواهی صادرکننده برای گواهی جاری ساخته می‌شود. اگر گواهی‌ای پیدا شود که صادرکننده خودش باشد، فرض می‌شود که CA ریشه است.

تمام گواهی‌هایی که نام موضوع آن‌ها با نام صادرکننده گواهی جاری مطابقت دارد، تحت آزمون‌های بعدی قرار می‌گیرند. مولفه‌های مربوط به شناسه کلید مرجع (authority key identifier) در گواهی جاری (در صورت وجود) باید با شناسه کلید موضوع (در صورت وجود) و صادرکننده و شماره سریال صادرکننده نامزد مطابقت داشته باشند؛ علاوه بر این، افزونه keyUsage در صادرکننده نامزد (در صورت وجود) باید اجازه امضای گواهی را بدهد.

جستجو ابتدا در فهرست گواهی‌های غیرمعتمد انجام می‌شود و اگر تطابقی یافت نشود، سایر جستجوها از میان گواهی‌های معتمد صورت می‌گیرد. مرجع صدور گواهی ریشه (Root CA) همواره در فهرست گواهی‌های معتمد جستجو می‌شود: اگر گواهی مورد اعتبارسنجی یک گواهی ریشه باشد، باید یک تطابق دقیق در فهرست معتمد پیدا شود.

عملیات دوم بررسی افزونه‌های تمام گواهی‌های غیرمعتمد از نظر سازگاری با کاربرد ارائه‌شده است. اگر گزینه -purpose درج نشده باشد، هیچ بررسی‌ای انجام نمی‌شود. گواهی ارائه‌شده یا "برگ (leaf)" باید افزونه‌هایی سازگار با کاربرد ارائه‌شده داشته باشد و سایر گواهی‌ها نیز باید گواهی‌های معتبر CA باشند. افزونه‌های دقیق مورد نیاز با جزئیات بیشتر در بخش X509 در ادامه شرح داده شده‌اند.

عملیات سوم بررسی تنظیمات اعتماد روی CA ریشه است. CA ریشه باید برای کاربرد ارائه‌شده معتمد باشد. گواهی بدون تنظیمات اعتماد برای همه کاربردها معتبر در نظر گرفته می‌شود.

عملیات نهایی بررسی اعتبار زمانی زنجیره گواهی است. دوره اعتبار در برابر زمان جاری سیستم و تاریخ‌های notBefore و notAfter در گواهی بررسی می‌شود. امضاهای گواهی نیز در این مرحله بررسی می‌شوند.

اگر تمام عملیات با موفقیت انجام شوند، گواهی معتبر شناخته می‌شود. اگر هر یک از عملیات شکست بخورد، گواهی معتبر نخواهد بود. هنگامی که عملیات اعتبارسنجی شکست می‌خورد، پیام‌های خروجی ممکن است تا حدی مبهم باشند. فرم کلی پیام خطا به صورت زیر است:

server.pem: /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024-bit)
error 24 at 1 depth lookup:invalid CA certificate

سطر اول شامل نام گواهی در حال اعتبارسنجی و به دنبال آن نام موضوع گواهی است. سطر دوم شامل شماره خطا همان‌طور که توسط ثابت‌های X509_V_ERR_* در فایل <openssl/x509_vfy.h> تعریف شده است، پیام خطای مرتبط مستندشده در X509_STORE_CTX_get_error(3) و عمق خطا می‌باشد. عمق (depth)، شماره گواهی در حال اعتبارسنجی هنگام شناسایی مشکل است که با صفر برای خود گواهی تحت اعتبارسنجی آغاز شده، سپس ۱ برای CA امضاکننده گواهی و به همین ترتیب ادامه می‌یابد.

openssl version [-abdfpv]

دستور version برای چاپ اطلاعات نسخه درباره openssl استفاده می‌شود.

گزینه‌ها به شرح زیر هستند:

تمامی اطلاعات: این گزینه معادل تنظیم تمام فلگ‌های دیگر است.
تاریخی که نسخه جاری openssl ساخته شده است.
تنظیم متغیر OPENSSLDIR.
فلگ‌های کامپایل.
تنظیم پلتفرم.
نسخه جاری openssl.

openssl x509
[-addreject arg] [-addtrust arg] [-alias] [-CA file] [-CAcreateserial] [-CAform der | pem] [-CAkey file] [-CAkeyform der | pem] [-CAserial file] [-certopt option] [-checkend arg] [-clrext] [-clrreject] [-clrtrust] [-dates] [-days arg] [-email] [-enddate] [-extensions section] [-extfile file] [-fingerprint] [-force_pubkey key] [-hash] [-in file] [-inform der | net | pem] [-issuer] [-issuer_hash] [-issuer_hash_old] [-keyform der | pem] [-md5 | -sha1] [-modulus] [-multivalue-rdn] [-nameopt option] [-new] [-next_serial] [-noout] [-ocsp_uri] [-ocspid] [-out file] [-outform der | net | pem] [-passin arg] [-pubkey] [-purpose] [-req] [-serial] [-set_issuer name] [-set_serial n] [-set_subject name] [-setalias arg] [-signkey file] [-sigopt nm:v] [-startdate] [-subject] [-subject_hash] [-subject_hash_old] [-text] [-trustout] [-utf8] [-x509toreq]

دستور x509 یک ابزار همه‌منظوره برای کار با گواهی‌ها است. می‌توان از آن برای نمایش اطلاعات گواهی، تبدیل گواهی‌ها به قالب‌های مختلف، امضای درخواست‌های گواهی به عنوان یک "CA کوچک" یا ویرایش تنظیمات اعتماد گواهی استفاده کرد.

موارد زیر گزینه‌های ورودی، خروجی و عمومی x509 هستند:

file
فایل ورودی برای خواندن، یا ورودی استاندارد در صورت مشخص نشدن. این گزینه نمی‌تواند همراه با -new استفاده شود.
der | |
قالب ورودی. به طور معمول، دستور انتظار یک گواهی X.509 را دارد، اما اگر گزینه‌های دیگری مانند -in یا -req حاضر باشند، ممکن است این حالت تغییر کند.
|
خلاصه پیام مورد استفاده. این بر روی هر گزینه امضا یا نمایشی که از یک خلاصه پیام استفاده می‌کند اثر می‌گذارد، مانند گزینه‌های -fingerprint -، -signkey و -CA. در صورت مشخص نشدن، از MD5 استفاده می‌شود. برای کلیدهای DSA همیشه از SHA1 استفاده می‌شود.
file
فایل خروجی برای نوشتن، یا خروجی استاندارد در صورتی که فایلی مشخص نشود.
der | |
قالب خروجی.
arg
منبع گذرواژه کلید.

موارد زیر گزینه‌های نمایش x509 هستند:

option
سفارشی‌سازی قالب خروجی مورد استفاده با -text -، خواه با استفاده از فهرستی از گزینه‌های جداشده با کاما یا با مشخص کردن چندباره -certopt. رفتار پیش‌فرض چاپ تمامی فیلدها است. گزینه‌ها به شرح زیر هستند:
معادل no_issuer ، no_pubkey ، no_header ، no_version ، no_sigdump و no_signame.
معادل عدم استفاده از هیچ گزینه خروجی.
چاپ افزونه‌های پشتیبانی‌نشده گواهی.
دامپ هگزادسیمال افزونه‌های پشتیبانی‌نشده.
چاپ پیام خطا برای افزونه‌های پشتیبانی‌نشده گواهی.
تجزیه ASN.1 افزونه‌های پشتیبانی‌نشده.
عدم چاپ اطلاعات اعتماد گواهی.
عدم چاپ افزونه‌های X509V3.
عدم چاپ اطلاعات سرایند (Certificate و Data).
عدم چاپ نام صادرکننده.
عدم چاپ کلید عمومی.
عدم چاپ شماره سریال.
عدم ارائه دامپ هگزادسیمال از امضای گواهی.
عدم چاپ الگوریتم امضای استفاده‌شده.
عدم چاپ نام موضوع (subject).
عدم چاپ فیلدهای اعتبار notBefore و notAfter.
عدم چاپ شماره نسخه.
چاپ تاریخ شروع و انقضای یک گواهی.
خروجی دادن نشانی‌های ایمیل، در صورت وجود.
چاپ تاریخ انقضای گواهی؛ یعنی تاریخ notAfter.
چاپ خلاصه (digest) نسخه با کدگذاری DER از کل گواهی.
مترادفی برای -subject_hash.
چاپ نام صادرکننده (issuer).
چاپ هش نام صادرکننده گواهی.
چاپ هش نام صادرکننده گواهی با استفاده از الگوریتم قدیمی‌تر که توسط نسخه‌های openssl پیش از 1.0.0 استفاده می‌شد.
چاپ مقدار مدول (modulus) کلید عمومی موجود در گواهی.
این گزینه موجب می‌شود آرگومان -subj با پشتیبانی کامل از RDNهای چندمقداری تفسیر شود، به عنوان مثال "/DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe". اگر -multivalue-rdn استفاده نشود، مقدار UID روی "123456+CN=John Doe" تنظیم می‌شود.
option
سفارشی‌سازی نحوه نمایش نام‌های موضوع یا صادرکننده، خواه با استفاده از فهرستی از گزینه‌های جداشده با کاما یا با مشخص کردن چندباره -nameopt. رفتار پیش‌فرض استفاده از قالب compat است. گزینه‌ها که می‌توان قبل از آن‌ها خط تیره قرار داد تا غیرفعال شوند، به شرح زیر هستند:
تراز کردن مقادیر فیلدها برای خروجی خواناتر. فقط همراه با sep_multiline قابل استفاده است.
استفاده از قالب قدیمی، معادل مشخص نکردن هیچ گزینه‌ای.
معکوس کردن فیلدهای DN، طبق الزامات RFC 2253. به عنوان یک اثر جانبی، ترتیب چندین AVA را نیز معکوس می‌کند.
دامپ تمام فیلدها. هنگام استفاده با dump_der ، امکان تعیین بدون ابهام کدگذاری DER ساختار را فراهم می‌کند.
هر فیلدی که نیاز به دامپ هگزادسیمال داشته باشد با استفاده از کدگذاری DER فیلد دامپ می‌شود. در غیر این صورت تنها بایت‌های محتوا نمایش داده خواهند شد. هر دو گزینه از قالب RFC 2253 #XXXX... استفاده می‌کنند.
دامپ انواع رشته غیر نویسه‌ای (به عنوان مثال OCTET STRING)؛ معمولاً انواع رشته‌های غیر نویسه‌ای به گونه‌ای نمایش داده می‌شوند که گویی هر بایت محتوا نشان‌دهنده یک نویسه منفرد است.
دامپ هر فیلدی که OID آن توسط openssl شناخته شده نیست.
اسکیپ کردن نویسه‌های "ویژه" مورد نیاز RFC 2253 در یک فیلد، یعنی “ ,+"<>;”. علاوه بر این، ‘#’ در ابتدای رشته و نویسه فاصله در ابتدا یا انتهای یک رشته اسکیپ می‌شوند.
اسکیپ کردن نویسه‌های کنترلی؛ یعنی نویسه‌هایی با مقادیر اسکی کمتر از 0x20 (فاصله) و نویسه حذف (0x7f). آن‌ها با استفاده از نمادگذاری RFC 2253 \XX اسکیپ می‌شوند (که در آن XX دو رقم هگزادسیمال نشان‌دهنده مقدار نویسه هستند).
اسکیپ کردن نویسه‌هایی با بیت پرارزش (MSB) تنظیم‌شده؛ یعنی با مقادیر اسکی بزرگتر از ۱۲۷.
قالب چندخطی. معادل esc_ctrl ، esc_msb ، sep_multiline ، space_eq ، lname و align.
تلاش نکردن برای تفسیر نویسه‌های چندبایتی. به این معنی که بایت‌های محتوا صرفاً طوری دامپ می‌شوند که انگار یک بایت نمایانگر یک نویسه است. این گزینه برای اهداف عیب‌یابی مفید است اما منجر به خروجی نسبتاً عجیبی می‌شود.
, sname, lname, oid
تغییر نحوه نمایش نام فیلد: nofname فیلد را اصلاً نمایش نمی‌دهد؛ sname از شکل نام کوتاه استفاده می‌کند (برای مثال CN برای commonName )؛ lname از شکل طولانی استفاده می‌کند. oid شناسه OID را به شکل عددی نشان می‌دهد و برای اهداف تشخیصی مفید است.
قالب تک‌خطی که خواناتر از RFC2253 است. معادل esc_2253 ، esc_ctrl ، esc_msb ، utf8 ، dump_nostr ، dump_der ، use_quote ، sep_comma_plus_space ، space_eq و sname.
نمایش نام‌ها سازگار با RFC 2253. معادل esc_2253 ، esc_ctrl ، esc_msb ، utf8 ، dump_nostr ، dump_unknown ، dump_der ، sep_comma_plus ، dn_rev و sname.
, sep_comma_plus_space, sep_semi_plus_space, sep_multiline
تعیین جداکننده‌های فیلد: نویسه اول میان RDNها و دومی میان چندین AVA است (استفاده از چندین AVA بسیار نادر بوده و توصیه نمی‌شود). گزینه‌هایی که به "space" ختم می‌شوند، علاوه بر این یک فاصله پس از جداکننده قرار می‌دهند تا خواناتر شود. sep_multiline از نویسه خط جدید برای جداکننده RDN و از یک ‘+’ به همراه فاصله برای جداکننده AVA استفاده می‌کند، و همچنین فیلدها را چهار نویسه تورفتگی می‌دهد. اگر هیچ جداکننده فیلدی مشخص نشده باشد، sep_comma_plus_space به عنوان پیش‌فرض استفاده می‌شود.
نمایش نوع رشته نویسه‌ای ASN.1. نوع قبل از محتوای فیلد قرار می‌گیرد. برای مثال "BMPSTRING: Hello World".
قرار دادن فاصله در اطراف نویسه ‘=’ که پس از نام فیلد می‌آید.
اسکیپ کردن برخی نویسه‌ها با قرار دادن کل رشته در نویسه‌های ‘"’. بدون این گزینه، تمام اسکیپ کردن‌ها با نویسه ‘\’ انجام می‌شود.
ابتدا تبدیل تمام رشته‌ها به قالب UTF8، طبق الزامات RFC 2253. در ترمینال‌های سازگار با UTF8، استفاده از این گزینه (و تنظیم نکردن esc_msb) ممکن است منجر به نمایش صحیح نویسه‌های چندبایتی شود. معمولاً نویسه‌های چندبایتی بزرگتر از 0xff با استفاده از قالب \UXXXX برای ۱۶ بیتی و \WXXXXXXXX برای ۳۲ بیتی نشان داده می‌شوند، و هر رشته UTF8String ابتدا به شکل نویسه‌ای خود تبدیل می‌شود.
چاپ شماره سریال بعدی.
خروجی ندادن نسخه کدگذاری‌شده درخواست.
چاپ نشانی‌های پاسخ‌دهنده OCSP، در صورت وجود.
چاپ مقادیر هش OCSP برای نام موضوع و کلید عمومی.
چاپ کلید عمومی.
چاپ شماره سریال گواهی.
nm:v
ارسال گزینه‌ها به الگوریتم امضا در حین عملیات امضا یا صدور گواهی. نام‌ها و مقادیر این گزینه‌ها وابسته به الگوریتم هستند.
چاپ تاریخ شروع گواهی؛ یعنی تاریخ notBefore.
چاپ نام موضوع (subject).
چاپ هش نام موضوع گواهی. این مقدار در openssl برای تشکیل یک شاخص استفاده می‌شود تا امکان جستجوی گواهی‌ها در یک پوشه بر اساس نام موضوع فراهم شود.
چاپ هش نام موضوع گواهی با استفاده از الگوریتم قدیمی‌تر که توسط نسخه‌های openssl پیش از 1.0.0 استفاده می‌شد.
چاپ کامل گواهی در قالب متنی.

یک گواهی مورد اعتماد گواهی‌ای است که چندین بخش اطلاعات اضافی به آن ضمیمه شده است، مانند کاربردهای مجاز و ممنوع گواهی و یک نام مستعار. هنگام اعتبارسنجی یک گواهی، حداقل یک گواهی باید مورد اعتماد باشد. به طور پیش‌فرض، یک گواهی معتمد باید به صورت محلی ذخیره شده و یک مرجع صدور ریشه (root CA) باشد. موارد زیر گزینه‌های تنظیمات اعتماد x509 هستند:

arg
افزودن یک کاربرد ممنوع. همان مقادیر گزینه -addtrust را می‌پذیرد.
arg
افزودن یک کاربرد گواهی معتمد. هر نام شیئی می‌تواند در اینجا استفاده شود، اما در حال حاضر فقط clientAuth (کاربرد کلاینت SSL)، serverAuth (کاربرد سرور SSL) و emailProtection (ایمیل S/MIME) استفاده می‌شوند.
خروجی دادن نام مستعار گواهی.
پاک کردن تمام کاربردهای ممنوع یا ردشده گواهی.
پاک کردن تمام کاربردهای مجاز یا معتمد گواهی.
انجام آزمون‌ها روی افزونه‌های گواهی. همان کد هنگام اعتبارسنجی گواهی‌های غیرمعتمد در زنجیره‌ها استفاده می‌شود، بنابراین اگر یک زنجیره توسط کد اعتبارسنجی رد شود، این بخش مفید است.

پرچم CA در افزونه basicConstraints برای تعیین این که آیا گواهی می‌تواند به عنوان یک CA استفاده شود یا خیر به کار می‌رود. اگر پرچم CA برابر با true باشد، یک CA است؛ اگر پرچم CA برابر با false باشد، CA نیست. همه CAها باید پرچم CA را روی true تنظیم کرده باشند.

اگر افزونه basicConstraints غایب باشد، گواهی یک CA احتمالی در نظر گرفته می‌شود؛ سایر افزونه‌ها با توجه به کاربرد مورد نظر گواهی بررسی می‌شوند. در این حالت یک هشدار داده می‌شود زیرا واقعاً نباید گواهی به عنوان یک CA در نظر گرفته شود. با این حال، برای دور زدن مشکل برخی نرم‌افزارهای معیوب، به آن اجازه داده می‌شود که یک CA باشد.

اگر گواهی یک گواهی V1 باشد (و در نتیجه هیچ افزونه‌ای نداشته باشد) و خودامضا باشد، فرض می‌شود که یک CA است اما باز هم یک هشدار داده می‌شود. این کار برای دور زدن مشکل ریشه‌های Verisign است که گواهی‌های خودامضای V1 هستند.

اگر افزونه keyUsage حاضر باشد، محدودیت‌های بیشتری بر کاربردهای گواهی اعمال می‌شود. اگر افزونه keyUsage حاضر باشد، گواهی CA باید بیت keyCertSign را تنظیم کرده باشد.

افزونه کاربرد کلید گسترش‌یافته (extended key usage) محدودیت‌های بیشتری را بر کاربردهای گواهی اعمال می‌کند. اگر این افزونه وجود داشته باشد، چه بحرانی باشد و چه نباشد، کلید تنها برای اهداف مشخص‌شده قابل استفاده است.

شرح کامل هر آزمون در زیر آورده شده است. توضیحات مربوط به basicConstraints و keyUsage و گواهی‌های V1 در بالا برای تمام گواهی‌های CA اعمال می‌شود.

SSL Client
افزونه extended key usage باید غایب باشد یا OID احراز هویت وب کلاینت را در بر گیرد. keyUsage باید غایب باشد یا باید بیت digitalSignature آن تنظیم شده باشد. نوع گواهی Netscape باید غایب باشد یا بیت SSL client آن تنظیم شده باشد.
SSL Client CA
افزونه extended key usage باید غایب باشد یا شامل OID احراز هویت وب کلاینت باشد. نوع گواهی Netscape باید غایب باشد یا بیت SSL CA آن تنظیم شده باشد: این مورد به عنوان راهکاری برای زمان غایب بودن افزونه basicConstraints استفاده می‌شود.
SSL Server
افزونه extended key usage باید غایب باشد یا شامل احراز هویت وب سرور و/یا یکی از OIDهای SGC باشد. keyUsage باید غایب باشد یا بیت digitalSignature ، بیت keyEncipherment یا هر دو بیت آن تنظیم شده باشد. نوع گواهی Netscape باید غایب باشد یا بیت SSL server آن تنظیم شده باشد.
SSL Server CA
افزونه extended key usage باید غایب باشد یا شامل احراز هویت وب سرور و/یا یکی از OIDهای SGC باشد. نوع گواهی Netscape باید غایب باشد یا بیت SSL CA آن باید تنظیم شده باشد: این به عنوان یک راهکار در صورت عدم وجود افزونه basicConstraints استفاده می‌شود.
Netscape SSL Server
برای اتصال کلاینت‌های Netscape SSL به یک سرور SSL؛ در صورت وجود افزونه keyUsage ، باید بیت keyEncipherment آن تنظیم شده باشد. این حالت همیشه معتبر نیست زیرا برخی از مجموعه‌های رمزنگاری از کلید برای امضای دیجیتال استفاده می‌کنند. در غیر این صورت همانند یک سرور معمولی SSL است.
Common S/MIME Client Tests
افزونه extended key usage باید غایب باشد یا شامل OID حفاظت از ایمیل باشد. نوع گواهی Netscape باید غایب باشد یا باید بیت S/MIME آن تنظیم شده باشد. اگر بیت S/MIME در نوع گواهی Netscape تنظیم نشده باشد، بیت SSL client به عنوان جایگزین پذیرفته می‌شود اما یک هشدار نمایش داده می‌شود: این به این دلیل است که برخی از گواهی‌های Verisign بیت S/MIME را تنظیم نمی‌کنند.
S/MIME Signing
علاوه بر آزمون‌های متداول کلاینت S/MIME، در صورت وجود افزونه keyUsage ، بیت digitalSignature باید تنظیم شده باشد.
S/MIME Encryption
علاوه بر آزمون‌های متداول S/MIME، در صورت وجود افزونه keyUsage ، بیت keyEncipherment باید تنظیم شده باشد.
S/MIME CA
افزونه extended key usage باید غایب باشد یا شامل OID حفاظت از ایمیل باشد. نوع گواهی Netscape باید غایب باشد یا باید بیت S/MIME CA آن تنظیم شده باشد: این مورد به عنوان راهکاری برای مواقع غیبت افزونه basicConstraints استفاده می‌شود.
CRL Signing
افزونه keyUsage باید غایب باشد یا بیت امضای CRL آن تنظیم شده باشد.
CRL Signing CA
آزمون‌های معمول CA اعمال می‌شوند، به جز اینکه افزونه basicConstraints باید حضور داشته باشد.
arg
تنظیم نام مستعار گواهی، که امکان ارجاع به گواهی با استفاده از یک نام مستعار مانند "Steve's Certificate" را فراهم می‌سازد.
خروجی دادن یک گواهی معتمد (حالت پیش‌فرض در صورت تغییر هرگونه تنظیمات اعتماد). یک گواهی معمولی یا معتمد می‌تواند به عنوان ورودی داده شود، اما به طور پیش‌فرض یک گواهی معمولی در خروجی داده شده و هرگونه تنظیمات اعتماد کنار گذاشته می‌شود.

ابزار x509 می‌تواند برای امضای گواهی‌ها و درخواست‌ها استفاده شود: بنابراین می‌تواند مانند یک CA کوچک رفتار کند. موارد زیر گزینه‌های امضای x509 هستند:

file
گواهی CA برای استفاده در امضا. هنگامی که این گزینه حاضر باشد، x509 مانند یک CA کوچک رفتار می‌کند. فایل ورودی توسط CA با استفاده از این گزینه امضا می‌شود؛ یعنی نام صادرکننده آن بر روی نام موضوع CA تنظیم شده و با استفاده از کلید خصوصی CA به صورت دیجیتال امضا می‌شود.

این گزینه معمولاً با گزینه -req ترکیب می‌شود. بدون گزینه -req -، ورودی گواهی‌ای است که باید خودامضا باشد.

ایجاد فایل شماره سریال CA در صورت عدم وجود آن به جای ایجاد خطا. فایل حاوی شماره سریال ‘02’ خواهد بود و گواهی در حال امضا شماره سریال ‘1’ را خواهد داشت.
der |
قالب فایل گواهی CA. پیش‌فرض pem است.
file
تنظیم کلید خصوصی CA برای امضای یک گواهی با آن. در غیر این صورت فرض می‌شود که کلید خصوصی CA در فایل گواهی CA موجود است.
der |
قالب کلید خصوصی CA. پیش‌فرض pem است.
file
استفاده از شماره سریال موجود در file برای امضای یک گواهی. فایل باید شامل یک سطر با تعداد زوجی از ارقام هگزادسیمال با شماره سریال مورد استفاده باشد. پس از هر بار استفاده، شماره سریال افزایش یافته و دوباره در فایل نوشته می‌شود.

نام فایل پیش‌فرض شامل نام پایه فایل گواهی CA با پسوند .srl است. برای مثال اگر فایل گواهی CA با نام mycacert.pem باشد، انتظار می‌رود فایلی با نام mycacert.srl پیدا کند.

arg
بررسی این که آیا گواهی در طول arg ثانیه آینده منقضی می‌شود یا خیر. در صورت انقضا با مقدار خروجی 1 خارج می‌شود؛ در غیر این صورت با مقدار 0 خارج می‌شود.
حذف تمام افزونه‌ها از یک گواهی. این گزینه زمانی استفاده می‌شود که یک گواهی از روی گواهی دیگری ایجاد می‌شود (برای مثال با گزینه‌های -signkey یا -CA -). به طور معمول، تمام افزونه‌ها حفظ می‌شوند.
arg
تعداد روزهایی که گواهی باید معتبر باشد. پیش‌فرض ۳۰ روز است.
section
بخشی که افزونه‌های گواهی از آن اضافه می‌شوند. اگر این گزینه مشخص نشده باشد، افزونه‌ها باید در بخش بدون نام (پیش‌فرض) موجود باشند یا بخش پیش‌فرض باید حاوی متغیری به نام "extensions" باشد که شامل نام بخش مورد استفاده است.
file
فایل حاوی افزونه‌های گواهی برای استفاده. در صورت مشخص نشدن، هیچ افزونه‌ای به گواهی اضافه نخواهد شد.
key
تنظیم کلید عمومی گواهی بر روی کلید عمومی موجود در key.
der |
قالب فایل کلید استفاده‌شده در گزینه‌های -force_pubkey و -signkey.
تولید یک گواهی جدید با استفاده از موضوع مشخص‌شده توسط -set_subject و امضاشده توسط -signkey. اگر هیچ کلید عمومی با -force_pubkey ارائه نشود، گواهی حاصل خودامضا خواهد بود. این گزینه نمی‌تواند همراه با -in یا -req استفاده شود.
-req
انتظار یک درخواست گواهی در ورودی به جای یک گواهی. این گزینه نمی‌تواند همراه با -new استفاده شود.
name
نام صادرکننده مورد استفاده. name باید به قالب /type0=value0/type1=value1/type2=... باشد؛ نویسه‌ها را می‌توان با ‘\’ (بک‌اسلش) اسکیپ کرد؛ هیچ فاصله‌ای نادیده گرفته نمی‌شود.
n
شماره سریال مورد استفاده. این گزینه را می‌توان همراه با هر یک از گزینه‌های -signkey یا -CA استفاده کرد. اگر همراه با گزینه -CA استفاده شود، فایل شماره سریال (همان‌طور که توسط گزینه‌های -CAserial یا -CAcreateserial مشخص شده) استفاده نخواهد شد.

شماره سریال می‌تواند دهدهی یا هگزادسیمال (در صورت پیشوند داشتن با ‘0x’) باشد. شماره سریال‌های منفی نیز می‌توانند مشخص شوند اما استفاده از آن‌ها توصیه نمی‌شود.

name
نام موضوع مورد استفاده. name باید به قالب /type0=value0/type1=value1/type2=... باشد؛ نویسه‌ها را می‌توان با ‘\’ (بک‌اسلش) اسکیپ کرد؛ هیچ فاصله‌ای نادیده گرفته نمی‌شود.
file
خودامضا کردن file با استفاده از کلید خصوصی ارائه‌شده.

اگر فایل ورودی یک گواهی باشد، نام صادرکننده را روی نام موضوع تنظیم می‌کند (یعنی آن را خودامضا می‌کند)، کلید عمومی را به مقدار ارائه‌شده تغییر می‌دهد، و تاریخ‌های شروع و پایان را تغییر می‌دهد. تاریخ شروع روی زمان کنونی تنظیم می‌شود و تاریخ پایان روی مقداری که توسط گزینه -days مشخص شده تنظیم می‌گردد. تمام افزونه‌های گواهی حفظ می‌شوند مگر اینکه گزینه -clrext ارائه شده باشد.

اگر ورودی یک درخواست گواهی باشد، یک گواهی خودامضا با استفاده از کلید خصوصی ارائه‌شده و با استفاده از نام موضوع موجود در درخواست ایجاد می‌شود.

تفسیر مقادیر فیلدهای خوانده‌شده از ترمینال یا به‌دست‌آمده از فایل پیکربندی به عنوان رشته‌های UTF-8. به طور پیش‌فرض، آن‌ها به عنوان ASCII تفسیر می‌شوند.
تبدیل یک گواهی به یک درخواست گواهی. گزینه -signkey برای ارسال کلید خصوصی مورد نیاز استفاده می‌شود.

چندین دستور دارای نحو مشترکی هستند، همان‌طور که در ادامه به تفصیل آمده است.

آرگومان‌های گذرواژه، که معمولاً با استفاده از -passin و -passout برای گذرواژه‌های ورودی و خروجی مشخص می‌شوند، امکان دریافت گذرواژه‌ها را از منابع گوناگون فراهم می‌کنند. هر دو گزینه یک آرگومان منفرد می‌پذیرند که در ادامه شرح داده شده است. اگر هیچ آرگومان گذرواژه‌ای داده نشود و به گذرواژه نیاز باشد، از کاربر خواسته می‌شود تا آن را وارد کند: این مقدار معمولاً از ترمینال فعلی و با خاموش بودن بازتاب نویسه‌ها (echo) خوانده می‌شود.

:password
گذرواژه واقعی password است. از آنجا که گذرواژه برای سایر ابزارها قابل رویت است، این شکل تنها در جاهایی باید استفاده شود که امنیت اهمیتی ندارد.
:var
دریافت گذرواژه از متغیر محیطی var. از آنجا که محیط فرآیندهای دیگر قابل مشاهده است، این گزینه باید با احتیاط استفاده شود.
:path
سطر اول path گذرواژه است. اگر همان آرگومان path به هر دو گزینه -passin و -passout داده شود، سطر اول برای گذرواژه ورودی و سطر بعدی برای گذرواژه خروجی استفاده خواهد شد. path نیازی نیست که حتماً به یک فایل معمولی اشاره کند: برای مثال می‌تواند به یک دستگاه یا لوله نام‌گذاری‌شده (named pipe) اشاره داشته باشد.
:number
خواندن گذرواژه از توصیف‌گر فایل (file descriptor) number. برای مثال می‌توان از این قابلیت برای ارسال داده از طریق لوله استفاده کرد.
خواندن گذرواژه از ورودی استاندارد.

قالب‌های ورودی/خروجی، که معمولاً با استفاده از -inform و -outform مشخص می‌شوند، نشان‌دهنده قالبی هستند که داده‌ها از آن خوانده یا در آن نوشته می‌شوند. آرگومان نسبت به بزرگی و کوچکی حروف حساس نیست.

قواعد کدگذاری متمایز (DER) یک قالب باینری است.
قالب قدیمی و ناامن.
پست الکترونیکی بهبودیافته با حریم خصوصی (PEM) با base64 کدگذاری می‌شود.
قالب کلید خصوصی (Private Key).
smime
یک پیام با قالب SMIME.
متن ساده اسکی (ASCII).

متغیرهای محیطی زیر بر اجرای openssl اثر می‌گذارند:

مکان فایل پیکربندی اصلی.

/etc/ssl/
پوشه پیکربندی پیش‌فرض برای openssl.
/etc/ssl/lib/
استفاده‌نشده.
/etc/ssl/private/
پوشه کلید خصوصی پیش‌فرض.
/etc/ssl/openssl.cnf
فایل پیکربندی پیش‌فرض برای openssl.
/etc/ssl/x509v3.cnf
فایل پیکربندی پیش‌فرض برای گواهی‌های x509.

acme-client(1), nc(1), openssl.cnf(5), x509v3.cnf(5), ssl(8), starttls(8)

T. Dierks and C. Allen, The TLS Protocol Version 1.0, RFC 2246, January 1999.

M. Wahl, S. Killie, and T. Howes, Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names, RFC 2253, December 1997.

B. Kaliski, PKCS #7: Cryptographic Message Syntax Version 1.5, RFC 2315, March 1998.

R. Housley, W. Ford, W. Polk, and D. Solo, Internet X.509 Public Key Infrastructure Certificate and CRL Profile, RFC 2459, January 1999.

M. Myers, R. Ankney, A. Malpani, S. Galperin, and C. Adams, X.509 Internet Public Key Infrastructure Online Certificate Status Protocol – OCSP, RFC 2560, June 1999.

R. Housley, Cryptographic Message Syntax, RFC 2630, June 1999.

P. Chown, Advanced Encryption Standard (AES) Ciphersuites for Transport Layer Security (TLS), RFC 3268, June 2002.

March 14, 2026 Linux 6.12.107+deb13-amd64