gnutls-cli(1) دستورات کاربر gnutls-cli(1)

gnutls-cli - ابزار خط فرمان برای برقراری اتصالات TLS

gnutls-cli [-flags] [-flag [value]] [--option-name[[=| ]value]] [hostname]

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

برنامه کلاینت ساده برای برقراری یک اتصال TLS به رایانه‌ای دیگر. این برنامه یک اتصال TLS برقرار کرده و داده‌ها را از ورودی استاندارد به سوکت امن و برعکس منتقل می‌کند. توجه داشته باشید که این برنامه تنها برای اهداف آزمایشی و عیب‌یابی در نظر گرفته شده است. برای کاربردهای عملی‌تر، استفاده از جایگزین‌هایی مانند GNU Wget را مد نظر قرار دهید.


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

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


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

فعال‌سازی احراز هویت «اعتماد در اولین استفاده» (TOFU). حالت no-tofu این گزینه را غیرفعال می‌کند.

این گزینه، علاوه بر احراز هویت گواهی، احراز هویت را بر پایه کلیدهای عمومی دیده‌شده قبلی انجام می‌دهد؛ مدلی شبیه به احراز هویت SSH. توجه داشته باشید که با مشخص شدن tofu، احراز هویت گواهی (PKI) و DANE به عنوان راهنما جهت کمک به فرآیند پذیرش کلید عمومی عمل خواهند کرد.


در صورت ناشناخته بودن گواهی یا تغییر یک گواهی شناخته‌شده، اتصال برقرار نمی‌شود. حالت no-strict-tofu این گزینه را غیرفعال می‌کند.

این گزینه احراز هویت را مشابه گزینه --tofu انجام می‌دهد؛ با این تفاوت که هیچ پرسشی مطرح نخواهد شد، چه برای پذیرش گواهی ناشناخته و چه برای گواهی تغییریافته.


فعال‌سازی اعتبارسنجی گواهی DANE (از طریق DNSSEC). حالت no-dane این گزینه را غیرفعال می‌کند.

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


استفاده از کارساز DNS محلی برای تحلیل DNSSEC. حالت no-local-dns این گزینه را غیرفعال می‌کند.

این گزینه از کارساز DNS محلی برای DNSSEC استفاده می‌کند. این قابلیت به طور پیش‌فرض به دلیل عدم پشتیبانی بسیاری از سرورها از DNSSEC غیرفعال است.


فعال‌سازی اعتبارسنجی گواهی CA. حالت no-ca-verification این گزینه را غیرفعال می‌کند. این گزینه به صورت پیش‌فرض فعال است.

این گزینه برای فعال یا غیرفعال کردن اعتبارسنجی گواهی CA به کار می‌رود. این گزینه باید به همراه گزینه‌های --dane یا --tofu استفاده شود.


فعال‌سازی اعتبارسنجی گواهی OCSP. حالت no-ocsp این گزینه را غیرفعال می‌کند.

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


برقراری یک نشست و ازسرگیری آن.

اتصال، برقراری یک نشست، اتصال مجدد و ازسرگیری (Resume).


ارسال داده‌های زودهنگام (Early Data) در هنگام ازسرگیری از فایل مشخص‌شده.

برقراری یک نشست و دست‌تکانی مجدد.

اتصال، برقراری یک نشست و دست‌تکانی (Rehandshake) فوری.


نام میزبان سرور برای افزونه نشان‌گذاری نام سرور (SNI).

نام سرور مورد استفاده در افزونه TLS Server Name Indication را به صورت صریح تنظیم می‌کند. این قابلیت هنگام آزمایش سرورهایی که با نام DNS متفاوتی از نام مورد نظر راه‌اندازی شده‌اند مفید است. در صورت عدم تعیین، نام میزبان ارائه‌شده استفاده می‌شود. حتی با این گزینه، اعتبارسنجی گواهی سرور همچنان از نام میزبان واردشده در خط فرمان اصلی استفاده می‌کند. برای تغییر این رفتار از --verify-hostname استفاده کنید.


نام میزبان سرور برای استفاده در اعتبارسنجی.

