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).

-help
    اطبع رسالة الاستخدام.

-ssl_config قسم
    استخدم القسم المحدد من ملف التكوين لضبط كائن SSL_CTX.

-connect المضيف:المنفذ
    يحدد هذا المضيف والمنفذ الاختياري للاتصال بهما. من الممكن اختيار المضيف والمنفذ باستخدام معامل الهدف الموضعي الاختياري بدلاً من ذلك. إذا لم يُحدد هذا ولا معامل الهدف الموضعي، فستُجرى محاولة للاتصال بالمضيف المحلي على المنفذ 4433. إذا كانت سلسلة المضيف عبارة عن عنوان IPv6، فيجب تضمينها بين "[" و "]".

-host اسم_المضيف
    المضيف المراد الاتصال به؛ استخدم -connect بدلاً من ذلك.

-port المنفذ
    اتصل بالمنفذ المحدد؛ استخدم -connect بدلاً من ذلك.

-bind المضيف:المنفذ
    يحدد هذا عنوان المضيف و/أو المنفذ للربط كمصدر للاتصال. بالنسبة لمقابس نطاق-يونكس، يُتجاهل المنفذ ويُستخدم المضيف كعنوان مقبس المصدر. إذا كانت سلسلة المضيف عبارة عن عنوان IPv6، فيجب تضمينها بين "[" و "]".

-proxy المضيف:المنفذ
    عند استخدامه مع راية -connect، يستخدم البرنامج المضيف والمنفذ المحددين بهذه الراية ويصدر أمر HTTP CONNECT للاتصال بالخادم المطلوب. إذا كانت سلسلة المضيف عبارة عن عنوان IPv6، فيجب تضمينها بين "[" و "]".

-proxy_user معرف_المستخدم
    عند استخدامه مع راية -proxy، سيحاول البرنامج الاستيثاق مع الوكيل المحدد باستخدام استيثاق أساسي (base64). ملاحظة: الاستيثاق الأساسي غير آمن؛ إذ تُرسل بيانات الاعتماد إلى الوكيل بترميز base64 سهل العكس قبل إنشاء أي جلسة TLS/SSL. لذلك، يمكن استعادة بيانات الاعتماد هذه بسهولة من قبل أي شخص قادر على شم/تتبع الشبكة. استخدمه بحذر.

-proxy_pass المعطى
    مصدر كلمة مرور الوكيل، يُستخدم مع راية -proxy_user. لمزيد من المعلومات حول تنسيق المعطى انظر openssl-passphrase-options(1).

-unix المسار
    اتصل عبر مقبس نطاق-يونكس المحدد.

-4  استخدم IPv4 فقط.

-6  استخدم IPv6 فقط.

-quic
    اتصل باستخدام بروتوكول QUIC. إذا حدد، فيجب أيضًا توفير خيار -alpn.

-servername الاسم
    اضبط ملحق TLS SNI (إشارة اسم الخادم) في رسالة ClientHello على القيمة المعطاة. إذا لم يُوفّر -servername، فسيُملأ ملحق TLS SNI بالاسم المعطى لـ -connect إذا كان يتبع تنسيق اسم DNS. إذا لم يُوفّر -connect أيضًا، فسيُضبط SNI على "localhost". هذا هو المبدئي منذ OpenSSL 1.1.1.

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

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

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

-cert اسم_الملف
    شهادة العميل المطلوب استخدامها، إذا طلبها الخادم. المبدئي هو عدم استخدام شهادة.

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

-certform DER|PEM|P12
    تنسيق ملف شهادة العميل المطلوب استخدامه؛ غير محدد مبدئياً. انظر openssl-format-options(1) للتفاصيل.

-cert_chain
    ملف أو معرف مورد لشهادات غير موثوقة لاستخدامها عند محاولة بناء سلسلة الشهادات المتعلقة بالشهادة المحددة عبر خيار -cert. يمكن أن تكون المدخلات بتنسيق PEM أو DER أو PKCS#12.

-build_chain
    حدد ما إذا كان ينبغي للتطبيق بناء سلسلة شهادات العميل لتقديمها إلى الخادم.

-CRL اسم_الملف
    ملف CRL لاستخدامه في التحقق من شهادة الخادم.

-CRLform DER|PEM
    صيغة ملف CRL؛ غير محددة مبدئيًا. انظر openssl-format-options(1) للتفاصيل.

