OPENSSL-S_CLIENT(1ssl) OpenSSL OPENSSL-S_CLIENT(1ssl)

الاسم

openssl-s_client - برنامج عميل SSL/TLS

موجز

openssl s_client [-help] [-ssl_config قسم] [-connect المضيف:المنفذ] [-host اسم_المضيف] [-port المنفذ] [-bind المضيف:المنفذ] [-proxy المضيف:المنفذ] [-proxy_user معرف_المستخدم] [-proxy_pass المعطى] [-unix المسار] [-4] [-6] [-quic] [-servername الاسم] [-noservername] [-verify العمق] [-verify_return_error] [-verify_quiet] [-verifyCAfile اسم_الملف] [-verifyCApath الدليل] [-verifyCAstore المعرف] [-cert اسم_الملف] [-certform DER|PEM|P12] [-cert_chain اسم_الملف] [-build_chain] [-CRL اسم_الملف] [-CRLform DER|PEM] [-crl_download] [-key اسم_الملف|المعرف] [-keyform DER|PEM|P12|ENGINE] [-pass المعطى] [-chainCAfile اسم_الملف] [-chainCApath الدليل] [-chainCAstore المعرف] [-requestCAfile اسم_الملف] [-dane_tlsa_domain النطاق] [-dane_tlsa_rrdata بيانات_rr] [-dane_ee_no_namechecks] [-reconnect] [-showcerts] [-prexit] [-no-interactive] [-debug] [-trace] [-nocommands] [-adv] [-security_debug] [-security_debug_verbose] [-msg] [-timeout] [-mtu الحجم] [-no_ems] [-keymatexport اللصيقة] [-keymatexportlen الطول] [-msgfile اسم_الملف] [-nbio_test] [-state] [-nbio] [-crlf] [-ign_eof] [-no_ign_eof] [-psk_identity الهوية] [-psk المفتاح] [-psk_session الملف] [-quiet] [-sctp] [-sctp_label_bug] [-fallback_scsv] [-async] [-maxfraglen الطول] [-max_send_frag] [-split_send_frag] [-max_pipelines] [-read_buf] [-ignore_unexpected_eof] [-no_tx_cert_comp] [-no_rx_cert_comp] [-brief] [-starttls البروتوكول] [-xmpphost اسم_المضيف] [-name اسم_المضيف] [-tlsextdebug] [-sess_out اسم_الملف] [-sess_in اسم_الملف] [-serverinfo الأنواع] [-status] [-ocsp_check_leaf] [-ocsp_check_all] [-alpn البروتوكولات] [-nextprotoneg البروتوكولات] [-ct] [-noct] [-ctlogfile] [-keylogfile الملف] [-early_data الملف] [-enable_pha] [-use_srtp القيمة] [-srpuser القيمة] [-srppass القيمة] [-srp_lateuser] [-srp_moregroups] [-srp_strength الرقم] [-ktls] [-tfo] [-nameopt الخيار] [-no_ssl3] [-no_tls1] [-no_tls1_1] [-no_tls1_2] [-no_tls1_3] [-ssl3] [-tls1] [-tls1_1] [-tls1_2] [-tls1_3] [-dtls] [-dtls1] [-dtls1_2] [-xkey ملف_المدخلات] [-xcert الملف] [-xchain الملف] [-xchain_build الملف] [-xcertform DER|PEM]> [-xkeyform DER|PEM]> [-CAfile الملف] [-no-CAfile] [-CApath الدليل] [-no-CApath] [-CAstore المعرف] [-no-CAstore] [-bugs] [-no_comp] [-comp] [-no_ticket] [-serverpref] [-client_renegotiation] [-legacy_renegotiation] [-no_renegotiation] [-no_resumption_on_reneg] [-legacy_server_connect] [-no_legacy_server_connect] [-no_etm] [-allow_no_dhe_kex] [-prefer_no_dhe_kex] [-prioritize_chacha] [-strict] [-sigalgs الخوارزميات] [-client_sigalgs الخوارزميات] [-groups المجموعات] [-curves المنحنيات] [-named_curve المنحنى] [-cipher الشيفرات] [-ciphersuites 1.3شيفرات] [-min_protocol أدنى_بروتوكول] [-max_protocol أقصى_بروتوكول] [-record_padding الحشو] [-debug_broken_protocol] [-no_middlebox] [-rand الملفات] [-writerand الملف] [-provider الاسم] [-provider-path المسار] [-provparam [الاسم:]مفتاح=قيمة] [-propquery propq] [-engine المعرف] [-ssl_client_engine المعرف] [-allow_proxy_certs] [-attime الطابع_الزمني] [-no_check_time] [-check_ss_sig] [-crl_check] [-crl_check_all] [-explicit_policy] [-extended_crl] [-ignore_critical] [-inhibit_any] [-inhibit_map] [-partial_chain] [-policy المعطى] [-policy_check] [-policy_print] [-purpose الغرض] [-suiteB_128] [-suiteB_128_only] [-suiteB_192] [-trusted_first] [-no_alt_chains] [-use_deltas] [-auth_level رقم] [-verify_depth رقم] [-verify_email بريد] [-verify_hostname اسم_المضيف] [-verify_ip عنوان_ip] [-verify_name الاسم] [-x509_strict] [-issuer_checks] [-enable_server_rpk] [-enable_client_rpk] [المضيف:المنفذ]

الوصف

ينفذ هذا الأمر عميل SSL/TLS عاماً يتصل بمضيف بعيد باستخدام SSL/TLS. إنه أداة تشخيصية مفيدة جداً لخوادم SSL.