نام سروری را که باید هنگام اعتبارسنجی گواهی سرور استفاده شود، به صورت صریح تنظیم می‌کند.


اتصال، برقراری نشست ساده و سپس آغاز TLS.

نشست TLS زمانی آغاز خواهد شد که EOF یا سیگنال SIGALRM دریافت شود.


این گزینه نام مستعاری برای گزینه --starttls-proto است.

پروتکل لایه کاربرد مورد استفاده برای دریافت گواهی سرور (https, ftp, smtp, imap, ldap, xmpp, lmtp, pop3, nntp, sieve, postgres). این گزینه نباید در ترکیب با هیچ‌یک از گزینه‌های زیر ظاهر شود: starttls.

پروتکل لایه کاربرد را برای STARTTLS مشخص می‌کند. در صورتی که پروتکل پشتیبانی شود، gnutls-cli به مذاکره TLS ادامه خواهد داد.


نام میزبان ارائه‌شده به پروتکل لایه کاربرد برای STARTTLS (برای smtp، xmpp، lmtp). این گزینه نباید در ترکیب با هیچ‌یک از گزینه‌های زیر ظاهر شود: starttls. این گزینه باید در ترکیب با گزینه‌های زیر استفاده شود: starttls-proto.

نام میزبان ارائه‌شده به پروتکل کاربرد را برای STARTTLS مشخص می‌کند.


استفاده از DTLS (دیتاگرام TLS) بر بستر UDP.

تنظیم MTU برای دیتاگرام TLS. این گزینه یک عدد صحیح را به عنوان آرگومان دریافت می‌کند. مقدار num به این محدوده محدود است:
در محدوده 0 تا 17000


ارسال CR LF به جای LF.

فعال‌سازی TCP Fast Open.

استفاده از قالب DER برای خواندن گواهی‌ها.

چاپ گواهی همتا در قالب PEM.

ذخیره زنجیره گواهی همتا در فایل مشخص‌شده با قالب PEM.

ذخیره پاسخ وضعیت OCSP همتا در فایل مشخص‌شده. این گزینه نباید در ترکیب با هیچ‌یک از گزینه‌های زیر ظاهر شود: save-ocsp-multi.

ذخیره تمامی پاسخ‌های OCSP ارائه‌شده توسط همتا در این فایل. این گزینه نباید در ترکیب با هیچ‌یک از گزینه‌های زیر ظاهر شود: save-ocsp.

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


ذخیره رد پیام‌های TLS سمت سرور در فایل مشخص‌شده.

ذخیره رد پیام‌های TLS سمت کلاینت در فایل مشخص‌شده.

حداقل تعداد بیت‌های مجاز برای DH. این گزینه یک عدد صحیح را به عنوان آرگومان دریافت می‌کند.

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


رشته اولویت‌ها (Priorities string).

الگوریتم‌ها و پروتکل‌های TLS برای فعال‌سازی. می‌توانید از مجموعه‌های از‌پیش‌تعریف‌شده سوئیت‌های رمزنگاری مانند PERFORMANCE، NORMAL، PFS، SECURE128، SECURE256 استفاده کنید. مقدار پیش‌فرض NORMAL است.

برای اطلاعات بیشتر درباره کلیدواژه‌های مجاز، بخش “Priority strings” را در راهنمای GnuTLS بررسی کنید.


فایل گواهی یا نشانی PKCS #11 برای استفاده.

فایل CRL مورد استفاده.

فایل کلید X.509 یا نشانی PKCS #11 برای استفاده.

فایل گواهی X.509 یا نشانی PKCS #11 برای استفاده. این گزینه باید در ترکیب با گزینه‌های زیر استفاده شود: x509keyfile.