-crl_download
    نزّل CRL من نقاط التوزيع في الشهادة. لاحظ أن هذا الخيار يُتجاهل إذا لم يُوفّر خيار -crl_check. لاحظ أن الحجم الأقصى لـ CRL محدود بدالة X509_CRL_load_http(3).

-key اسم_الملف|معرف_المورد
    مفتاح العميل الخاص المطلوب استخدامه. إذا لم يُحدد، فسيُستخدم ملف الشهادة لقراءة المفتاح أيضًا.

-keyform DER|PEM|P12|ENGINE
    تنسيق المفتاح؛ غير محدد بشكل مبدئي. انظر openssl-format-options(1) للحصول على التفاصيل.

-pass المعطى
    مصدر كلمة مرور المفتاح الخاص وملف الشهادة. لمزيد من المعلومات حول تنسيق المعطى انظر openssl-passphrase-options(1).

-verify عمق
    عمق التحقق المطلوب استخدامه. يحدد هذا الطول الأقصى لسلسلة شهادات الخادم ويُفعّل التحقق من شهادة الخادم. ما لم يُعطَ خيار -verify_return_error، تستمر عملية التحقق بعد الأخطاء بحيث يمكن رؤية جميع المشكلات في سلسلة الشهادات. كأثر جانبي، لن يفشل الاتصال أبداً بسبب فشل التحقق من شهادة الخادم.

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

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

-verify_quiet
    يَقصر مخرجات التحقق على الأخطاء فقط.

-verifyCAfile اسم_الملف
    ملف بتنسيق PEM يحتوي على الشهادات الموثوقة لاستخدامها في التحقق من شهادة الخادم.

-verifyCApath دليل
    مجلد يحتوي على الشهادات الموثوقة لاستخدامها في التحقق من شهادة الخادم. يجب أن يكون هذا المجلد بـ «تنسيق التجزئة»، انظر openssl-verify(1) لمزيد من المعلومات.

-verifyCAstore uri
    عنوان URI لمخزن يحتوي على شهادات موثوقة لاستخدامها في التحقق من شهادة الخادم.

-chainCAfile ملف
    ملف بتنسيق PEM يحتوي على شهادات موثوقة لاستخدامها عند محاولة بناء سلسلة شهادات العميل.

-chainCApath دليل
    دليل يحتوي على شهادات موثوقة لاستخدامها في بناء سلسلة شهادات العميل المقدمة إلى الخادم. يجب أن يكون هذا الدليل بـ "تنسيق التجزئة"، راجع openssl-verify(1) لمزيد من المعلومات.