الخيارات

بالإضافة إلى الخيارات أدناه، يدعم هذا الأمر أيضاً الخيارات العامة والخاصة بالعميل الموثقة في قسم "أوامر سطر الأوامر المدعومة" في صفحة دليل SSL_CONF_cmd(3).

اطبع رسالة الاستخدام.
استخدم القسم المحدد من ملف التكوين لضبط كائن SSL_CTX.
يحدد هذا المضيف والمنفذ الاختياري للاتصال بهما. من الممكن اختيار المضيف والمنفذ باستخدام معامل الهدف الموضعي الاختياري بدلاً من ذلك. إذا لم يُحدد هذا ولا معامل الهدف الموضعي، فستُجرى محاولة للاتصال بالمضيف المحلي على المنفذ 4433. إذا كانت سلسلة المضيف عبارة عن عنوان IPv6، فيجب تضمينها بين "[" و "]".
المضيف المراد الاتصال به؛ استخدم -connect بدلاً من ذلك.
اتصل بالمنفذ المحدد؛ استخدم -connect بدلاً من ذلك.
يحدد هذا عنوان المضيف و/أو المنفذ للربط كمصدر للاتصال. بالنسبة لمقابس نطاق-يونكس، يُتجاهل المنفذ ويُستخدم المضيف كعنوان مقبس المصدر. إذا كانت سلسلة المضيف عبارة عن عنوان IPv6، فيجب تضمينها بين "[" و "]".
عند استخدامه مع راية -connect، يستخدم البرنامج المضيف والمنفذ المحددين بهذه الراية ويصدر أمر HTTP CONNECT للاتصال بالخادم المطلوب. إذا كانت سلسلة المضيف عبارة عن عنوان IPv6، فيجب تضمينها بين "[" و "]".
عند استخدامه مع راية -proxy، سيحاول البرنامج الاستيثاق مع الوكيل المحدد باستخدام استيثاق أساسي (base64). ملاحظة: الاستيثاق الأساسي غير آمن؛ إذ تُرسل بيانات الاعتماد إلى الوكيل بترميز base64 سهل العكس قبل إنشاء أي جلسة TLS/SSL. لذلك، يمكن استعادة بيانات الاعتماد هذه بسهولة من قبل أي شخص قادر على شم/تتبع الشبكة. استخدمه بحذر.
مصدر كلمة مرور الوكيل، يُستخدم مع راية -proxy_user. لمزيد من المعلومات حول تنسيق المعطى انظر openssl-passphrase-options(1).
اتصل عبر مقبس نطاق-يونكس المحدد.
-4
استخدم IPv4 فقط.
-6
استخدم IPv6 فقط.
اتصل باستخدام بروتوكول QUIC. إذا حدد، فيجب أيضاً توفير خيار -alpn.
اضبط ملحق TLS SNI (إشارة اسم الخادم) في رسالة ClientHello على القيمة المعطاة. إذا لم يُوفّر -servername، فسيُملأ ملحق TLS SNI بالاسم المعطى لـ -connect إذا كان يتبع تنسيق اسم DNS. إذا لم يُوفّر -connect أيضاً، فسيُضبط SNI على "localhost". هذا هو المبدئي منذ OpenSSL 1.1.1.

على الرغم من أن SNI يجب أن يكون عادةً اسم DNS وليس عنوان IP، إلا أنه في حال توفير -servername فسيُرسل هذا الاسم، بغض النظر عما إذا كان اسم DNS أم لا.

لا يمكن استخدام هذا الخيار بالتزامن مع -noservername.

يمنع إرسال ملحق SNI (إشارة اسم الخادم) في رسالة ClientHello. لا يمكن استخدامه بالتزامن مع خياري -servername أو -dane_tlsa_domain.
شهادة العميل المطلوب استخدامها، إذا طلبها الخادم. المبدئي هو عدم استخدام شهادة.

يمكن تحديد سلسلة شهادة العميل باستخدام -cert_chain.

تنسيق ملف شهادة العميل المطلوب استخدامه؛ غير محدد مبدئياً. انظر openssl-format-options(1) للتفاصيل.
ملف أو معرف مورد لشهادات غير موثوقة لاستخدامها عند محاولة بناء سلسلة الشهادات المتعلقة بالشهادة المحددة عبر خيار -cert. يمكن أن تكون المدخلات بتنسيق PEM أو DER أو PKCS#12.
حدد ما إذا كان ينبغي للتطبيق بناء سلسلة شهادات العميل لتقديمها إلى الخادم.
ملف CRL لاستخدامه للتحقق من شهادة الخادم.
تنسيق ملف CRL؛ غير محدد مبدئياً. انظر openssl-format-options(1) للتفاصيل.
نزّل CRL من نقاط التوزيع في الشهادة. لاحظ أن هذا الخيار يُتجاهل إذا لم يُوفّر خيار -crl_check. لاحظ أن الحجم الأقصى لـ CRL محدود بدالة X509_CRL_load_http(3).
مفتاح العميل الخاص المطلوب استخدامه. إذا لم يُحدد، فسيُستخدم ملف الشهادة لقراءة المفتاح أيضاً.
تنسيق المفتاح؛ غير محدد مبدئياً. انظر openssl-format-options(1) للتفاصيل.
مصدر كلمة مرور المفتاح الخاص وملف الشهادة. لمزيد من المعلومات حول تنسيق المعطى انظر openssl-passphrase-options(1).
عمق التحقق المطلوب استخدامه. يحدد هذا الطول الأقصى لسلسلة شهادات الخادم ويُفعّل التحقق من شهادة الخادم. ما لم يُعطَ خيار -verify_return_error، تستمر عملية التحقق بعد الأخطاء بحيث يمكن رؤية جميع المشكلات في سلسلة الشهادات. كأثر جانبي، لن يفشل الاتصال أبداً بسبب فشل التحقق من شهادة الخادم.