فایل کلید خصوصی (PKCS #8 یا PKCS #12) یا نشانی PKCS #11 برای استفاده.

به منظور هدایت برنامه برای مذاکره بر سر کلیدهای عمومی خام (Raw Public Keys)، باید نوع گواهی مربوطه را از طریق رشته‌های اولویت (مانند فلگ‌های CTYPE-CLI-* و CTYPE-SRV-*) فعال کرد.

برای اطلاعات بیشتر در مورد نحوه تنظیم انواع گواهی، بخش “Priority strings” را در راهنمای GnuTLS بررسی کنید.


فایل کلید عمومی خام (Raw Public-Key) برای استفاده. این گزینه باید در ترکیب با گزینه‌های زیر استفاده شود: rawpkkeyfile.

به منظور هدایت برنامه برای مذاکره بر سر کلیدهای عمومی خام، باید نوع گواهی مربوطه را از طریق رشته‌های اولویت (مانند فلگ‌های CTYPE-CLI-* و CTYPE-SRV-*) فعال کرد.

برای اطلاعات بیشتر در مورد نحوه تنظیم انواع گواهی، بخش “Priority strings” را در راهنمای GnuTLS بررسی کنید.


نام کاربری SRP برای استفاده.

گذرواژه SRP برای استفاده.

نام کاربری PSK برای استفاده.

کلید PSK (به صورت هگز) برای استفاده.

درگاه یا سرویس مورد نظر برای اتصال.

عدم توقف برنامه در صورت عدم امکان اعتبارسنجی گواهی سرور.

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

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

در صورت امکان (برای نمونه، هنگام استفاده از مجموعه‌های رمزنگاری CBC)، برای جلوگیری از تحلیل ترافیک از لایه‌گذاری (پدینگ) مخفی‌کننده طول استفاده می‌کند.

نکته: این گزینه منسوخ شده است


ارزیابی کارایی (بنچ‌مارک) رمزهای منفرد.

به طور پیش‌فرض، رمزهای ارزیابی‌شده از هر قابلیتی در پردازنده محلی برای بهبود کارایی استفاده می‌کنند. برای آزمایش در برابر پیاده‌سازی نرم‌افزار خام، متغیر محیطی GNUTLS_CPUID_OVERRIDE را روی 0x1 تنظیم کنید.


ارزیابی کارایی روش‌های تبادل کلید TLS.

ارزیابی کارایی رمزهای TLS.

به طور پیش‌فرض، رمزهای ارزیابی‌شده از هر قابلیتی در پردازنده محلی برای بهبود کارایی استفاده می‌کنند. برای آزمایش در برابر پیاده‌سازی نرم‌افزار خام، متغیر محیطی GNUTLS_CPUID_OVERRIDE را روی 0x1 تنظیم کنید.


چاپ فهرستی از الگوریتم‌ها و حالت‌های پشتیبانی‌شده. این گزینه نباید در ترکیب با هیچ‌یک از گزینه‌های زیر ظاهر شود: port.

فهرستی از الگوریتم‌ها و حالت‌های پشتیبانی‌شده را چاپ می‌کند. اگر یک رشته اولویت داده شود، تنها سوئیت‌های رمزنگاری فعال نشان داده می‌شوند.


چاپ فهرستی از رشته‌های اولویت پشتیبانی‌شده.

فهرستی از رشته‌های اولویت پشتیبانی‌شده را چاپ می‌کند. مجموعه‌های رمزنگاری مربوط به هر رشته اولویت را می‌توان با استفاده از -l -p بررسی کرد.


عدم اجازه استفاده از بلیت‌های نشست (Session Tickets).

غیرفعال کردن درخواست دریافت بلیت‌های نشست در نسخه TLS1.2 یا پایین‌تر.


پیشنهاد مشخصات (پروفایل‌های) SRTP.

پروتکل لایه کاربرد. این گزینه می‌تواند به تعداد نامحدود تکرار شود.

این گزینه مذاکره پروتکل لایه کاربرد (ALPN) را در پروتکل TLS تنظیم و فعال می‌کند.


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

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


فعال‌سازی پشتیبانی از ضربان قلب (Heartbeat).

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


عدم ارسال نشان‌گذاری نام سرور (SNI).

غیرفعال‌سازی تمامی افزونه‌های TLS.

این گزینه تمام افزونه‌های TLS را غیرفعال می‌کند. این گزینه منسوخ شده است؛ از رشته اولویت استفاده کنید.

نکته: این گزینه منسوخ شده است


ارسال یک اشتراک کلید منفرد در TLS1.3.

این گزینه حالت پیش‌فرض ارسال چندین اشتراک کلید را به ارسال یک اشتراک منفرد (بالاترین مورد) تغییر می‌دهد.


فعال‌سازی احراز هویت پس از دست‌تکانی در TLS1.3.

این گزینه احراز هویت پس از دست‌تکانی را در هنگام استفاده از TLS1.3 فعال می‌کند.


دستورات درون‌خطی به فرم ^<cmd>^.

فعال‌سازی دستورات درون‌خطی به فرم ^<cmd>^. این دستورات باید در یک خط مستقل قرار گیرند. دستورات موجود عبارتند از: resume، rekey1 (کلیدگذاری مجدد محلی)، rekey (کلیدگذاری مجدد در هر دو همتا) و renegotiate.


تغییر نویسه جداکننده پیش‌فرض برای دستورات درون‌خطی.

جداکننده پیش‌فرض (^) مورد استفاده برای دستورات درون‌خطی را تغییر می‌دهد. جداکننده باید یک نویسه US-ASCII منفرد (بایت‌های 0 - 127) باشد. این گزینه تنها در صورتی معنادار است که دستورات درون‌خطی از طریق گزینه inline-commands فعال شده باشند.


مشخص کردن کتابخانه ارائه‌دهنده PKCS #11.

این گزینه تنظیمات پیش‌فرض موجود در /etc/gnutls/pkcs11.conf را بازنویسی می‌کند.


گزارش وضعیت حالت FIPS140-2 در کتابخانه gnutls.

گزارش پیکربندی کتابخانه.

هدایت پیام‌های اطلاعاتی به یک فایل مشخص.

پیام‌های اطلاعاتی را به یک فایل مشخص هدایت می‌کند. فایل می‌تواند /dev/null نیز باشد تا کلاینت gnutls بی‌صدا شود و در اتصال‌های پایپ‌شده سرور که تنها ارتباط سرور باید در خروجی استاندارد (stdout) ظاهر شود، قابل استفاده باشد.


برچسب مورد استفاده برای برون‌بری مواد کلید (Keying Material).

اندازه مواد کلید برون‌بری‌شده. این گزینه یک عدد صحیح را به عنوان آرگومان دریافت می‌کند.

مسدودسازی و انتظار برای داده‌های ازسرگیری تحت TLS1.3.

این گزینه باعث می‌شود کلاینت در TLS1.3 منتظر داده‌های ازسرگیری بماند. این گزینه تنها در صورت ارائه --resume اثرگذار است.


فعال‌سازی بازیابی خودکار گواهی‌های مفقود CA. حالت no-ca-auto-retrieve این گزینه را غیرفعال می‌کند.

این گزینه به کلاینت امکان می‌دهد تا به طور خودکار گواهی‌های میانی مفقود CA را در زنجیره گواهی بر اساس افزونه Authority Information Access (AIA) بازیابی کند.


انجام اعتبارسنجی در یک برچسب زمانی خاص به جای زمان سیستم.

برچسب زمانی نقطه‌ای از زمان است که به صورت زمان یونیکس یا رشته زمانی قابل‌خواندن توسط انسان مانند "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).

اتصال با استفاده از احراز هویت PSK
برای اتصال به سرور با استفاده از احراز هویت PSK، باید انتخاب PSK را با استفاده از یک پارامتر اولویت رمز مانند مثال زیر فعال کنید.

$ ./gnutls-cli -p 5556 localhost --pskusername psk_identity     --pskkey 88f3824b3e5659f52d00e959bacab954b6540344     --priority NORMAL:-KX-ALL:+ECDHE-PSK:+DHE-PSK:+PSK
Resolving 'localhost'...
Connecting to '127.0.0.1:5556'...
- PSK authentication.
- Version: TLS1.1
- Key Exchange: PSK
- Cipher: AES-128-CBC
- MAC: SHA1
- Compression: NULL
- Handshake was completed
- Simple Client Mode:

با نگه‌داشتن پارامتر --pskusername و حذف پارامتر --pskkey، تنها گذرواژه در طول دست‌تکانی پرسیده خواهد شد.

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

$ ./gnutls-cli -p 5556 localhost --priority NORMAL:-CTYPE-CLI-ALL:+CTYPE-CLI-RAWPK     --rawpkkeyfile cli.key.pem     --rawpkfile cli.rawpk.pem
Processed 1 client raw public key pair...
Resolving 'localhost'...
Connecting to '127.0.0.1:5556'...
- Successfully sent 1 certificate(s) to server.
- Server has requested a certificate.
- Certificate type: X.509
- Got a certificate list of 1 certificates.
- Certificate[0] info:
 - skipped
- Description: (TLS1.3-Raw Public Key-X.509)-(ECDHE-SECP256R1)-(RSA-PSS-RSAE-SHA256)-(AES-256-GCM)
- Options:
- Handshake was completed
- Simple Client Mode:

اتصال به سرویس‌های STARTTLS

همچنین می‌توانید از کلاینت برای اتصال به سرویس‌هایی با قابلیت STARTTLS استفاده کنید.

$ gnutls-cli --starttls-proto smtp --port 25 localhost

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

$ ./gnutls-cli --priority SECURE192 -l
Cipher suites for SECURE192
TLS_ECDHE_ECDSA_AES_256_CBC_SHA384         0xc0, 0x24	TLS1.2
TLS_ECDHE_ECDSA_AES_256_GCM_SHA384         0xc0, 0x2e	TLS1.2
TLS_ECDHE_RSA_AES_256_GCM_SHA384           0xc0, 0x30	TLS1.2
TLS_DHE_RSA_AES_256_CBC_SHA256             0x00, 0x6b	TLS1.2
TLS_DHE_DSS_AES_256_CBC_SHA256             0x00, 0x6a	TLS1.2
TLS_RSA_AES_256_CBC_SHA256                 0x00, 0x3d	TLS1.2

Certificate types: CTYPE-X.509
Protocols: VERS-TLS1.2, VERS-TLS1.1, VERS-TLS1.0, VERS-SSL3.0, VERS-DTLS1.0
Compression: COMP-NULL
Elliptic curves: CURVE-SECP384R1, CURVE-SECP521R1
PK-signatures: SIGN-RSA-SHA384, SIGN-ECDSA-SHA384, SIGN-RSA-SHA512, SIGN-ECDSA-SHA512

اتصال با استفاده از یک توکن PKCS #11
برای اتصال به سرور با استفاده از یک گواهی و یک کلید خصوصی موجود در یک توکن PKCS #11، باید نشانی‌های اینترنتی PKCS 11 را در پارامترهای x509certfile و x509keyfile جایگزین کنید.

این موارد را می‌توان با استفاده از "p11tool --list-tokens" و سپس فهرست کردن تمام اشیاء در توکن مورد نظر و استفاده از موارد مناسب یافت.

$ p11tool --list-tokens

Token 0:
	URL: pkcs11:model=PKCS15;manufacturer=MyMan;serial=1234;token=Test
	Label: Test
	Manufacturer: EnterSafe
	Model: PKCS15
	Serial: 1234

$ p11tool --login --list-certs "pkcs11:model=PKCS15;manufacturer=MyMan;serial=1234;token=Test"

Object 0:
	URL: pkcs11:model=PKCS15;manufacturer=MyMan;serial=1234;token=Test;object=client;type=cert
	Type: X.509 Certificate
	Label: client
	ID: 2a:97:0d:58:d1:51:3c:23:07:ae:4e:0d:72:26:03:7d:99:06:02:6a

$ MYCERT="pkcs11:model=PKCS15;manufacturer=MyMan;serial=1234;token=Test;object=client;type=cert"
$ MYKEY="pkcs11:model=PKCS15;manufacturer=MyMan;serial=1234;token=Test;object=client;type=private"
$ export MYCERT MYKEY

$ gnutls-cli www.example.com --x509keyfile $MYKEY --x509certfile $MYCERT

توجه داشته باشید که کلید خصوصی تنها در نوع (type) با گواهی تفاوت دارد.

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

0 (EXIT_SUCCESS)

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

عملیات با شکست مواجه شد یا نحو دستور معتبر نبود.

gnutls-cli-debug(1), gnutls-serv(1)

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

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

29 Apr 2026 3.8.13