ocsptool(1) دستورات کاربر (User Commands) ocsptool(1)

ocsptool - ابزار تحلیل و اعتبارسنجی پاسخها و درخواستهای OCSP

ocsptool [-flags] [-flag [value]] [--option-name[[=| ]value]]

تمامی آرگومان‌ها باید از نوع گزینه باشند.

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


فعال‌سازی اشکال‌زدایی. این گزینه یک عدد صحیح را به عنوان آرگومان دریافت می‌کند. مقدار num محدود به موارد زیر است:
در محدوده 0 تا 9999

سطح اشکال‌زدایی را مشخص می‌کند.


خروجی با جزئیات بیشتر.

فایل ورودی.

فایل خروجی.

پرس‌وجو از یک سرور OCSP/HTTP درباره اعتبار یک گواهینامه.

به سرور HTTP OCSP مشخص‌شده متصل می‌شود و درباره اعتبار گواهینامه بارگذاری‌شده پرس‌وجو می‌کند. آرگومان آن می‌تواند یک نشانی اینترنتی (URL) یا نام ساده سرور باشد. می‌توان آن را با گزینه --load-chain ترکیب کرد که در آن تمام گواهینامه‌های موجود در زنجیره ارائه‌شده بررسی می‌شوند، یا با گزینه‌های --load-cert و --load-issuer به کار برد. گزینه دوم، گواهینامه ارائه‌شده را در برابر گواهینامه صادرکننده مشخص‌شده آن بررسی می‌کند.


اعتبارسنجی پاسخ.

پاسخ OCSP ارائه‌شده را در برابر لنگرهای اعتماد (trust anchors) سیستم اعتبارسنجی می‌کند (مگر اینکه --load-trust مشخص شده باشد). این گزینه برای به‌دست آوردن امضاکننده پاسخ OCSP، به گزینه‌های --load-signer یا --load-chain نیاز دارد.


چاپ اطلاعات درباره یک درخواست OCSP.

نمایش اطلاعات دقیق درباره درخواست OCSP ارائه‌شده.


چاپ اطلاعات درباره یک پاسخ OCSP.

نمایش اطلاعات دقیق درباره پاسخ OCSP ارائه‌شده.


تولید یک درخواست OCSP.

استفاده از نانس (یا عدم استفاده از آن) در درخواست OCSP. حالت no-nonce این گزینه را غیرفعال می‌کند.

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

خواندن گواهینامه صادرکننده از فایل.

خواندن گواهینامه مورد بررسی از فایل.

خواندن لنگرهای اعتماد (trust anchors) OCSP از فایل. این گزینه نباید در ترکیب با هیچ‌یک از گزینه‌های زیر ظاهر شود: load-signer.

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


خواندن امضاکننده پاسخ OCSP از فایل. این گزینه نباید در ترکیب با هیچ‌یک از گزینه‌های زیر ظاهر شود: load-trust.

استفاده از قالب DER برای گواهینامه‌ها و کلیدهای خصوصی ورودی. حالت no-inder این گزینه را غیرفعال می‌کند.

استفاده از قالب DER برای خروجی پاسخ‌ها (این حالت پیش‌فرض است).

خروجی در قالب کدگذاری‌شده DER خواهد بود. بر خلاف سایر ابزارهای GnuTLS، این قالب حالت پیش‌فرض برای این ابزار است.


استفاده از قالب PEM برای خروجی پاسخ‌ها.

خروجی در قالب PEM خواهد بود.


خواندن درخواست OCSP کدگذاری‌شده با DER از فایل.

خواندن پاسخ OCSP کدگذاری‌شده با DER از فایل.

نادیده گرفتن هرگونه خطای اعتبارسنجی.

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

این گزینه می‌تواند با --verify-response ترکیب شود.


انجام اعتبارسنجی در برچسب زمانی داده‌شده به‌جای زمان سیستم.