مبدئياً، يُجرى التحقق من صحة شهادات الخادم وسلسلتها فيما يتعلق بغرض خادم (D)TLS ("sslserver"). للتفاصيل انظر "ملحقات الشهادة" في openssl-verification-options(1).

يُفعّل التحقق من شهادة الخادم، تمامًا كما هو الحال مع -verify، ولكنه يعيد أخطاء التحقق بدلاً من الاستمرار. سيؤدي هذا عادةً إلى إجهاض المصافحة بحدوث خطأ فادح.
يَقصر مخرجات التحقق على الأخطاء فقط.
-تحقق_من_ملف_CA اسم_الملف
ملف بتنسيق PEM يحتوي على شهادات موثوقة لاستخدامها في التحقق من شهادة الخادم.
-تحقق_من_مسار_CA دليل
دليل يحتوي على شهادات موثوقة لاستخدامها في التحقق من شهادة الخادم. يجب أن يكون هذا الدليل بـ "تنسيق التجزئة"، راجع openssl-verify(1) لمزيد من المعلومات.
-تحقق_من_مخزن_CA مسار_مورد
مسار المورد (URI) للمخزن الذي يحتوي على الشهادات الموثوقة لاستخدامها في التحقق من شهادة الخادم.
ملف بتنسيق PEM يحتوي على شهادات موثوقة لاستخدامها عند محاولة بناء سلسلة شهادات العميل.
دليل يحتوي على شهادات موثوقة لاستخدامها في بناء سلسلة شهادات العميل المقدمة إلى الخادم. يجب أن يكون هذا الدليل بـ "تنسيق التجزئة"، راجع openssl-verify(1) لمزيد من المعلومات.
مسار المورد (URI) للمخزن الذي يحتوي على الشهادات الموثوقة لاستخدامها عند محاولة بناء سلسلة شهادات العميل. قد يشير المسار إلى شهادة واحدة، أو مجموعة منها. مع المسارات التي تتبع مخطط "file:"، فإنها تعمل عمل -chainCAfile أو -chainCApath، اعتمادًا على ما إذا كان المسار يشير إلى دليل أو ملف واحد. راجع ossl_store-file(7) لمزيد من المعلومات حول مخطط "file:".
-طلب_ملف_CA ملف
ملف يحتوي على قائمة بالشهادات التي ستُرسل أسماء موضوعاتها إلى الخادم في ملحق certificate_authorities. مدعوم فقط في TLS 1.3
-نطاق_dane_tlsa نطاق
يُفعّل استيثاق DANE TLSA (وفق RFC6698/RFC7671) ويحدد نطاق TLSA الأساسي الذي يصبح تلميح SNI المبدئي والمعرف المرجعي الرئيس لفحوصات اسم المضيف. يجب استخدام هذا بالاقتران مع مثيل واحد على الأقل من خيار -dane_tlsa_rrdata أدناه.

عندما ينجح استيثاق DANE، ستتضمن مخرجات التشخيص أدنى عمق (الأقرب إلى 0) قام فيه سجل TLSA باستيثاق شهادة في السلسلة. عندما يكون سجل TLSA هذا هو المفتاح العام لمرساة الثقة "2 1 0" الذي وقّع (بدلاً من مطابقة) الشهادة العليا في السلسلة، يُبلغ عن النتيجة على أنها "استُوثق من المفتاح العام لـ TA". وخلاف ذلك، فإما أن سجل TLSA "طابق شهادة TA" عند عمق موجب أو "طابق شهادة EE" عند العمق 0.

يُستخدم مرة واحدة أو أكثر لتحديد حقول RRDATA لمجموعة سجلات DANE TLSA RRset المرتبطة بالخدمة المستهدفة. تُحدد قيمة rrdata في "شكل العرض"، أي أربعة حقول مفصولة بمسافات بيضاء تحدد الاستخدام، والمنتقي، ونوع المطابقة والبيانات المرتبطة، مع ترميز الأخير منها بالنظام الست عشري. تُتجاهل المسافات البيضاء الاختيارية في حقل البيانات المرتبطة. على سبيل المثال:
$ openssl s_client -brief -starttls smtp \
  -connect smtp.example.com:25 \
  -dane_tlsa_domain smtp.example.com \
  -dane_tlsa_rrdata "2 1 1
    B111DD8A1C2091A89BD4FD60C57F0716CCE50FEEFF8137CDBEE0326E 02CF362B" \
  -dane_tlsa_rrdata "2 1 1
    60B87575447DCBA2A36B7D11AC09FB24A9DB406FEE12D2CC90180517 616E8A18"