-chainCAstore uri
    مسار المورد (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.

-dane_tlsa_rrdata rrdata
    يُستخدم مرة واحدة أو أكثر لتحديد حقول 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
      ...

-dane_ee_no_namechecks
    يعطل هذا عمليات التحقق من اسم الخادم عند الاستيثاق عبر سجلات TLSA من نوع DANE-EE(3). بالنسبة لبعض التطبيقات، ولا سيما متصفحات الويب، ليس من الآمن تعطيل فحوصات الأسماء بسبب هجمات "مشاركة المفتاح المجهول"، حيث يمكن لخادم خبيث إقناع عميل بأن الاتصال بخادم ضحية هو بدلاً من ذلك اتصال آمن بالخادم الخبيث. قد يتمكن الخادم الخبيث بعد ذلك من انتهاك قيود البرمجة النصية عبر المواقع. وبناءً على ذلك، وعلى الرغم من نص RFC7671، فإن عمليات التحقق من الأسماء مفعّلة مبدئيًا لسجلات TLSA من نوع DANE-EE(3)، ويمكن تعطيلها في التطبيقات التي يكون فيها ذلك آمنًا. وبوجه خاص، يجب على عملاء SMTP وXMPP ضبط هذا الخيار لأن سجلات SRV وMX تسمح بالفعل لنطاق بعيد بإعادة توجيه اتصالات العملاء إلى أي خادم من اختياره، وفي أي حال لا يقوم عملاء SMTP وXMPP بتنفيذ برامج نصية منزلة من خوادم بعيدة.

-reconnect
    يعيد الاتصال بالخادم نفسه 5 مرات باستخدام معرف الجلسة ذاته؛ يمكن استخدام هذا كاختبار للتحقق من عمل خبيئة الجلسة.

-showcerts
    يعرض قائمة شهادات الخادم كما أرسلها الخادم: وتتكون فقط من الشهادات التي أرسلها الخادم (بالترتيب الذي أرسلها به). إنها ليست سلسلة مستوثقة.

-prexit
    اطبع معلومات الجلسة عند خروج البرنامج. سيحاول هذا دائمًا طباعة المعلومات حتى لو فشل الاتصال. عادةً ما تُطبع المعلومات مرة واحدة فقط إذا نجح الاتصال. هذا الخيار مفيد لأن التعمية المستخدمة قد يُعاد التفاوض بشأنها أو قد يفشل الاتصال لأن شهادة العميل مطلوبة أو تُطلب فقط بعد محاولة الوصول إلى مسار معين. ملاحظة: المخرجات التي ينتجها هذا الخيار ليست دقيقة دائمًا لأن الاتصال قد لا يكون قد أُنشئ أبدًا.

-no-interactive
    يمكن استخدام هذه العلامة لتشغيل العميل في وضع غير تفاعلي.

-state
    يطبع حالات جلسة SSL.

-debug
    اطبع معلومات تنقيح واسعة النطاق بما في ذلك تفريغ ست عشري لجميع حركة المرور.

-nocommands
    لا تستخدم أحرف الأوامر التفاعلية.

-adv
    استخدم وضع الأوامر المتقدم.

-security_debug
    فعّل رسائل تنقيح الأمان.

-security_debug_verbose
    أخرج مزيدًا من مخرجات تنقيح الأمان.

-msg
    أظهر رسائل البروتوكول.

-timeout
    فعّل مهلة الإرسال/الاستقبال في اتصالات DTLS.

-mtu حجم
    اضبط وحدة النقل العظمى (MTU) لطبقة الربط على الحجم المحدد.

-no_ems
    عطّل تفاوض السر الرئيس الممتد.

-keymatexport لصيقة
    صدّر مادة المفاتيح باستخدام اللصيقة المحددة.

-keymatexportlen طول
    صدّر العدد المحدد من بايتات مادة المفاتيح؛ المبدئي هو 20.

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

-trace
    أظهر مخرجات تتبع مسهبة لرسائل البروتوكول.

-msgfile اسم_الملف
    الملف الذي سيُرسل إليه مخرجات -msg أو -trace، والمخرجات القياسية هي المبدئية.

-nbio_test
    يختبر الإدخال/الإخراج غير المسدود

-nbio
    يُفعّل الإدخال/الإخراج غير المسدود

-crlf
    يترجم هذا الخيار تغذية السطر من الطرفية إلى CR+LF كما تتطلب بعض الخوادم.

-ign_eof
    منع إغلاق الاتصال عند الوصول إلى نهاية الملف في المدخلات. يؤدي هذا ضمناً إلى تشغيل -nocommands أيضًا.

-quiet
    منع طباعة معلومات الجلسة والشهادة. يؤدي هذا ضمناً إلى تشغيل -ign_eof و -nocommands أيضًا.

-no_ign_eof
    إغلاق الاتصال عند الوصول إلى نهاية الملف في المدخلات. يمكن استخدامه لتجاوز خيار -ign_eof الضمني بعد -quiet.

-psk_identity identity
    استخدم هوية PSK المسماة identity عند استخدام طقم تعمية PSK. القيمة المبدئية هي "Client_identity" (بدون علامات الاقتباس).

-psk key
    استخدم مفتاح PSK المسمى key عند استخدام طقم تعمية PSK. يُعطى المفتاح كرقم ست عشري بدون بادئة 0x، على سبيل المثال -psk 1a2b3c4d. يجب توفير هذا الخيار من أجل استخدام تعمية PSK.

-psk_session ملف
    استخدم بيانات SSL_SESSION المرمزة بـ pem والمخزنة في file كأساس لـ PSK. لاحظ أن هذا لن يعمل إلا إذا فُوض على TLSv1.3.

-sctp
    استخدم SCTP لبروتوكول النقل بدلاً من UDP في DTLS. يجب استخدامه بالتزامن مع -dtls أو -dtls1 أو -dtls1_2. يتوفر هذا الخيار فقط عندما يكون لدى OpenSSL دعم مفعل لـ SCTP.

-sctp_label_bug
    استخدم السلوك غير الصحيح لتطبيقات OpenSSL الأقدم عند حساب الأسرار المشتركة لزوج الأطراف لـ DTLS/SCTP. يسمح هذا بالتواصل مع التطبيقات القديمة المعطلة ولكنه يكسر التوافقية مع التطبيقات الصحيحة. يجب استخدامه بالتزامن مع -sctp. يتوفر هذا الخيار فقط عندما يكون لدى OpenSSL دعم مفعل لـ SCTP.

-fallback_scsv
    إرسال TLS_FALLBACK_SCSV في ClientHello.

-async
    تشغيل الوضع غير المتزامن (asynchronous mode). ستُجرى العمليات التعموية بشكل غير متزامن. لن يكون لهذا تأثير إلا إذا استُخدم محرك قادر على العمل بشكل غير متزامن عبر الخيار -engine. لأغراض الاختبار، يمكن استخدام محرك async الوهمي (dasync) (إذا كان متاحاً).

-maxfraglen len
    تمكين التفاوض على أقصى طول للقطعة؛ القيم المسموح بها هي 512، و 1024، و 2048، و 4096.

-max_send_frag int
    أقصى حجم لقطعة البيانات المراد إرسالها. انظر SSL_CTX_set_max_send_fragment(3) لمزيد من المعلومات.

-split_send_frag int
    الحجم المستخدم لتقسيم البيانات لأنابيب التعمية. إذا كُتبت بيانات أكثر دفعة واحدة من هذه القيمة فستُقسم إلى أنابيب متعددة، حتى أقصى عدد من الأنابيب المعرف بواسطة max_pipelines. لن يكون لهذا تأثير إلا إذا تُوفوض على مجموعة تعمية مناسبة، وحُمّل محرك يدعم الأنابيب، وكان max_pipelines أكبر من 1. انظر SSL_CTX_set_split_send_fragment(3) لمزيد من المعلومات.

-max_pipelines int
    أقصى عدد من أنابيب التعمية/فك التعمية التي ستُستخدم. لن يكون لهذا تأثير إلا إذا حُمّل محرك يدعم الأنابيب (مثل محرك dasync) وتُوفوض على مجموعة تعمية مناسبة. القيمة المبدئية هي 1. انظر SSL_CTX_set_max_pipelines(3) لمزيد من المعلومات.

-read_buf int
    حجم ذاكرة القراءة الوسيطة المبدئي المستخدم للاتصالات. لن يكون لهذا تأثير إلا إذا كان حجم الذاكرة الوسيطة أكبر من الحجم الذي كان سيُستخدم لولا ذلك وكانت تقنية التدفق (pipelining) قيد الاستخدام (انظر SSL_CTX_set_default_read_buffer_len(3) لمزيد من المعلومات).

-ignore_unexpected_eof
    بعض تطبيقات TLS لا ترسل تنبيه close_notify الإلزامي عند إيقاف التشغيل. إذا حاول التطبيق انتظار تنبيه close_notify ولكن الطرف الآخر أغلق الاتصال دون إرساله، يُنشَأ خطأ. عند تمكين هذا الخيار، لا يحتاج الطرف الآخر لإرسال تنبيه close_notify وسيُعامل الاتصال المغلق كما لو استُلم التنبيه. لمزيد من المعلومات حول إغلاق الاتصال، انظر SSL_shutdown(3).

-no_tx_cert_comp
    يعطل دعم إرسال شهادات TLSv1.3 المضغوطة.

-no_rx_cert_comp
    يعطل دعم استقبال شهادات TLSv1.3 المضغوطة.

-brief
    توفير ملخص موجز لمعلمات الاتصال فقط بدلاً من المخرجات التفصيلية العادية.

-starttls protocol
    إرسال الرسائل الخاصة بالبروتوكول للتبديل إلى TLS للاتصال. protocol هي كلمة مفتاحية للبروتوكول المقصود. حالياً، الكلمات المفتاحية المدعومة فقط هي "smtp"، و "pop3"، و "imap"، و "ftp"، و "xmpp"، و "xmpp-server"، و "irc"، و "postgres"، و "mysql"، و "lmtp"، و "nntp"، و "sieve" و "ldap".

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

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

-name hostname
    يستخدم هذا الخيار لتحديد معلومات اسم المضيف لمختلف البروتوكولات المستخدمة مع خيار -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".

-tlsextdebug
    طباعة تفريغ ست عشري لأي امتدادات TLS مُستلمة من الخادم.

-sess_out filename
    إخراج جلسة SSL إلى filename.

-sess_in filename
    تحميل جلسة SSL من filename. سيحاول العميل استئناف اتصال من هذه الجلسة.

-serverinfo types
    قائمة بأنواع ملحقات TLS مفصولة بفاصلة (أرقام بين 0 و 65535). سيُرسل كل نوع كملحق ClientHello TLS فارغ. سيُرمّز رد الخادم (إن وجد) ويُعرض كملف PEM.

-status
    يرسل طلب حالة شهادة إلى الخادم (تدبيس OCSP). تُطبع استجابة الخادم (إن وجدت).

-ocsp_check_leaf
    يتطلب إجراء فحص حالة شهادة الخادم (كيان النهاية)، حيث تُجرَّب أي استجابة OCSP متوفرة في مصافحة TLS (بواسطة ما يسمى "تدبيس OCSP") أولاً. إذا تعذر العثور على استجابة OCSP صالحة وحاسمة، يُحاول الفحص المستند إلى CRL كبديل إذا كان مُمكناً، وإلا سيفشل فحص الحالة.

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

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

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

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

-ct، -noct
    استخدم أحد هذين الخيارين للتحكم فيما إذا كانت شفافية الشهادة (CT) مُمكّنة (-ct) أو معطلة (-noct). إذا كانت CT مُمكّنة، فسيُطلب طوابع زمنية للشهادات الموقعة (SCTs) من الخادم ويُبلّغ عنها عند اكتمال المصافحة.

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

-ctlogfile
    ملف يحتوي على قائمة بسجلات شفافية الشهادات المعروفة. انظر SSL_CTX_set_ctlog_list_file(3) لتنسيق الملف المتوقع.

-keylogfile ملف
    يلحق أسرار TLS لملف سجل المفاتيح المحدد بحيث تتمكن البرامج الخارجية (مثل Wireshark) من فك تعمية اتصالات TLS.

-early_data ملف
    يقرأ محتويات الملف المحدد ويحاول إرسالها كبيانات مبكرة إلى الخادم. لن يعمل هذا إلا مع الجلسات المُستأنفة التي تدعم البيانات المبكرة وعندما يقبل الخادم البيانات المبكرة.

-enable_pha
    لإصدار TLSv1.3 فقط، يُرسل ملحق الاستيثاق ما بعد المصافحة. سيحدث هذا سواء وُفرت شهادة عبر -cert أم لا.

-use_srtp قيمة
    يعرض إدارة مفاتيح SRTP، حيث تكون value عبارة عن قائمة تشكيلات مفصولة بنقطتين.

-srpuser قيمة
    يضبط اسم مستخدم SRP على القيمة المحددة. هذا الخيار مهجور.

-srppass قيمة
    يضبط كلمة سر SRP على القيمة المحددة. هذا الخيار مهجور.

-srp_lateuser
    اسم مستخدم SRP لرسالة ClientHello الثانية. هذا الخيار مهجور.

-srp_moregroups  هذا الخيار مهجور.
    يتسامح مع قيم بخلاف قيم g و N المعروفة.

-srp_strength رقم
    يضبط الحد الأدنى للطول المقبول، بالبِتات، لـ N. هذا الخيار مهجور.

-ktls
    تفعيل Kernel TLS للإرسال والاستقبال. قُدم هذا الخيار في OpenSSL 3.2.0. يكون Kernel TLS معطلاً مبدئيًا اعتبارًا من OpenSSL 3.2.0.

-tfo
    تفعيل إنشاء الاتصالات عبر الفتح السريع لـ TCP‏ (RFC7413).

-no_ssl3، -no_tls1، -no_tls1_1، -no_tls1_2، -no_tls1_3، -ssl3، -tls1، -tls1_1، -tls1_2، -tls1_3
    انظر "خيارات إصدار TLS" في openssl(1).

-dtls، -dtls1، -dtls1_2
    تحدد هذه استخدام DTLS بدلاً من TLS. انظر "خيارات إصدار TLS" في openssl(1).

-nameopt خيار
    يحدد هذا كيفية عرض أسماء الموضوع أو المصدر. انظر openssl-namedisplay-options(1) للحصول على التفاصيل.

-xkey ملف_دخل، -xcert ملف، -xchain ملف، -xchain_build ملف، -xcertform DER|PEM، -xkeyform DER|PEM
    اضبط خيارات التحقق الموسعة من الشهادة. انظر "Extended Verification Options" في openssl-verification-options(1) للتفاصيل.

-CAfile ملف، -no-CAfile، -CApath دليل، -no-CApath، -CAstore معرف_المورد، -no-CAstore
    انظر "Trusted Certificate Options" في openssl-verification-options(1) للتفاصيل.

-bugs، -comp، -no_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 algs، -client_sigalgs algs، -groups groups، -curves curves، -named_curve curve، -cipher ciphers، -ciphersuites 1.3ciphers، -min_protocol minprot، -max_protocol maxprot، -record_padding padding، -debug_broken_protocol، -no_middlebox
    انظر "SUPPORTED COMMAND LINE COMMANDS" في SSL_CONF_cmd(3) للتفاصيل.

-rand ملفات، -writerand ملف
    انظر "خيارات الحالة العشوائية" في openssl(1) للتفاصيل.

-provider الاسم
-provider-path المسار
-provparam [الاسم:]المفتاح=القيمة
-propquery propq
    انظر "خيارات المزود" في openssl(1)، و provider(7)، و property(7).

-engine id
    انظر "خيارات المحرك" في openssl(1). هذا الخيار مهجور.

-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، -no_alt_chains، -partial_chain، -policy، -policy_check، -policy_print، -purpose، -suiteB_128، -suiteB_128_only، -suiteB_192، -trusted_first، -use_deltas، -auth_level، -verify_depth، -verify_email، -verify_hostname، -verify_ip، -verify_name، -x509_strict -issuer_checks
    اضبط خيارات متنوعة للتحقق من سلسلة الشهادات. انظر "خيارات التحقق" في openssl-verification-options(1) للحصول على التفاصيل.

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

-enable_server_rpk
    مكّن دعم استقبال المفاتيح العامة الخام (RFC7250) من الخادم. يصبح استخدام شهادات X.509 من قبل الخادم اختياريًا، وقد تختار الخوادم التي تدعم المفاتيح العامة الخام استخدامها. أما الخوادم التي لا تدعم المفاتيح العامة الخام أو تفضل استخدام شهادات X.509 فلا يزال بإمكانها اختيار إرسال شهادات X.509 كالمعتاد.

-enable_client_rpk
    تفعيل دعم إرسال المفاتيح العامة الخام (RFC7250) إلى الخادم. سيُرسل العميل مفتاحاً عاماً خاماً إذا طلبه الخادم، بشرط أن يكون قد ضُبط زوج مناسب من المفتاح والشهادة العامة. ومع ذلك، قد لا تطلب بعض الخوادم أي وثائق استيثاق للعميل، أو قد تطلب شهادة.

المضيف:المنفذ
    بدلاً من توفير -connect، يمكن توفير المضيف المستهدف والمنفذ الاختياري كوسيط موضعي واحد بعد كل الخيارات. إذا لم يُوفر هذا ولا -connect، فسيتم الرجوع لمحاولة الاتصال بـ localhost على المنفذ 4433. إذا كانت سلسلة المضيف عبارة عن عنوان IPv6، فيجب وضعها بين "[" و "]".

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

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

Q   أنهِ اتصال SSL الحالي واخرج.

R   أعد التفاوض على جلسة SSL (TLSv1.2 وما قبله فقط).

C   محاولة إعادة الاتصال بالخادم باستخدام مصافحة الاستئناف.

k   إرسال رسالة تحديث مفتاح إلى الخادم (TLSv1.3 فقط)

K   أرسل رسالة تحديث مفتاح إلى الخادم واطلب رسالة مقابلة (بروتوكول TLSv1.3 فقط)

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

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

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

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

help
    يطبع نص مساعدة ملخصًا حول الأوامر المتاحة.

quit
    أغلق الاتصال بالقرين

reconnect
    أعد الاتصال بالقرين وحاول إجراء مصافحة استئناف

keyup
    أرسل رسالة تحديث مفتاح. لبروتوكول TLSv1.3 فقط. يأخذ هذا الأمر وسيطًا اختياريًا. إذا قُدم الوسيط "req"، فسيُطلب من القرين أيضًا تحديث مفاتيحه. خلاف ذلك، إذا قُدم "noreq"، فلن يُطلب من القرين تحديث مفاتيحه. القيمة المبدئية هي "req".

reneg
    ابدأ إعادة تفاوض مع الخادم. لبروتوكول (D)TLSv1.2 أو ما دونه فقط.

fin أشر إلى علامة 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 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

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