برچسب زمانی (timestamp) یک لحظه زمانی است که به‌صورت زمان یونیکس یا در قالب یک رشته زمانی خوانا برای انسان مانند "29 Feb 2004" یا "2004-02-29" کدگذاری شده است. مستندات کامل در https://www.gnu.org/software/coreutils/manual/html_node/Date-input-formats.html یا به‌صورت محلی از طریق دستور info '(coreutils) date invocation' در دسترس است.


نمایش نسخه برنامه و خروج. حالت پیش‌فرض `v' است که نسخه ساده را نمایش می‌دهد. حالت `c' اطلاعات حق نشر و حالت `n' متن کامل اطلاعیه حق نشر را چاپ می‌کند.

نمایش اطلاعات نحوه استفاده و خروج.
-!, --more-help

ارسال اطلاعات گسترده راهنمای نحوه استفاده از طریق یک صفحه‌بندی‌کننده (pager).

چاپ اطلاعات درباره یک درخواست OCSP

برای تجزیه یک درخواست OCSP و چاپ اطلاعات درباره محتوای آن، می‌توان پارامتر -i یا --request-info را به‌صورت زیر به کار برد. پارامتر -Q نام فایل حاوی درخواست OCSP را مشخص می‌کند، و این فایل باید حاوی درخواست OCSP در قالب باینری DER باشد.


$ ocsptool -i -Q ocsp-request.der

فایل ورودی همچنین می‌تواند به‌صورت زیر به ورودی استاندارد فرستاده شود:


$ cat ocsp-request.der | ocsptool --request-info

چاپ اطلاعات درباره یک پاسخ OCSP

همانند تجزیه درخواست‌های OCSP، پاسخ‌های OCSP را نیز می‌توان با استفاده از -j یا --response-info به‌صورت زیر تجزیه کرد:


$ ocsptool -j -Q ocsp-response.der
$ cat ocsp-response.der | ocsptool --response-info

تولید یک درخواست OCSP

پارامترهای -q یا --generate-request برای تولید یک درخواست OCSP استفاده می‌شوند. به‌طور پیش‌فرض، درخواست OCSP در قالب باینری DER در خروجی استاندارد نوشته می‌شود، اما می‌تواند با استفاده از --outfile در یک فایل ذخیره شود. برای تولید یک درخواست OCSP، صادرکننده گواهینامه مورد بررسی باید با --load-issuer و گواهینامه مورد بررسی با --load-cert مشخص شود. به‌طور پیش‌فرض از قالب PEM برای این فایل‌ها استفاده می‌شود، هرچند می‌توان از --inder برای مشخص کردن این‌که فایل‌های ورودی در قالب DER هستند استفاده کرد.


$ ocsptool -q --load-issuer issuer.pem --load-cert client.pem            --outfile ocsp-request.der

هنگام تولید درخواست‌های OCSP، این ابزار یک افزونه OCSP حاوی نانس (nonce) را اضافه می‌کند. این رفتار را می‌توان با مشخص کردن --no-nonce غیرفعال کرد.

اعتبارسنجی امضا در پاسخ OCSP

برای اعتبارسنجی امضا در یک پاسخ OCSP، از پارامتر -e یا --verify-response استفاده می‌شود. این ابزار یک پاسخ OCSP در قالب DER را از ورودی استاندارد یا از فایل مشخص‌شده توسط --load-response می‌خواند. پاسخ OCSP در برابر مجموعه‌ای از لنگرهای اعتماد اعتبارسنجی می‌شود که با استفاده از --load-trust مشخص شده‌اند. لنگرهای اعتماد، گواهینامه‌های پیوسته‌شده به هم در قالب PEM هستند. گواهینامه‌ای که پاسخ OCSP را امضا کرده است باید در مجموعه لنگرهای اعتماد باشد، یا صادرکننده گواهینامه امضاکننده باید در مجموعه لنگرهای اعتماد باشد و بیت Extended Key Usage مربوط به OCSP باید در گواهینامه امضاکننده فعال (asserted) شده باشد.


$ ocsptool -e --load-trust issuer.pem            --load-response ocsp-response.der