...
Verification: OK
Verified peername: smtp.example.com
DANE TLSA 2 1 1 ...ee12d2cc90180517616e8a18 matched TA certificate at depth 1
...
يعطل هذا عمليات التحقق من اسم الخادم عند الاستيثاق عبر سجلات TLSA من نوع DANE-EE(3). بالنسبة لبعض التطبيقات، ولا سيما متصفحات الويب، ليس من الآمن تعطيل فحوصات الأسماء بسبب هجمات "مشاركة المفتاح المجهول"، حيث يمكن لخادم خبيث إقناع عميل بأن الاتصال بخادم ضحية هو بدلاً من ذلك اتصال آمن بالخادم الخبيث. قد يتمكن الخادم الخبيث بعد ذلك من انتهاك قيود البرمجة النصية عبر المواقع. وبناءً على ذلك، وعلى الرغم من نص RFC7671، فإن عمليات التحقق من الأسماء مفعّلة مبدئيًا لسجلات TLSA من نوع DANE-EE(3)، ويمكن تعطيلها في التطبيقات التي يكون فيها ذلك آمنًا. وبوجه خاص، يجب على عملاء SMTP وXMPP ضبط هذا الخيار لأن سجلات SRV وMX تسمح بالفعل لنطاق بعيد بإعادة توجيه اتصالات العملاء إلى أي خادم من اختياره، وفي أي حال لا يقوم عملاء SMTP وXMPP بتنفيذ برامج نصية منزلة من خوادم بعيدة.
يعيد الاتصال بالخادم نفسه 5 مرات باستخدام معرف الجلسة ذاته؛ يمكن استخدام هذا كاختبار للتحقق من عمل خبيئة الجلسة.
يعرض قائمة شهادات الخادم كما أرسلها الخادم: وتتكون فقط من الشهادات التي أرسلها الخادم (بالترتيب الذي أرسلها به). إنها ليست سلسلة مستوثقة.
اطبع معلومات الجلسة عند خروج البرنامج. سيحاول هذا دائمًا طباعة المعلومات حتى لو فشل الاتصال. عادةً ما تُطبع المعلومات مرة واحدة فقط إذا نجح الاتصال. هذا الخيار مفيد لأن التعمية المستخدمة قد يُعاد التفاوض بشأنها أو قد يفشل الاتصال لأن شهادة العميل مطلوبة أو تُطلب فقط بعد محاولة الوصول إلى مسار معين. ملاحظة: المخرجات التي ينتجها هذا الخيار ليست دقيقة دائمًا لأن الاتصال قد لا يكون قد أُنشئ أبدًا.
يمكن استخدام هذه العلامة لتشغيل العميل في وضع غير تفاعلي.
يطبع حالات جلسة SSL.
اطبع معلومات تنقيح واسعة النطاق بما في ذلك تفريغ ست عشري لجميع حركة المرور.
لا تستخدم أحرف الأوامر التفاعلية.
استخدم وضع الأوامر المتقدم.
فعّل رسائل تنقيح الأمان.
أخرج مزيدًا من مخرجات تنقيح الأمان.
أظهر رسائل البروتوكول.
فعّل مهلة الإرسال/الاستقبال في اتصالات DTLS.
اضبط وحدة النقل العظمى (MTU) لطبقة الربط على الحجم المحدد.
عطّل تفاوض السر الرئيس الممتد.
صدّر مادة المفاتيح باستخدام اللصيقة المحددة.
صدّر العدد المحدد من بايتات مادة المفاتيح؛ المبدئي هو 20.

أظهر جميع رسائل البروتوكول مع تفريغ ست عشري.

