| DIRMNGR(8) | دستورهای مدیریتی و نگهداری | DIRMNGR(8) |
نام (NAME)
dirmngr - دیمن مدیریت دسترسیهای شبکه و گواهینامههای دیجیتال برای GnuPG
خلاصه دستور (SYNOPSIS)
dirmngr [ گزینهها ]
توضیحات (DESCRIPTION)
سرویس dirmngr کارگزار مدیریت فهرستهای ابطال گواهی (CRL)، پروتکل وضعیت آنلاین گواهی (OCSP) و دسترسی به سرورهای کلید OpenPGP (keyservers) را در مجموعه GnuPG فراهم میکند.
از نسخه ۲.۱ برنامه GnuPG، سرویس dirmngr وظیفه دسترسی به سرورهای کلید OpenPGP را بر عهده دارد. همانند نسخههای پیشین، این برنامه همچنین به عنوان سروری برای مدیریت و بارگیری فهرستهای ابطال گواهی (CRL) برای گواهیهای X.509، بارگیری گواهیهای X.509 و برقراری دسترسی به ارائهدهندگان OCSP به کار میرود. برنامه Dirmngr به صورت داخلی توسط gpg، gpgsm یا از طریق ابزار gpg-connect-agent فراخوانی میشود.
دستورها (COMMANDS)
دستورها به جز اینکه تنها مشخص کردن یک دستور مجاز است، تفاوتی با گزینهها ندارند.
- --version
- چاپ نسخه برنامه و اطلاعات پروانه انتشار (لایسنس). توجه داشته باشید که نمیتوانید این دستور را به صورت مخفف بنویسید.
- --help, -h
- چاپ پیام راهنما که خلاصه گزینههای پرکاربرد خط فرمان را نمایش میدهد. توجه داشته باشید که نمیتوانید این دستور را به صورت مخفف بنویسید.
- --dump-options
- چاپ فهرستی از تمام گزینهها و دستورهای موجود. توجه داشته باشید که نمیتوانید این دستور را به صورت مخفف بنویسید.
- --server
- اجرا در حالت سرور و انتظار برای دستورها روی ورودی استاندارد (stdin). حالت پیشفرض، ساخت یک سوکت و گوش دادن به دستورها روی آن است. این گزینه تنها برای اهداف آزمایشی کاربرد دارد.
- --daemon
- اجرا در پسزمینه به عنوان دیمن و گوش دادن به دستورها روی یک سوکت. این روشی است که dirmngr در صورت نیاز توسط سایر اجزای GnuPG اجرا میشود. برای شروع اجباری dirmngr عموماً بهتر است از gpgconf --launch dirmngr استفاده کنید.
- --supervised
- اجرا در پیشزمینه، ارسال لاگها به خروجی خطای استاندارد (stderr) و گوش دادن روی توصیفگر فایل ۳ که باید از قبل به یک سوکت شنود مقید شده باشد. این گزینه منسوخ شده و در ویندوز پشتیبانی نمیشود.
- --list-crls
- نمایش محتوای حافظه موقت (کش) CRL روی خروجی استاندارد (stdout). این دستور احتمالاً تنها برای اهداف اشکالزدایی مفید است.
- --load-crl file
- این دستور نیاز به یک نام فایل به عنوان آرگومان اضافی دارد و باعث میشود Dirmngr تلاش کند تا CRL موجود در file را به حافظه موقت خود وارد کند. توجه داشته باشید که این کار تنها زمانی ممکن است که Dirmngr بتواند گواهی مرجع صدور گواهی (CA) را مستقیماً با ابزارهای خود دریافت کند. در کل بهتر است از دستور --call-dirmngr loadcrl filename در gpgsm استفاده کنید تا gpgsm به dirmngr کمک کند.
- --fetch-crl url
- این دستور نیازمند یک نشانی وب به عنوان آرگومان اضافی است و باعث میشود dirmngr تلاش کند تا CRL را از آن url واکشی کرده و در حافظه موقت خود وارد کند. این دستور عمدتاً برای اشکالزدایی کاربرد دارد. ابزار dirmngr-client قابلیت مشابهی را برای یک نمونه در حال اجرای dirmngr فراهم میکند.
- --shutdown
- این دستور یک نمونه در حال اجرای Dirmngr را خاموش میکند. این دستور در حال حاضر تأثیری ندارد.
- --flush
- این دستور تمام CRLها را از حافظه موقت Dirmngr پاک میکند. در نتیجه درخواستهای کارخواه (کلاینت) باعث خواندن مجدد CRLهای تازه خواهند شد.
گزینهها (OPTIONS)
توجه داشته باشید که تمام گزینههای بلند به استثنای --options و --homedir را میتوان پس از حذف دو خط تیره ابتدایی، در فایل پیکربندی نیز قرار داد.
- --options file
- خواندن پیکربندی از file به جای فایل پیکربندی پیشفرض کاربر. نام فایل پیکربندی پیشفرض ‘dirmngr.conf’ است و انتظار میرود در دایرکتوری خانگی قرار داشته باشد.
- --homedir dir
- تنظیم نام دایرکتوری خانگی روی dir. این گزینه تنها زمانی مؤثر است که در خط فرمان استفاده شود. حالت پیشفرض دایرکتوری با نام ‘.gnupg’ دقیقاً زیر دایرکتوری خانگی کاربر است، مگر اینکه متغیر محیطی GNUPGHOME مقداردهی شده باشد که در این صورت مقدار آن استفاده خواهد شد. دادههای متعددی در این دایرکتوری ذخیره میشوند.
- -v
- --verbose
- نمایش اطلاعات بیشتر هنگام اجرا. میتوانید با تکرار گزینههای جزئیات برای dirmngr، مانند -vv، سطح جزئیات خروجی را افزایش دهید.
- --log-file file
- افزودن تمام خروجیهای گزارش و وقایعنگاری به file. این گزینه برای مشاهده عملکرد واقعی کارگزار بسیار مفید است. برای ثبت گزارش در سوکت، از ‘socket://’ استفاده کنید.
- --compatibility-flags flags
- تنظیم فلگهای سازگاری برای دور زدن برخی مشکلات یا شبیهسازی باگها. flags به صورت فهرستی از نامهای فلگ که با کاما از یکدیگر جدا شدهاند مشخص میشود و با یکدیگر OR منطقی میشوند. فلگ ویژه "none" فهرست را پاک کرده و امکان شروع دوباره با یک فهرست خالی را فراهم میکند. برای دریافت فهرستی از فلگهای در دسترس، میتوان تنها از کلمه "help" استفاده کرد.
- --faked-system-time epoch
- این گزینه فقط برای آزمودن سودمند است؛ زمان سیستم را به epoch که تعداد ثانیههای سپریشده از سال ۱۹۷۰ است به جلو یا عقب میبرد. همچنین epoch میتواند به عنوان یک رشته زمانی کامل ISO (مانند "20070924T154812") مشخص شود.
- --debug-level level
- انتخاب سطح اشکالزدایی برای بررسی مشکلات. level میتواند یک مقدار عددی یا یک کلمه کلیدی باشد:
- none
- بدون هیچ پیام اشکالزدایی. میتوان مقداری کمتر از ۱ را به جای این کلمه کلیدی به کار برد.
- basic
- برخی پیامهای پایه اشکالزدایی. مقداری بین ۱ و ۲ میتواند به جای کلمه کلیدی استفاده شود.
- advanced
- پیامهای اشکالزدایی با جزئیات بیشتر. مقداری بین ۳ و ۵ میتواند استفاده شود.
- expert
- پیامهای حتی با جزئیات بیشتر. مقداری بین ۶ و ۸ میتواند استفاده شود.
- guru
- تمام پیامهای اشکالزدایی ممکن. مقداری بزرگتر از ۸ میتواند استفاده شود. ایجاد فایلهای ردگیری هش تنها در صورت استفاده از این کلمه کلیدی فعال میشود.
- --debug flags
- تنظیم فلگهای اشکالزدایی. تمام فلگها با یکدیگر OR میشوند و flags میتواند در ساختار نحوی زبان C (مانند 0x0042) یا به صورت فهرستی از نامهای فلگ جداشده با کاما مشخص شود. برای دریافت فهرست تمام فلگهای پشتیبانیشده، میتوان از کلمه منفرد "help" استفاده کرد. این گزینه تنها برای اشکالزدایی مفید است و رفتار آن ممکن است در هر زمان بدون اطلاع قبلی تغییر کند.
- --debug-all
- معادل با --debug=0xffffffff
- --tls-debug level
- فعالسازی اشکالزدایی لایه TLS در سطح level. جزئیات سطح اشکالزدایی بستگی به کتابخانه TLS مورد استفاده دارد و ثابت نیست.
- --debug-wait n
- هنگام اجرا در حالت سرور، پیش از ورود به حلقه پردازش اصلی، به مدت n ثانیه مکث کرده و شناسه فرایند (PID) را چاپ میکند. این کار فرصت کافی برای اتصال یک اشکالزدا (debugger) فراهم میسازد.
- --disable-check-own-socket
- در برخی بسترها، dirmngr قادر به تشخیص حذف فایل سوکت خود و خاموش شدن خودکار است. این گزینه این خودآزمایی را به منظور اشکالزدایی غیرفعال میکند.
- -s
- --sh
- -c
- --csh
- فرمتبندی خروجی اطلاعات در حالت دیمن برای استفاده با شل استاندارد Bourne یا C-shell. حالت پیشفرض حدس زدن بر اساس متغیر محیطی SHELL است که در تقریباً تمام موارد کافی است.
- --force
- فعالسازی این گزینه بارگیری CRLهای منقضیشده را اجباری میکند؛ این کار تنها برای اشکالزدایی سودمند است.
- --use-tor
- --no-use-tor
- گزینه --use-tor برنامه Dirmngr و در نتیجه GnuPG را به حالت «تور» (Tor mode) تغییر میدهد تا تمام دسترسیهای شبکه را از طریق شبکه ناشناسی تور هدایت کند. برخی قابلیتهای دیگر در این حالت غیرفعال میشوند. اثر --use-tor با هیچ دستور دیگری و حتی با بارگیری مجدد dirmngr قابل لغو نیست. استفاده از --no-use-tor استفاده از تور را غیرفعال میکند. رفتار پیشفرض این است که اگر تور در هنگام راهاندازی یا پس از بارگیری مجدد dirmngr در دسترس باشد، از آن استفاده شود. بررسی در دسترس بودن تور با تلاش برای اتصال به پراکسی SOCKS روی پورت 9050 یا 9150 انجام میشود؛ اگر نوع دیگری از پراکسی روی یکی از این پورتها شنود میکند، باید از --no-use-tor استفاده کنید.
- --standard-resolver
- این گزینه استفاده از کد ریزالور استاندارد DNS سیستم را اجباری میکند. این گزینه عمدتاً برای اشکالزدایی به کار میرود. توجه داشته باشید که در ویندوز از ریزالور استاندارد استفاده نمیشود و در صورت استفاده از این گزینه، تمام دسترسیهای DNS خطای «Not Implemented» برمیگردانند. استفاده همزمان از این گزینه با حالت تور خطای «Not Enabled» را برمیگرداند.
- --recursive-resolver
- در صورت امکان، استفاده از یک ریزالور بازگشتی (recursive resolver) به جای یک ریزالور خرد (stub resolver).
- --resolver-timeout n
- تنظیم مهلت زمانی (timeout) برای ریزالور DNS روی N ثانیه. مقدار پیشفرض ۳۰ ثانیه است.
- --connect-timeout n
- --connect-quick-timeout n
- تنظیم مهلت زمانی تلاش برای برقراری اتصال HTTP و اتصالات عمومی TCP روی N ثانیه. مقدار تعیینشده با گزینه نوع سریع، زمانی به کار میرود که گزینه --quick به برخی دستورهای Assuan داده شده باشد. مقدار زمانبندی سریع به سقف مقدار مهلت اتصال معمولی محدود میشود. مقادیر پیشفرض ۱۵ و ۲ ثانیه هستند. توجه داشته باشید که مقادیر مهلت زمانی برای هر تلاش اتصال هستند؛ کد اتصال برای تمام نشانیهای فهرستشده یک سرور تلاش خواهد کرد متصل شود.
- --listen-backlog n
- تنظیم اندازه صف برای اتصالات معلق. مقدار پیشفرض ۶۴ است.
- --allow-version-check
- اجازه به Dirmngr برای اتصال به https://versions.gnupg.org به منظور دریافت فهرست نسخههای نرمافزاری جاری. در نسخههای بستهبندیشده دبیان، این گزینه هیچ کاری انجام نمیدهد زیرا بهروزرسانیهای نرمافزاری باید توسط توزیع مدیریت شوند. برای اطلاعات بیشتر گزینه --query-swdb از دستور gpgconf را ببینید. توجه داشته باشید که صرفنظر از این گزینه، همیشه میتوان بررسی نسخه را با این دستور فعال کرد:
gpg-connect-agent --dirmngr 'loadswdb --force' /bye
- --keyserver name
- استفاده از name به عنوان سرور کلید شما. این همان سروری است که gpg برای دریافت کلیدها، ارسال کلیدها و جستجوی کلیدها با آن ارتباط برقرار میکند. قالب name یک نشانی یکپارچه منبع (URI) است: `scheme:[//]keyservername[:port]` طرحواره (scheme) نوع سرور کلید را مشخص میکند: "hkp" برای سرورهای کلید سازگار یا مبتنی بر HTTP یا "ldap" برای سرورهای کلید LDAP. توجه داشته باشید که ممکن است نصب خاص GnuPG شما انواع دیگری از سرورهای کلید را نیز پشتیبانی کند. طرحوارههای سرور کلید به بزرگی و کوچکی حروف حساس نیستند. پس از نام سرور کلید، گزینههای پیکربندی اختیاری سرور کلید میتوانند ارائه شوند. این گزینهها مشابه --keyserver-options در gpg هستند، اما تنها به همین سرور کلید خاص اعمال میشوند.
برخی سرورهای کلید با یکدیگر همگامسازی میشوند، بنابراین همیشه نیازی به ارسال کلیدها به بیش از یک سرور نیست. برخی سرورهای کلید از DNS چرخشی (round-robin) استفاده میکنند تا با هر بار استفاده، سرور کلید متفاوتی در اختیارتان بگذارند.
اگر دقیقاً دو سرور کلید پیکربندی شده باشد و تنها یکی از آنها یک سرویس پنهان تور (.onion) باشد، Dirmngr بسته به اینکه تور به صورت محلی در حال اجرا باشد یا خیر، سرور کلید مورد استفاده را برمیگزیند. بررسی اجرای تور برای هر اتصال جدید انجام میگیرد.
اگر هیچ سرور کلیدی به صراحت پیکربندی نشده باشد، dirmngr از پیشفرض توکار hkps://keys.openpgp.org استفاده خواهد کرد. برای جلوگیری از استفاده از سرور کلید پیشفرض، میتوان از مقدار none استفاده کرد.
توجه داشته باشید که پیشفرض فوق یک انتخاب اختصاصی دبیان است. نسخه بالادستی GnuPG سرور https://keyserver.ubuntu.com را ترجیح میدهد. برای جزئیات بیشتر به فایل /usr/share/doc/gpgconf/NEWS.Debian.gz مراجعه کنید.
کاربران ویندوز که سرور کلید آنها روی اکتیو دایرکتوری (Active Directory) اجرا میشود، میتوانند از شکل کوتاه ldap:/// برای name جهت دسترسی به این دایرکتوری استفاده کنند.
برای دسترسی به سرورهای کلید ناشناس LDAP، به طور کلی name تنها به شکل ldaps://ldap.example.com است. پارامتر BaseDN هرگز نباید مشخص شود. اگر احراز هویت لازم باشد، شرایط پیچیدهتر است و دو روش در دسترس است:
روش مدرن (از نسخه ۲.۲.۲۸ به بعد) استفاده از همان ساختار نحوی مورد استفاده با گزینه --ldapserver است. لطفاً برای جزئیات به آن بخش مراجعه کنید؛ در اینجا یک مثال آمده است:
keyserver ldap:ldap.example.com::uid=USERNAME,ou=GnuPG Users,dc=example,dc=com:PASSWORD::starttls
keyserver ldaps://ldap.example.com/????bindname=uid=USERNAME%2Cou=GnuPG%20Users%2Cdc=example%2Cdc=com,password=PASSWORD
- --nameserver ipaddr
- در «حالت تور»، Dirmngr از یک ریزالور عمومی از طریق تور برای حل نامهای DNS استفاده میکند. اگر قرار نیست از ریزالور عمومی پیشفرض که 8.8.8.8 است استفاده شود، میتوان با استفاده از این گزینه ریزالور دیگری تعیین کرد. توجه داشته باشید که باید یک نشانی عددی IP (چه IPv6 یا IPv4) داده شود و هیچ بررسی خطایی برای ipaddr انجام نمیشود.
- --disable-ipv4
- --disable-ipv6
- غیرفعال کردن استفاده از تمامی نشانیهای IPv4 یا IPv6.
- --disable-ldap
- غیرفعالسازی کامل استفاده از LDAP.
- --disable-http
- غیرفعالسازی کامل استفاده از HTTP.
- --ignore-http-dp
- هنگام جستجو برای یافتن محل یک CRL، گواهیِ تحت بررسی معمولاً حاوی مدخلهایی به نام نقطه توزیع CRL (مخفف DP) است که نشانیهای URL برای دسترسی به CRL را تشریح میکنند. اولین مدخل DP پیدا شده استفاده میشود. با فعال بودن این گزینه، تمام مدخلهایی که از طرحواره HTTP استفاده میکنند هنگام جستجو برای یک DP مناسب نادیده گرفته میشوند.
- --ignore-ldap-dp
- این گزینه مشابه --ignore-http-dp است اما مدخلهای مبتنی بر طرحواره LDAP را نادیده میگیرد. ترکیب هر دو گزینه منجر به نادیده گرفتن کامل تمامی DPها خواهد شد.
- --ignore-ocsp-service-url
- نادیده گرفتن تمام URLهای OCSP موجود در گواهی. اثر این گزینه، اجبار به استفاده از پاسخدهنده (responder) پیشفرض است.
- --honor-http-proxy
- اگر متغیر محیطی ‘http_proxy’ مقداردهی شده باشد، از مقدار آن برای دسترسی به سرورهای HTTP استفاده میشود. در ویندوز، اگر از این گزینه استفاده شود اما متغیر محیطی تنظیم نشده باشد، تنظیمات پراکسی از سیستم خوانده میشود.
- --http-proxy host[:port]
- استفاده از host و port برای دسترسی به سرورهای HTTP. استفاده از این گزینه بدون در نظر گرفتن اینکه --honor-http-proxy تنظیم شده باشد یا خیر، متغیر محیطی ‘http_proxy’ را بازنویسی (override) میکند.
- --ldap-proxy host[:port]
- استفاده از host و port برای اتصال به سرورهای LDAP. اگر port حذف شود، پورت ۳۸۹ (پورت استاندارد LDAP) استفاده میشود. این گزینه هر بخش میزبان و پورتی که در یک نشانی اینترنتی LDAP مشخص شده را بازنویسی میکند و در صورتی که میزبان و پورت در نشانی وب حذف شده باشند نیز اعمال میشود.
- --only-ldap-proxy
- هرگز از هیچ چیزی به جز «پراکسی» LDAP که با --ldap-proxy پیکربندی شده استفاده نشود. به طور معمول اگر اتصال از طریق "proxy" با شکست مواجه شود، dirmngr سعی میکند از سرورهای LDAP پیکربندیشده دیگر استفاده کند.
- --ldapserverlist-file file
- خواندن فهرست سرورهای LDAP مورد مراجعه برای CRLها و گواهیهای X.509 از این فایل به جای فایل پیشفرض اختصاصی کاربر. مقدار پیشفرض برای file برابر با ‘dirmngr_ldapservers.conf’ است.
این فایل فهرست سرورها شامل یک سرور LDAP در هر خط در قالب زیر است:
hostname:port:username:password:base_dn:flags
خطوطی که با ‘#’ آغاز میشوند کامنت (توضیح) هستند.
توجه داشته باشید که طبق معمول انتظار میرود تمام رشتههای وارد شده دارای کدگذاری UTF-8 باشند. مسلماً اگر رمز عبور در ابتدا با کدگذاری Latin-1 نوشته شده باشد، با مشکلاتی مواجه خواهد شد. هیچ راهحل دیگری در اینجا وجود ندارد جز اینکه چنین رمزی را با کدگذاری باینری در فایل قرار دهید (یعنی نویسههای غیر اسکی به شکل خوانا نمایش داده نخواهند شد). ([ابزار gpgconf ممکن است برای رابطهای کاربری مفید باشد زیرا امکان ویرایش این فایل پیکربندی با رشتههای فرار مبتنی بر درصد (percent-escaped) را فراهم میآورد.])
- --ldapserver spec
- این یک روش جایگزین برای مشخص کردن سرورهای LDAP به منظور بازیابی CRL و گواهینامه X.509 است. اگر از این گزینه استفاده شود، سرورهای پیکربندیشده در ‘dirmngr_ldapservers.conf’ (یا فایل دادهشده با --ldapserverlist-file) پاک میشوند. توجه داشته باشید که ‘dirmngr_ldapservers.conf’ با سیگنال بارگیری مجدد خوانده نمیشود، اما گزینههای --ldapserver دوباره خوانده میشوند.
spec یا یک نشانی اینترنتی استاندارد LDAP است یا یک فهرست جداشده با دونقطه به فرم زیر:
hostname:port:username:password:base_dn:flags:
همراه با یک پیشوند اختیاری ldap: (اما بدون دو اسلش که آن را تبدیل به یک URL مناسب LDAP کند). مقدار flags فهرستی از یک یا چند کلمه کلیدی جداشده با کاما است:
- plain
- پیشفرض: به هیچ وجه از اتصال امن TLS استفاده نمیشود؛ پورت پیشفرض ۳۸۹ است.
- starttls
- استفاده از STARTTLS برای امنسازی اتصال؛ پورت پیشفرض ۳۸۹ است.
- ldaptls
- تونل کردن LDAP از طریق یک اتصال TLS؛ پورت پیشفرض ۶۳۶ است.
- ntds
- در ویندوز، اتصال LDAP را با استفاده از اکتیو دایرکتوری با کاربر فعلی احراز هویت میکند.
- areconly
- در ویندوز هنگام حل نام سرور LDAP، تنها از رکورد A یا AAAA استفاده میکند.
توجه داشته باشید که در مشخصسازی به سبک URL، طرحواره ldaps:// به STARTTLS اشاره دارد و نه به LDAP-over-TLS.
- --ldaptimeout secs
- تعیین تعداد ثانیههای انتظار برای یک پرسمان (query) LDAP پیش از اتمام مهلت زمانی. مقدار پیشفرض ۱۵ ثانیه است. مقدار ۰ هرگز منقضی نخواهد شد.
- --add-servers
- این گزینه باعث میشود dirmngr هر سروری را که هنگام اعتبارسنجی گواهیها در برابر CRLها کشف میکند، به فهرست داخلی سرورهای مورد مراجعه برای گواهیها و CRLها بیفزاید. این گزینه به طور کلی نباید استفاده شود.
این گزینه ممکن است هنگام تلاش برای اعتبارسنجی گواهیای مفید باشد که نقطه توزیع CRL آن به سروری اشاره دارد که در حال حاضر در فهرست ldapserverlist نیست. Dirmngr همیشه به این سرور مراجعه کرده و سعی در دانلود CRL میکند، اما احتمال زیادی وجود دارد که گواهی مورد استفاده برای امضای CRL روی همان سرور قرار داشته باشد. بنابراین اگر dirmngr آن سرور جدید را به فهرست اضافه نکند، اغلب نمیتواند امضای CRL را تأیید کند مگر اینکه گزینه --add-servers استفاده شود.
هشدار به خریدار (Caveat emptor): استفاده از این گزینه ممکن است حملات منع سرویس (DoS) را تسهیل کند و درخواستهای جستجو را برای اشخاص ثالث ناشناس فاش سازد. این به این دلیل است که سرورهای اختیاری به فهرست داخلی سرورهای LDAP اضافه میشوند که به نوبه خود برای تمام پرسوجوهای نامشخص LDAP و همچنین به عنوان پشتیبان برای پرسوجوهایی که نتیجهای بازنگرداندهاند استفاده میشود.
- --allow-ocsp
- این گزینه پشتیبانی از OCSP را در صورت درخواست کارخواه فعال میکند.
درخواستهای OCSP به طور پیشفرض رد میشوند زیرا ممکن است حریم خصوصی کاربر را نقض کنند؛ به عنوان مثال میتوان زمان خواندن ایمیل توسط یک کاربر را ردگیری کرد.
- --ocsp-responder url
- استفاده از url به عنوان پاسخدهنده پیشفرض OCSP در صورتی که گواهی شامل اطلاعاتی درباره پاسخدهنده تعیینشده نباشد. توجه داشته باشید که --ocsp-signer نیز باید روی یک گواهی معتبر تنظیم شده باشد.
- --ocsp-signer fpr|file
- استفاده از گواهی با اثرانگشت fpr برای بررسی پاسخهای پاسخدهنده پیشفرض OCSP. همچنین میتوان یک نام فایل تعیین کرد که در این صورت انتظار میرود پاسخ توسط یکی از گواهیهای مشخصشده در آن فایل امضا شده باشد. هر آرگومانی که شامل اسلش، نقطه یا تیلدا (~) باشد به عنوان یک نام فایل در نظر گرفته میشود. بسط معمول نام فایل اعمال میشود: یک تیلدا در ابتدا همراه با یک اسلش با محتوای ‘HOME’ جایگزین میشود، و نبود اسلش در ابتدا یک نام فایل نسبی را توصیف میکند که در دایرکتوری خانگی جستجو خواهد شد. برای اطمینان از اینکه file در دایرکتوری خانگی جستجو میشود، یا نام را با "./" پیشوندگذاری کنید یا از نامی استفاده کنید که دارای نقطه باشد.
اگر پاسخی توسط گواهی تشریحشده با این اثرانگشتها امضا شده باشد، هیچ بررسی دیگری بر روی اعتبار این گواهی انجام نخواهد شد.
قالب FILE فهرستی از اثرانگشتهای SHA-1 است که در هر خط یک اثرانگشت همراه با دونقطههای اختیاری میان بایتها قرار میگیرد. خطوط خالی و خطوطی که با علامت هش (#) شروع میشوند نادیده گرفته میشوند.
- --ocsp-max-clock-skew n
- تعداد ثانیههای مجاز برای اختلاف ساعت میان پاسخدهنده OCSP و ساعت محلی. مقدار پیشفرض ۶۰۰ (۱۰ دقیقه) است.
- --ocsp-max-period n
- حداکثر تعداد ثانیههایی که یک پاسخ پس از زمان دادهشده در فیلد thisUpdate معتبر تلقی میشود. مقدار پیشفرض ۷۷۷۶۰۰۰ (۹۰ روز) است.
- --ocsp-current-period n
- تعداد ثانیههایی که یک پاسخ OCSP پس از زمان دادهشده در داده NEXT_UPDATE معتبر تلقی میشود. مقدار پیشفرض ۱۰۸۰۰ (۳ ساعت) است.
- --max-replies n
- عدم بازگرداندن بیش از n مورد در یک پرسمان. مقدار پیشفرض ۱۰ است.
- --ignore-cert-extension oid
- افزودن oid به فهرست افزونههای نادیدهگرفتهشده گواهی. انتظار میرود oid به صورت دهدهی نقطهدار باشد، مانند 2.5.29.3. این گزینه میتواند بیش از یک بار استفاده شود. افزونههای گواهی نشانهگذاریشده با وضعیت بحرانی (critical) که با یکی از OIDهای این فهرست تطابق داشته باشند، به گونهای رفتار میشوند که گویی واقعاً پردازش شدهاند و در نتیجه گواهی به دلیل وجود یک افزونه بحرانی ناشناخته رد نخواهد شد. از این گزینه با احتیاط استفاده کنید زیرا افزونهها معمولاً به دلایل مشخصی به عنوان بحرانی نشانهگذاری میشوند.
- --ignore-crl-extension oid
- افزودن oid به فهرست افزونههای نادیدهگرفتهشده CRL. انتظار میرود oid به صورت دهدهی نقطهدار باشد. افزونههای CRL علامتگذاریشده به عنوان بحرانی که با یکی از OIDهای موجود در فهرست مطابقت داشته باشند، به گونهای بررسی میشوند که گویی مدیریت شدهاند و بنابراین گواهی به خاطر یک افزونه بحرانی ناشناخته رد نمیشود. از این گزینه با احتیاط استفاده کنید.
- --ignore-cert fpr|file
- نادیده گرفتن کامل گواهیهای دارای اثرانگشت fpr. به عنوان جایگزینی برای اثرانگشت میتوان یک نام فایل تعیین کرد که در این صورت تمام گواهیهای شرح داده شده در آن فایل نادیده گرفته میشوند. هر آرگومانی که شامل اسلش، نقطه یا تیلدا باشد یک نام فایل محسوب میشود. بسط معمول نام فایل اعمال میشود: یک تیلدا در ابتدا همراه با یک اسلش با محتوای ‘HOME’ جایگزین میشود، نبود اسلش در ابتدا یک نام فایل نسبی را توصیف میکند که در دایرکتوری خانگی جستجو میشود. برای اطمینان از اینکه file در دایرکتوری خانگی جستجو شود، یا نام را با "./" آغاز کنید یا از نامی استفاده کنید که حاوی نقطه باشد. قالب چنین فایلی فهرستی از اثرانگشتهای SHA-1 است، یکی در هر خط با دونقطههای اختیاری بین بایتها. خطوط خالی و خطوطی که با علامت هش (#) شروع میشوند نادیده گرفته میشوند.
این گزینه به عنوان یک راهکار موقت سریع برای مستثنی کردن برخی گواهیها از مخزن سیستم مفید است.
- --hkp-cacert file
- استفاده از گواهیهای ریشه در file برای اعتبارسنجی گواهیهای TLS مورد استفاده با hkps (دسترسی به سرور کلید از طریق TLS). اگر فایل در قالب PEM باشد، پسوند .pem برای file انتظار میرود. این گزینه میتواند چندین بار برای افزودن گواهیهای ریشه بیشتر مشخص شود. گسترش تیلدا (~) پشتیبانی میشود.
اگر هیچ دستورالعمل hkp-cacert وجود نداشته باشد، dirmngr از مراجع گواهی (CA) سیستم استفاده خواهد کرد.
مثالها (EXAMPLES)
در اینجا نمونهای از نحوه نمایش جدول داخلی نشانیهای سرورهای کلید OpenPGP در dirmngr آمده است. خروجی برای اهداف اشکالزدایی در نظر گرفته شده و بخشی از یک API تعریفشده نیست.
gpg-connect-agent --dirmngr 'keyserver --hosttable' /bye
برای جلوگیری از استفاده از یک میزبان خاص که در یکی از استخرهای سرور کلید دیدهاید، میتوانید از دستور زیر استفاده کنید:
gpg-connect-agent --dirmngr 'keyserver --dead pgpkeys.bnd.de' /bye
توضیحات دستور keyserver را میتوان با دستور زیر چاپ کرد:
gpg-connect-agent --dirmngr 'help keyserver' /bye
فایلها (FILES)
برنامه Dirmngr هنگام اجرا در حالت دیمن از چندین دایرکتوری استفاده میکند: چندین فایل پیکربندی برای کنترل عملکرد dirmngr وجود دارد. به طور پیشفرض همگی ممکن است در دایرکتوری خانگی فعلی یافت شوند (گزینه [option --homedir] را ببینید).
- dirmngr.conf
- این فایل پیکربندی استانداردی است که توسط dirmngr در هنگام راهاندازی خوانده میشود. این فایل میتواند شامل هر گزینه بلند معتبری باشد؛ دو خط تیره ابتدایی نباید وارد شوند و گزینه نباید مخفف شود. این فایل پس از دریافت سیگنال SIGHUP نیز دوباره خوانده میشود، اگرچه همه گزینهها در عمل اعمال نخواهند شد. این نام پیشفرض را میتوان در خط فرمان تغییر داد (گزینه [option --options] را ببینید). بهتر است از این فایل نسخه پشتیبان تهیه کنید.
- /etc/gnupg/trusted-certs
- این دایرکتوری باید با گواهیهای مراجع صدور ریشه (Root CA) که برای بررسی CRLها و امضای پاسخهای OCSP به آنها اعتماد دارید پر شود.
معمولاً این گواهیها همانهایی هستند که با برنامههای استفادهکننده از dirmngr به کار میبرید. انتظار میرود که هر یک از این فایلهای گواهی دقیقاً شامل یک گواهی با کدگذاری DER در فایلی با پسوند ‘.crt’ یا ‘.der’ باشد. برنامه dirmngr این گواهیها را هنگام راهاندازی و دریافت سیگنال SIGHUP میخواند. گواهیهایی که قابل خواندن نیستند یا یک گواهی معتبر X.509 تشکیل نمیدهند نادیده گرفته میشوند؛ برای جزئیات به فایل لاگ مراجعه کنید.
برنامههای استفادهکننده از dirmngr (مانند gpgsm) میتوانند این گواهیها را برای تکمیل زنجیره اعتماد همانند دایرکتوری extra-certs (به زیر مراجعه کنید) درخواست کنند.
توجه داشته باشید که برای پاسخهای OCSP، گواهی تعیینشده با گزینه --ocsp-signer همواره برای امضای درخواستهای OCSP معتبر تلقی میشود.
- /etc/gnupg/extra-certs
- این دایرکتوری ممکن است حاوی گواهیهای اضافی باشد که هنگام راهاندازی در حافظه موقت داخلی پیشبارگذاری میشوند. برنامههای استفادهکننده از dirmngr (مانند gpgsm) میتوانند برای تکمیل زنجیره اعتماد، گواهیهای موجود در حافظه موقت را درخواست کنند. این امر در مواردی که چند گواهی CA میانی یا گواهیهایی دارید که معمولاً برای امضای پاسخهای OCSP استفاده میشوند، بسیار سودمند است. این گواهیها ابتدا بررسی میشوند قبل از اینکه برنامه برای یافتن آنها به شبکه مراجعه کند. این گواهیها نیز باید با کدگذاری DER باشند و دارای پسوند ‘.crt’ یا ‘.der’ باشند.
- ~/.gnupg/crls.d
- این دایرکتوری برای ذخیره CRLهای حافظه موقت استفاده میشود. بخش ‘crls.d’ در صورت عدم وجود توسط dirmngr ایجاد خواهد شد، اما باید اطمینان حاصل کنید که دایرکتوری بالاتر از آن وجود دارد.
چندین گزینه استفاده از گواهیهای معتمد را برای TLS و CRLها کنترل میکنند. در اینجا نمایی کلی از کاربرد و مبدا این گواهیهای مرجع ریشه (Root CA) ارائه شده است:
- سیستم (System)
- این گواهیهای ریشه سیستم توسط اجزای دیگر استفاده میشوند.
مبدا گواهیهای ارائهشده توسط سیستم بستگی به بستر دارد. در ویندوز تمام گواهیهای مخازن سیستمی ویندوز یعنی ROOT و CA استفاده میشوند.
در سایر بسترها گواهیها از اولین فایل یافتشده از این فهرست خوانده میشوند: ‘/etc/ssl/ca-bundle.pem’، ‘/etc/ssl/certs/ca-certificates.crt’، ‘/etc/pki/tls/cert.pem’، ‘/usr/local/share/certs/ca-root-nss.crt’، ‘/etc/ssl/cert.pem’.
- GnuPG
- گواهیهای اختصاصی GnuPG ذخیرهشده در دایرکتوری ‘/etc/gnupg/trusted-certs’ تنها برای اعتبارسنجی CRLها استفاده میشوند.
- سرور کلید OpenPGP (OpenPGP keyserver)
- برای دسترسی به سرورهای کلید OpenPGP، تنها گواهیهای استفادهشده مواردی هستند که با گزینه پیکربندی hkp-cacert تنظیم شدهاند.
- استخر سرورهای کلید OpenPGP (OpenPGP keyserver pool)
- این مورد معمولاً تنها یک گواهی است که از فایل ‘/usr/share/gnupg/gnupg/sks-keyservers.netCA.pem’ خوانده میشود. اگر این گواهی موجود باشد، برای دسترسی به سرورهای کلید ویژه hkps.pool.sks-keyservers.net (یا ‘hkps://keys.gnupg.net’) استفاده میشود.
لطفاً توجه داشته باشید که gpgsm گواهیهای Root CA را برای مقاصد خود تنها در صورتی میپذیرد که در فایل ‘trustlist.txt’ آن فهرست شده باشند. برنامه dirmngr از این فهرست استفاده نمیکند.
نکات (NOTES)
برای اینکه بتوانید پیامهای تشخیصی را مشاهده کنید، اغلب مفید است که دستکم خطوط زیر را در فایل پیکربندی ‘~/.gnupg/dirmngr.conf’ قرار دهید:
log-file ~/dirmngr.log verbose
ممکن است بخواهید فایل گزارش را بررسی کنید تا ببینید آیا تمام گواهیهای مرجع ریشه مورد نظر به درستی بارگیری شدهاند یا خیر.
برای اینکه بتوانید درخواستهای OCSP را انجام دهید، احتمالاً میخواهید این خط را اضافه کنید:
allow-ocsp
برای اطمینان از اینکه گزینههای جدید خوانده میشوند یا اینکه پس از نصب نسخههای جدید GnuPG نسخه درستی از dirmngr در حال اجرا است، باید dirmngr موجود را متوقف کنید تا نمونه جدیدی در صورت نیاز توسط سایر اجزا راهاندازی شود:
gpgconf --kill dirmngr
تعامل مستقیم با dirmngr با استفاده از دستور زیر امکانپذیر است:
gpg-connect-agent --dirmngr
عبارت HELP را در خط اعلان وارد کنید تا فهرستی از دستورها را ببینید و HELP را به همراه نام یک دستور وارد کنید تا راهنمای مربوط به آن دستور را دریافت نمایید.
سیگنالها (SIGNALS)
یک نمونه در حال اجرای dirmngr میتواند توسط سیگنالها کنترل شود، یعنی با استفاده از دستور kill برای ارسال سیگنال به فرایند.
در اینجا فهرستی از سیگنالهای پشتیبانیشده آمده است:
- SIGHUP
- این سیگنال تمام CRLهای ذخیرهشده در حافظه موقت داخلی و همچنین هرگونه گواهی کششده را پاک میکند. سپس حافظه موقت گواهیها همانند زمان راهاندازی دوباره مقداردهی اولیه میشود. گزینهها دوباره از فایل پیکربندی خوانده میشوند. به جای ارسال این سیگنال بهتر است از دستور زیر استفاده کنید:
gpgconf --reload dirmngr
- SIGTERM
- فرایند را خاموش میکند اما تا برآورده شدن تمام درخواستهای فعلی منتظر میماند. اگر فرایند ۳ بار از این سیگنالها دریافت کند و درخواستها هنوز در حال انتظار باشند، خاموش شدن اجباری اعمال میشود. همچنین میتوانید به جای این سیگنال از دستور زیر استفاده کنید:
gpgconf --kill dirmngr
همچنین ببینید (SEE ALSO)
مستندات کامل این ابزار به عنوان راهنمای Texinfo نگهداری میشود. اگر GnuPG و برنامه info به درستی روی سیستم شما نصب شده باشند، دستور
info gnupg
| مه ۲۰۲۵ | gnupg |