این ابزار وضعیت اعتبارسنجی را چاپ خواهد کرد.

اعتبارسنجی امضا در پاسخ OCSP در برابر یک گواهینامه مشخص

اگر بدانید که یک گواهینامه خاص پاسخ OCSP را امضا کرده است و بخواهید از آن برای بررسی امضا استفاده کنید، می‌توان منطق معمول اعتماد را نادیده گرفت. این کار با استفاده از --load-signer به‌جای --load-trust انجام می‌شود. این گزینه یک گواهینامه را بارگذاری می‌کند و از آن برای اعتبارسنجی امضا در پاسخ OCSP استفاده خواهد شد. این حالت بیت Extended Key Usage را بررسی نمی‌کند.


$ ocsptool -e --load-signer ocsp-signer.pem            --load-response ocsp-response.der

این روش معمولاً فقط در دو موقعیت کاربرد دارد: نخست، زمانی که پاسخ OCSP حاوی نسخه‌ای از گواهینامه امضاکننده نیست و بنابراین کد --load-trust شکست می‌خورد. دوم، زمانی که بخواهید از حالت غیرمستقیم که در آن گواهینامه امضاکننده پاسخ OCSP توسط یک لنگر اعتماد امضا شده است، اجتناب کنید.

یک مثال در دنیای واقعی

در اینجا یک مثال از نحوه تولید یک درخواست OCSP برای یک گواهینامه و اعتبارسنجی پاسخ آورده شده است. برای نمایش، از میزبان blog.josefsson.org استفاده می‌کنیم که (در زمان نگارش این متن) از یک گواهینامه CACert استفاده می‌کند. ابتدا از gnutls-cli برای دریافت یک نسخه از زنجیره گواهینامه سرور استفاده می‌کنیم. سرور ملزم به ارسال این اطلاعات نیست، اما این سرور خاص برای انجام این کار پیکربندی شده است.


$ echo | gnutls-cli -p 443 blog.josefsson.org --save-cert chain.pem

گواهینامه‌های ذخیره‌شده معمولاً در افزونه Authority Information Access حاوی اشاره‌گری به محل قرارگیری پاسخ‌دهنده OCSP هستند. برای مثال، از certtool -i < chain.pem این اطلاعات حاصل می‌شود:


		Authority Information Access Information (not critical):
			Access Method: 1.3.6.1.5.5.7.48.1 (id-ad-ocsp)
			Access Location URI: https://ocsp.CAcert.org

این بدان معنی است که ocsptool می‌تواند سرورهایی را که باید از طریق HTTP با آن‌ها تماس بگیرد، شناسایی کند. اکنون می‌توانیم اطلاعات مربوط به گواهینامه‌های زنجیره را درخواست کنیم:


$ ocsptool --ask --load-chain chain.pem

درخواست از طریق HTTP به آدرس سرور OCSP یافت‌شده در گواهینامه‌ها ارسال می‌شود. همچنین می‌توان آدرس سرور OCSP را بازنویسی کرد و یا با استفاده از --load-cert و --load-issuer درباره یک گواهینامه خاص اطلاعات پرس‌وجو کرد:


$ ocsptool --ask https://ocsp.CAcert.org --load-chain chain.pem

یکی از مقادیر خروج زیر بازگردانده خواهد شد:

0 (EXIT_SUCCESS)

اجرای موفقیت‌آمیز برنامه.
1 (EXIT_FAILURE)

عملیات شکست خورد یا ساختار دستور معتبر نبود.

certtool(1)

بنیاد نرم‌افزار آزاد و دیگر مشارکت‌کنندگان GnuTLS.

حق نشر © 2020-2023 Free Software Foundation و دیگران. تمامی حقوق محفوظ است.
این برنامه تحت شرایط مجوز عمومی همگانی گنو (GNU General Public License)، نسخه ۳ یا جدیدتر منتشر شده است.

لطفاً گزارش‌های اشکال را به نشانی bugs@gnutls.org ارسال کنید.

29 Apr 2026 3.8.13