أظهر مخرجات تتبع مسهبة لرسائل البروتوكول.
الملف الذي ستُرسل مخرجات -msg أو -trace إليه، والافتراضي هو المخرجات القياسية.
يختبر الإدخال/الإخراج غير المسدود
يُفعّل الإدخال/الإخراج غير المسدود
يترجم هذا الخيار تغذية السطر من الطرفية إلى CR+LF كما تتطلب بعض الخوادم.
منع إغلاق الاتصال عند الوصول إلى نهاية الملف في المدخلات. يؤدي هذا ضمناً إلى تشغيل -nocommands أيضاً.
منع طباعة معلومات الجلسة والشهادة. يؤدي هذا ضمناً إلى تشغيل -ign_eof و -nocommands أيضاً.
إغلاق الاتصال عند الوصول إلى نهاية الملف في المدخلات. يمكن استخدامه لتجاوز خيار -ign_eof الضمني بعد -quiet.
استخدم هوية PSK المسماة identity عند استخدام طقم تعمية PSK. القيمة المبدئية هي "Client_identity" (بدون علامات الاقتباس).
استخدم مفتاح PSK المسمى key عند استخدام طقم تعمية PSK. يُعطى المفتاح كرقم ست عشري بدون بادئة 0x، على سبيل المثال -psk 1a2b3c4d. يجب توفير هذا الخيار من أجل استخدام تعمية PSK.
استخدم بيانات SSL_SESSION المرمزة بـ pem والمخزنة في ملف كأساس لـ PSK. لاحظ أن هذا لن يعمل إلا إذا فُووِض على TLSv1.3.
استخدم SCTP لبروتوكول النقل بدلاً من UDP في DTLS. يجب استخدامه بالتزامن مع -dtls أو -dtls1 أو -dtls1_2. يتوفر هذا الخيار فقط عندما يكون لدى OpenSSL دعم مفعل لـ SCTP.
استخدم السلوك غير الصحيح لتطبيقات OpenSSL الأقدم عند حساب الأسرار المشتركة لزوج الأطراف لـ DTLS/SCTP. يسمح هذا بالتواصل مع التطبيقات القديمة المعطلة ولكنه يكسر التوافقية مع التطبيقات الصحيحة. يجب استخدامه بالتزامن مع -sctp. يتوفر هذا الخيار فقط عندما يكون لدى OpenSSL دعم مفعل لـ SCTP.
إرسال TLS_FALLBACK_SCSV في ClientHello.
تشغيل الوضع غير المتزامن. سيتم إجراء العمليات التعموية بشكل غير متزامن. لن يكون لهذا تأثير إلا إذا استُخدم محرك قادر على العمل بشكل غير متزامن عبر الخيار -engine. لأغراض الاختبار، يمكن استخدام محرك async الوهمي (dasync) (إذا كان متاحاً).
تمكين التفاوض على أقصى طول للقطعة؛ القيم المسموح بها هي 512، و 1024، و 2048، و 4096.
أقصى حجم لقطعة البيانات المراد إرسالها. انظر SSL_CTX_set_max_send_fragment(3) لمزيد من المعلومات.
الحجم المستخدم لتقسيم البيانات لأنابيب التعمية. إذا كُتبت بيانات أكثر دفعة واحدة من هذه القيمة فستُقسم إلى أنابيب متعددة، حتى أقصى عدد من الأنابيب المعرف بواسطة max_pipelines. لن يكون لهذا تأثير إلا إذا فُووِض على طقم تعمية مناسب، وحُمّل محرك يدعم الأنابيب، وكان max_pipelines أكبر من 1. انظر SSL_CTX_set_split_send_fragment(3) لمزيد من المعلومات.
أقصى عدد من أنابيب التعمية/فك التعمية التي ستُستخدم. لن يكون لهذا تأثير إلا إذا حُمّل محرك يدعم الأنابيب (مثل محرك dasync) وفُووِض على طقم تعمية مناسب. القيمة المبدئية هي 1. انظر SSL_CTX_set_max_pipelines(3) لمزيد من المعلومات.
حجم ذاكرة القراءة الوسيطة المبدئي المستخدم للاتصالات. لن يكون لهذا تأثير إلا إذا كان حجم الذاكرة الوسيطة أكبر من الحجم الذي كان سيُستخدم لولا ذلك وكانت تقنية التدفق (pipelining) قيد الاستخدام (انظر SSL_CTX_set_default_read_buffer_len(3) لمزيد من المعلومات).
بعض تطبيقات TLS لا ترسل تنبيه close_notify الإلزامي عند إيقاف التشغيل. إذا حاول التطبيق انتظار تنبيه close_notify ولكن الطرف الآخر أغلق الاتصال دون إرساله، يُولَّد خطأ. عند تمكين هذا الخيار، لا يحتاج الطرف الآخر لإرسال تنبيه close_notify وسيُعامل الاتصال المغلق كما لو استُلم التنبيه. لمزيد من المعلومات حول إغلاق الاتصال، انظر SSL_shutdown(3).
يعطل دعم إرسال شهادات TLSv1.3 المضغوطة.
يعطل دعم استقبال شهادات TLSv1.3 المضغوطة.
توفير ملخص موجز لمعلمات الاتصال فقط بدلاً من المخرجات التفصيلية العادية.
إرسال الرسائل الخاصة بالبروتوكول للتبديل إلى TLS للاتصال. protocol هي كلمة مفتاحية للبروتوكول المقصود. حالياً، الكلمات المفتاحية المدعومة فقط هي "smtp"، و "pop3"، و "imap"، و "ftp"، و "xmpp"، و "xmpp-server"، و "irc"، و "postgres"، و "mysql"، و "lmtp"، و "nntp"، و "sieve" و "ldap".
يحدد هذا الخيار، عند استخدامه مع "-starttls xmpp" أو "-starttls xmpp-server"، المضيف لسمة "to" لعنصر التدفق. إذا لم يحدد هذا الخيار، فسيُستخدم المضيف المحدد باستخدام "-connect".

هذا الخيار هو اسم مستعار لخيار -name لـ "xmpp" و "xmpp-server".

يستخدم هذا الخيار لتحديد معلومات اسم المضيف لمختلف البروتوكولات المستخدمة مع خيار -starttls. حالياً فقط "xmpp"، و "xmpp-server"، و "smtp" و "lmtp" يمكنها الاستفادة من خيار -name هذا.

إذا استُخدم هذا الخيار مع "-starttls xmpp" أو "-starttls xmpp-server"، فإنه يحدد المضيف لسمة "to" لعنصر التدفق. إذا لم يحدد هذا الخيار، فسيُستخدم المضيف المحدد باستخدام "-connect".

إذا استُخدم هذا الخيار مع "-starttls lmtp" أو "-starttls smtp"، فإنه يحدد الاسم المراد استخدامه في رسالة "LMTP LHLO" أو "SMTP EHLO" على التوالي. إذا لم يحدد هذا الخيار، فسيُستخدم "mail.example.com".

طباعة تفريغ ست عشري لأي امتدادات TLS مُستلمة من الخادم.
إخراج جلسة SSL إلى filename.
تحميل جلسة SSL من filename. سيحاول العميل استئناف اتصال من هذه الجلسة.
قائمة بأنواع امتدادات TLS مفصولة بفاصلة (أرقام بين 0 و 65535). سيُرسل كل نوع كامتداد ClientHello TLS فارغ. سيُرمز استجابة الخادم (إن وجدت) وتُعرض كملف PEM.
يرسل طلب حالة شهادة إلى الخادم (تدبيس OCSP). تُطبع استجابة الخادم (إن وجدت).
يتطلب إجراء فحص حالة شهادة الخادم (كيان النهاية)، حيث تُجرَّب أي استجابة OCSP متوفرة في مصافحة TLS (بواسطة ما يسمى "تدبيس OCSP") أولاً. إذا تعذر العثور على استجابة OCSP صالحة وحاسمة، يُحاول الفحص المستند إلى CRL كبديل إذا كان مُمكناً، وإلا سيفشل فحص الحالة.

يستلزم هذا -status.

مثل الخيار السابق، ولكن يتطلب إجراء فحص حالة الشهادة أيضاً لسلسلة المصدر لشهادة الخادم (أي شهادات CA الوسيطة، باستثناء مرساة الثقة).

يستلزم هذا -status و -ocsp_check_leaf.

تمكن هذه الأعلام امتداد تفاوض بروتوكول طبقة التطبيق (ALPN) أو تفاوض البروتوكول التالي (NPN)، على التوالي. ALPN هو معيار IETF ويحل محل NPN. قائمة protocols هي قائمة مفصولة بفاصلة لأسماء البروتوكولات التي يجب على العميل الإعلان عن دعمها. يجب أن تحتوي القائمة على البروتوكولات الأكثر رغبة أولاً. أسماء البروتوكولات هي سلاسل ASCII قابلة للطباعة، على سبيل المثال "http/1.1" أو "spdy/3". تُعامل القائمة الفارغة للبروتوكولات بشكل خاص وستؤدي إلى إعلان العميل عن دعم امتداد TLS ولكنه سيقطع الاتصال فور استلام ServerHello مع قائمة بالبروتوكولات التي يدعمها الخادم. لا يمكن تحديد العلم -nextprotoneg إذا استُخدم -tls1_3.
استخدم أحد هذين الخيارين للتحكم فيما إذا كانت شفافية الشهادة (CT) مُمكّنة (-ct) أو معطلة (-noct). إذا كانت CT مُمكّنة، فسيُطلب طوابع زمنية للشهادات الموقعة (SCTs) من الخادم ويُبلّغ عنها عند اكتمال المصافحة.

تمكين CT يمكن أيضاً تدبيس OCSP، حيث أن هذا أحد طرق التسليم الممكنة لـ SCTs.

ملف يحتوي على قائمة بسجلات شفافية الشهادات المعروفة. انظر SSL_CTX_set_ctlog_list_file(3) لتنسيق الملف المتوقع.
يلحق أسرار TLS لملف سجل المفاتيح المحدد بحيث تتمكن البرامج الخارجية (مثل Wireshark) من فك تعمية اتصالات TLS.
يقرأ محتويات الملف المحدد ويحاول إرسالها كبيانات مبكرة إلى الخادم. لن يعمل هذا إلا مع الجلسات المُستأنفة التي تدعم البيانات المبكرة وعندما يقبل الخادم البيانات المبكرة.
لإصدار TLSv1.3 فقط، يُرسل ملحق الاستيثاق ما بعد المصافحة. سيحدث هذا سواء وُفرت شهادة عبر -cert أم لا.
يعرض إدارة مفاتيح SRTP، حيث تكون value عبارة عن قائمة تشكيلات مفصولة بنقطتين.
يضبط اسم مستخدم SRP على القيمة المحددة. هذا الخيار مهجور.
يضبط كلمة سر SRP على القيمة المحددة. هذا الخيار مهجور.
اسم مستخدم SRP لرسالة ClientHello الثانية. هذا الخيار مهجور.
يتسامح مع قيم بخلاف قيم g و N المعروفة.
يضبط الحد الأدنى للطول المقبول، بالبِتات، لـ N. هذا الخيار مهجور.
تفعيل نواة TLS للإرسال والاستقبال. قُدم هذا الخيار في OpenSSL 3.2.0. تكون نواة TLS معطلة مبدئيًا اعتبارًا من OpenSSL 3.2.0.
تفعيل إنشاء الاتصالات عبر الفتح السريع لـ TCP‏ (RFC7413).
انظر "خيارات إصدار TLS" في openssl(1).
تحدد هذه استخدام DTLS بدلاً من TLS. انظر "خيارات إصدار TLS" في openssl(1).
يحدد هذا كيفية عرض أسماء الموضوع أو المُصدر. انظر openssl-namedisplay-options(1) للحصول على التفاصيل.
اضبط خيارات التحقق الموسعة من الشهادة. انظر "Extended Verification Options" في openssl-verification-options(1) للتفاصيل.
انظر "Trusted Certificate Options" في openssl-verification-options(1) للتفاصيل.
انظر "SUPPORTED COMMAND LINE COMMANDS" في SSL_CONF_cmd(3) للتفاصيل.
انظر "خيارات الحالة العشوائية" في openssl(1) لمزيد من التفاصيل.
انظر "خيارات المزود" في openssl(1)، و provider(7)، و property(7).
انظر "خيارات المحرك" في openssl(1). هذا الخيار مهجور.
حدد المحرك المراد استخدامه لعمليات شهادة العميل.
اضبط خيارات متنوعة للتحقق من سلسلة الشهادات. انظر "خيارات التحقق" في openssl-verification-options(1) للحصول على التفاصيل.

تُعرض أخطاء التحقق، لغرض التنقيح، لكن سيستمر الأمر ما لم يُستخدم خيار -verify_return_error.

تفعيل دعم استقبال المفاتيح العامة الخام (RFC7250) من الخادم. يصبح استخدام شهادات X.509 من قِبل الخادم اختيارياً، وقد تختار الخوادم التي تدعم المفاتيح العامة الخام استخدامها. أما الخوادم التي لا تدعم المفاتيح العامة الخام أو تفضل استخدام شهادات X.509 فيمكنها الاستمرار في إرسال شهادات X.509 كالمعتاد.
تفعيل دعم إرسال المفاتيح العامة الخام (RFC7250) إلى الخادم. سيُرسل العميل مفتاحاً عاماً خاماً إذا طلبه الخادم، بشرط أن يكون قد ضُبط زوج مناسب من المفتاح والشهادة العامة. ومع ذلك، قد لا تطلب بعض الخوادم أي وثائق استيثاق للعميل، أو قد تطلب شهادة.
المضيف:المنفذ
بدلاً من توفير -connect، يمكن توفير المضيف المستهدف والمنفذ الاختياري كوسيط موضعي واحد بعد كل الخيارات. إذا لم يُوفر هذا ولا -connect، فسيتم الرجوع لمحاولة الاتصال بـ localhost على المنفذ 4433. إذا كانت سلسلة المضيف عبارة عن عنوان IPv6، فيجب وضعها بين "[" و "]".

الأوامر المتصلة (أساسية)

إذا أُنشئ اتصال مع خادم SSL/TLS، فستُعرض أي بيانات مستلمة من الخادم وتُرسل أي ضغطات مفاتيح إلى الخادم. إذا وُصل إلى نهاية الملف، فسيُغلق الاتصال.

عند استخدامه بشكل تفاعلي (مما يعني عدم إعطاء -quiet ولا -ign_eof)، وعدم إعطاء أي من -adv أو -nocommands، فسيتم الدخول في وضع الأوامر "الأساسي". في هذا الوضع، يتم التعرف على أوامر معينة تقوم بعمليات خاصة. هذه الأوامر هي عبارة عن حرف يجب أن يظهر في بداية السطر. يتم تجاهل كافة البيانات الإضافية بعد الحرف الأولي في السطر. الأوامر مدرجة أدناه.

إنهاء اتصال SSL الحالي والخروج.
إعادة التفاوض على جلسة SSL (TLSv1.2 وما قبله فقط).
محاولة إعادة الاتصال بالخادم باستخدام مصافحة الاستئناف.
إرسال رسالة تحديث مفتاح إلى الخادم (TLSv1.3 فقط)
أرسل رسالة تحديث مفتاح إلى الخادم واطلب رسالة مقابلة (بروتوكول TLSv1.3 فقط)

الأوامر المتصلة (متقدمة)

إذا أُعطي الخيار -adv، فسيُدخل في وضع الأوامر «المتقدم». وكما هو الحال في الوضع الأساسي، إذا أُنشئ اتصال مع خادم SSL/TLS، فستُعرض أي بيانات مستلمة من الخادم وستُرسل أي ضغطات مفاتيح إليه. إذا وُصل إلى نهاية الملف، فسيُغلق الاتصال.

يمكن توفير أوامر خاصة عبر إحاطتها بأقواس، مثل "{help}" أو "{quit}". يمكن أن تظهر هذه الأوامر في أي مكان في النص المُدخل في s_client، ولكنها لا تُرسل إلى الخادم. يمكن لبعض الأوامر أن تأخذ وسيطًا عبر إنهاء اسم الأمر بالعلامة ":" ثم توفير الوسيط، مثل "{keyup:req}". لا تتوفر بعض الأوامر إلا عند التفاوض على إصدارات بروتوكول معينة.

إذا ظهر سطر جديد في نهاية سطر مُدخل في s_client، فسيُرسل أيضًا إلى الخادم. إذا ظهر أمر في سطر بمفرده دون أي نص آخر في نفس السطر، فسيُكتم السطر الجديد ولن يُرسل إلى الخادم.

الأوامر التالية معروفة.

يطبع نص مساعدة ملخصًا حول الأوامر المتاحة.
أغلق الاتصال بالقرين
أعد الاتصال بالقرين وحاول إجراء مصافحة استئناف
أرسل رسالة تحديث مفتاح. لبروتوكول TLSv1.3 فقط. يأخذ هذا الأمر وسيطًا اختياريًا. إذا قُدم الوسيط "req"، فسيُطلب من القرين أيضًا تحديث مفاتيحه. خلاف ذلك، إذا قُدم "noreq"، فلن يُطلب من القرين تحديث مفاتيحه. القيمة المبدئية هي "req".
ابدأ إعادة تفاوض مع الخادم. لبروتوكول (D)TLSv1.2 أو ما دونه فقط.
أشر إلى علامة FIN على الدفق الحالي. لبروتوكول QUIC فقط. بمجرد إرسال FIN، سيُتجاهل أي نص إضافي يُدخل لهذا الدفق.

ملاحظات

يمكن استخدام هذا الأمر لتنقيح خوادم SSL. للاتصال بخادم SSL HTTP، فإن الأمر:

openssl s_client -connect servername:443

سيُستخدم عادةً (يستخدم https المنفذ 443). إذا نجح الاتصال، فيمكن إعطاء أمر HTTP مثل "GET /" لجلب صفحة ويب.

إذا فشلت المصافحة، فهناك عدة أسباب محتملة؛ إذا لم يكن هناك شيء واضح مثل غياب شهادة العميل، فيمكن تجربة الخيارات -bugs و -ssl3 و -tls1 و -no_ssl3 و -no_tls1 في حال كان الخادم به علل. وبشكل خاص، يجب عليك تجربة هذه الخيارات قبل إرسال تقرير عن علة إلى القوائم البريدية لـ OpenSSL.

من المشاكل الشائعة عند محاولة تشغيل شهادات العميل هي أن عميل الويب يشتكي من عدم وجود شهادات أو يعرض قائمة فارغة للاختيار منها. يعود هذا عادةً إلى أن الخادم لا يرسل مرجع شهادات العملاء في «قائمة مراجع المصدقات المقبولة» عندما يطلب شهادة. باستخدام هذا الأمر، يمكن عرض قائمة المراجع والتحقق منها. ومع ذلك، لا تطلب بعض الخوادم استيثاق العميل إلا بعد طلب عنوان URL محدد. للحصول على القائمة في هذه الحالة، من الضروري استخدام الخيار -prexit وإرسال طلب HTTP لصفحة مناسبة.

إذا حُددت شهادة على سطر الأوامر باستخدام خيار -cert فلن تُستخدم ما لم يطلب الخادم تحديدا شهادة عميل. لذلك، مجرد تضمين شهادة عميل على سطر الأوامر ليس ضمانا بأن الشهادة ستعمل.

إذا كانت هناك مشاكل في التحقق من شهادة الخادم، فيمكن استخدام الخيار -showcerts لعرض جميع الشهادات المرسلة من الخادم.

هذا الأمر هو أداة اختبار وصُمم لمواصلة المصافحة بعد أي أخطاء في التحقق من الشهادة. ونتيجة لذلك، سيقبل أي سلسلة شهادات (موثوقة أو غير موثوقة) يرسلها القرين. يجب ألا تقوم التطبيقات غير الاختبارية بذلك لأنها تجعلها عرضة لهجمات الوسيط (MITM). يمكن تغيير هذا السلوك باستخدام الخيار -verify_return_error: حيث ستُرجع أي أخطاء في التحقق مما يؤدي إلى إجهاض المصافحة.

قد يكون الخيار -bind مفيدًا إذا كان الخادم أو جدار الحماية يتطلب أن تأتي الاتصالات من عنوان أو منفذ معين.

ملاحظة حول الاستخدام غير التفاعلي

عند تشغيل s_client في بيئة غير تفاعلية (مثل وظيفة cron أو نص برمجى بدون دخل stdin صالح)، فقد يُغلق الاتصال قبل الأوان، خاصة مع TLS 1.3. لمنع ذلك، يمكنك استخدام علامة -ign_eof، التي تُبقي s_client قيد التشغيل حتى بعد الوصول إلى نهاية ملف (EOF) من stdin.

على سبيل المثال:

openssl s_client -connect <server address>:443 -tls1_3
                 -sess_out /path/to/tls_session_params_file
                 -ign_eof </dev/null

ومع ذلك، فإن الاعتماد فقط على -ign_eof يمكن أن يؤدي إلى مشاكل إذا أبقى الخادم الاتصال مفتوحًا متوقعًا أن يقوم العميل بالإغلاق أولاً. في مثل هذه الحالات، قد يتوقف العميل عن الاستجابة إلى أجل غير مسمى. هذا السلوك ليس نادرًا، خاصة مع البروتوكولات التي ينتظر فيها الخادم قطع اتصال لبق من العميل.

على سبيل المثال، عند الاتصال بخادم SMTP، قد تتوقف الجلسة مؤقتًا إذا كان الخادم يتوقع أمر QUIT قبل الإغلاق:

$ openssl s_client -brief -ign_eof -starttls smtp
                   -connect <server address>:25 </dev/null
CONNECTION ESTABLISHED
Protocol version: TLSv1.3
Ciphersuite: TLS_AES_256_GCM_SHA384
...
250 CHUNKING
[long pause]

لتجنب مثل هذا التوقف، من الأفضل استخدام أمر على مستوى التطبيق لبدء قطع اتصال نظيف. بالنسبة لبروتوكول SMTP، يمكنك إرسال أمر QUIT:

printf 'QUIT\r\n' | openssl s_client -connect <server address>:25
                                     -starttls smtp -brief -ign_eof

بالمثل، بالنسبة لاتصالات HTTP/1.1، فإن تضمين ترويسة `Connection: close` يضمن أن الخادم سيغلق الاتصال بعد الاستجابة:

printf 'GET / HTTP/1.1\r\nHost: <server address>\r\nConnection: close\r\n\r\n'
    | openssl s_client -connect <server address>:443 -brief

تساعد هذه الأساليب في إدارة إغلاق الاتصال بلباقة ومنع التوقف الناجم عن انتظار الخادم للعميل لبدء قطع الاتصال.

العلل

نظرًا لأن هذا البرنامج يحتوي على الكثير من الخيارات ولأن بعض التقنيات المستخدمة قديمة نوعًا ما، فإن كود المصدر بلغة C لهذا الأمر يصعب قراءته وليس نموذجًا لكيفية القيام بالأشياء. أي برنامج عميل SSL نموذجي سيكون أبسط بكثير.

الخيار -prexit هو نوع من الحلول المؤقتة. يجب علينا حقًا الإبلاغ عن المعلومات في كل مرة تُعاد فيها المفاوضة على جلسة.

انظر أيضًا

openssl(1), openssl-sess_id(1), openssl-s_server(1), openssl-ciphers(1), SSL_CONF_cmd(3), SSL_CTX_set_max_send_fragment(3), SSL_CTX_set_split_send_fragment(3), SSL_CTX_set_max_pipelines(3), ossl_store-file(7)

التاريخ

أُضيف الخيار -no_alt_chains في الإصدار 1.1.0 من OpenSSL. وأُضيف الخيار -name في الإصدار 1.1.1 من OpenSSL.

أصبح الخيار -certform مهجورًا في الإصدار 3.0.0 من OpenSSL وليس له أي تأثير.

خيار -engine أصبح مهجوراً في OpenSSL 3.0.

أُضيفت الخيارات -enable_client_rpk و -enable_server_rpk و -no_rx_cert_comp و -no_tx_cert_comp و -tfo في OpenSSL 3.2.

أُضيف الخياران <-ocsp_check_leaf> و -ocsp_check_all في OpenSSL 3.6.

حقوق النسخ

حقوق النشر 2000-2025 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة.

مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط https://www.openssl.org/source/license.html.

ترجمة

تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.

7 أبريل 2026 3.6.2