این دستور s_clientssl است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
s_client - برنامه مشتری SSL/TLS
خلاصه
openssl s_client [-اتصال میزبان: بندر] [-نام ارائهکننده نام] [-تأیید کردن عمق]
[-verify_return_error] [-گواهی نام فایل] [-گواهینامه DER|PEM] [-کی نام فایل] [-keyform
DER|PEM] [-عبور ارگ] [-CApath فهرست راهنما] [-فایل نام فایل] [-no_alt_chains] [- دوباره وصل شوید]
[مکث] [-نمایشگاه ها] [اشکال زدایی] [-msg] [-nbio_test] [-دولت] [-nbio] [-crlf] [-ign_eof]
[-no_ign_eof] [-ساکت] [-ssl2] [-ssl3] [-tls1] [-no_ssl2] [-no_ssl3] [-no_tls1]
[-no_tls1_1] [-no_tls1_2] [-fallback_scsv] [-اشکالات] [-رمز فهرست رمز] [-serverpref]
[-شروع می کند پروتکل] [-تعارف id] [-tlsextdebug] [-بدون_بلیط] [-sess_out نام فایل]
[-sess_in نام فایل] [-رند فایل ها)] [اطلاعات سرور انواع] [-وضعیت] [-nextprotoneg
پروتکل]
شرح
La s_client دستور یک کلاینت SSL/TLS عمومی را پیاده سازی می کند که به یک میزبان راه دور متصل می شود
با استفاده از SSL/TLS این هست یک بسیار ابزار تشخیصی مفید برای سرورهای SSL.
OPTIONS
-اتصال میزبان: بندر
این هاست و پورت اختیاری برای اتصال را مشخص می کند. اگر مشخص نشده است، یک
سعی شده است به میزبان محلی در پورت 4433 متصل شود.
-نام ارائهکننده نام
پسوند TLS SNI (نمایش نام سرور) را در پیام ClientHello تنظیم کنید.
-گواهی نام گواهی
گواهی برای استفاده، در صورت درخواست سرور. پیش فرض این است که از a استفاده نکنید
گواهی
-گواهینامه قالب
فرمت گواهی مورد استفاده: DER یا PEM. PEM پیش فرض است.
-کی فایل کلیدی
کلید خصوصی برای استفاده اگر مشخص نشده باشد، از فایل گواهی استفاده خواهد شد.
-keyform قالب
قالب خصوصی برای استفاده: DER یا PEM. PEM پیش فرض است.
-عبور ارگ
منبع رمز عبور کلید خصوصی برای اطلاعات بیشتر در مورد فرمت ارگ ببینید
PASS عبارت ادله بخش در openssl(1).
-تأیید کردن عمق
عمق تأیید برای استفاده. این حداکثر طول گواهی سرور را مشخص می کند
زنجیره زده و تأیید گواهی سرور را روشن می کند. در حال حاضر عملیات تأیید
پس از خطاها ادامه می یابد بنابراین تمام مشکلات مربوط به یک زنجیره گواهی قابل مشاهده است. به عنوان یک
عارضه جانبی اتصال هرگز به دلیل خرابی تأیید گواهی سرور قطع نخواهد شد.
-verify_return_error
به جای ادامه، خطاهای تأیید صحت را برگردانید. این معمولاً باعث سقط می شود
دست دادن با یک خطای مرگبار
-CApath فهرست راهنما
دایرکتوری مورد استفاده برای تأیید گواهی سرور. این دایرکتوری باید داخل باشد
"قالب هش" را ببینید بررسی برای اطلاعات بیشتر. اینها در هنگام ساختن نیز استفاده می شوند
زنجیره گواهی مشتری
-فایل پرونده
فایلی حاوی گواهی های قابل اعتماد برای استفاده در حین احراز هویت سرور و استفاده
هنگام تلاش برای ساخت زنجیره گواهی مشتری.
-هدف، -نادیده_نقدی، - چکهای صادرکننده، -crl_check، -crl_check_all، -بررسی_سیاست،
-extended_crl، -x509_strict، -خط مشی -check_ss_sig -no_alt_chains
گزینه اعتبارسنجی زنجیره گواهی های مختلف را تنظیم کنید. را ببینید بررسی صفحه دستی برای
جزئیات.
- دوباره وصل شوید
با استفاده از شناسه جلسه یکسان، 5 بار به همان سرور متصل می شود، این می تواند به عنوان یک استفاده شود
تست کنید که کش جلسه کار می کند.
مکث
بین هر تماس خواندن و نوشتن 1 ثانیه مکث می کند.
-نمایشگاه ها
نمایش کل زنجیره گواهی سرور: معمولا فقط گواهی سرور
خود نمایش داده می شود.
-پیش خروجی
هنگام خروج از برنامه، اطلاعات جلسه را چاپ کنید. این همیشه سعی در چاپ دارد
اطلاعات را حذف کنید حتی اگر اتصال قطع شود. به طور معمول اطلاعات فقط خواهد بود
در صورت موفقیت آمیز بودن اتصال، یک بار چاپ می شود. این گزینه به دلیل رمزگذاری مفید است
در حال استفاده ممکن است مجدداً مورد مذاکره قرار گیرد یا اتصال ممکن است به دلیل وجود گواهی مشتری قطع شود
مورد نیاز است یا فقط پس از تلاش برای دسترسی به یک URL خاص درخواست می شود. توجه داشته باشید:
خروجی تولید شده توسط این گزینه همیشه دقیق نیست زیرا ممکن است یک اتصال
هرگز تاسیس نشده اند.
-دولت
حالت های جلسه SSL را چاپ می کند.
اشکال زدایی
اطلاعات اشکال زدایی گسترده را چاپ کنید، از جمله حذف هگز از تمام ترافیک.
-msg
نمایش تمام پیام های پروتکل با hex dump.
-nbio_test
I/O غیر مسدود کننده را آزمایش می کند
-nbio
I/O غیر مسدود را روشن می کند
-crlf
این گزینه یک خوراک خط از ترمینال را به CR+LF بر اساس نیاز برخی ترجمه کرد
سرورها
-ign_eof
هنگامی که به انتهای فایل در ورودی رسید، از خاموش شدن اتصال جلوگیری کنید.
-ساکت
جلوگیری از چاپ اطلاعات جلسه و گواهی. این به طور ضمنی روشن می شود
-ign_eof نیز هست.
-no_ign_eof
هنگامی که به انتهای فایل در ورودی رسید، اتصال را خاموش کنید. قابل استفاده است
نادیده گرفتن امر ضمنی -ign_eof بعد از -ساکت.
-psk_identity هویت
از هویت PSK استفاده کنید هویت هنگام استفاده از مجموعه رمز PSK.
-psk کلید
از کلید PSK استفاده کنید کلید هنگام استفاده از مجموعه رمز PSK. کلید به صورت هگزادسیمال داده می شود
عدد بدون 0x پیشرو، به عنوان مثال -psk 1a2b3c4d.
-ssl2, -ssl3, -tls1, -tls1_1, -tls1_2, -no_ssl2, -no_ssl3, -no_tls1, -no_tls1_1,
-no_tls1_2
این گزینه ها استفاده از پروتکل های SSL یا TLS مشخص شده را نیاز یا غیرفعال می کنند. توسط
به طور پیش فرض در دست دادن اولیه از a استفاده می شود نسخه قابل انعطاف روشی که مذاکره خواهد کرد
بالاترین نسخه پروتکل با پشتیبانی متقابل
-fallback_scsv
TLS_FALLBACK_SCSV را در ClientHello ارسال کنید.
-اشکالات
چندین اشکال شناخته شده در اجرای SSL و TLS وجود دارد. افزودن این گزینه را فعال می کند
راه حل های مختلف
-رمز فهرست رمز
این اجازه می دهد تا لیست رمز ارسال شده توسط مشتری تغییر یابد. اگرچه سرور
تعیین می کند که کدام مجموعه رمز مورد استفاده قرار می گیرد و باید اولین رمز پشتیبانی شده در آن را بگیرد
لیست ارسال شده توسط مشتری را ببینید رمزها برای اطلاعات بیشتر دستور دهید
-serverpref
از تنظیمات رمز سرور استفاده کنید. فقط برای SSLV2 استفاده می شود.
-شروع می کند پروتکل
پیام(های) پروتکل خاص را برای تغییر به TLS برای ارتباط ارسال کنید. پروتکل is
یک کلمه کلیدی برای پروتکل مورد نظر در حال حاضر، تنها کلمات کلیدی پشتیبانی شده هستند
"smtp"، "pop3"، "imap" و "ftp".
-tlsextdebug
از هر برنامه افزودنی TLS دریافتی از سرور یک نسخه هگزا چاپ کنید.
-بدون_بلیط
پشتیبانی از بلیط جلسه RFC4507bis را غیرفعال کنید.
-sess_out نام فایل
خروجی جلسه SSL به نام فایل
-sess_in sess.pem
بارگیری جلسه SSL از نام فایل. کلاینت سعی خواهد کرد اتصال را از سر بگیرد
این جلسه
-تعارف id
تعیین یک موتور (بر اساس منحصر به فرد آن id رشته) باعث خواهد شد s_client تلاش برای
یک مرجع عملکردی به موتور مشخص شده بدست آورید، بنابراین در صورت نیاز آن را مقداردهی اولیه کنید.
سپس موتور به عنوان پیش فرض برای همه الگوریتم های موجود تنظیم می شود.
-رند فایل ها)
یک فایل یا فایلهای حاوی دادههای تصادفی که برای ایجاد اعداد تصادفی استفاده میشوند
سوکت EGD (نگاه کنید به RAND_egd(3)). چندین فایل را می توان مشخص کرد که توسط یک سیستم عامل از هم جدا شده اند.
شخصیت وابسته جداکننده است ; برای MS-Windows، , برای OpenVMS و : برای همه
دیگران.
اطلاعات سرور انواع
لیستی از انواع پسوند TLS که با کاما از هم جدا شده اند (اعداد بین 0 تا 65535). هر یک
نوع به عنوان یک برنامه افزودنی ClientHello TLS خالی ارسال می شود. پاسخ سرور (اگر
any) کدگذاری می شود و به عنوان یک فایل PEM نمایش داده می شود.
-وضعیت
درخواست وضعیت گواهی را به سرور ارسال می کند (OCSP stapling). پاسخ سرور
(در صورت وجود) چاپ شده است.
-nextprotoneg پروتکل
افزونه Next Protocol Negotiation TLS را فعال کرده و لیستی از کاما از هم جدا شده ارائه دهید
نامهای پروتکلی که مشتری باید از آنها پشتیبانی کند. لیست باید حاوی
ابتدا پروتکل های مورد نیاز به عنوان مثال، نام پروتکل ها رشته های ASCII قابل چاپ هستند
"http/1.1" یا "spdy/3". لیست خالی پروتکل ها به طور ویژه درمان می شود و باعث می شود
مشتری برای تبلیغ پشتیبانی از برنامه افزودنی TLS اما بلافاصله بعد از آن قطع شود
دریافت ServerHello با لیستی از پروتکل های پشتیبانی شده از سرور.
متصل دستورات
اگر ارتباطی با یک سرور SSL برقرار شود، هر داده ای از سرور دریافت می شود
نمایش داده می شود و هرگونه فشار دادن کلید به سرور ارسال می شود. هنگامی که به صورت تعاملی استفاده می شود
(یعنی هیچکدام -ساکت نه -ign_eof داده شده است)، جلسه خواهد بود
اگر خط با یک شروع شود دوباره مذاکره می شود Rو اگر خط با a شروع شود Q یا اگر پایان
فایل رسیده است، اتصال بسته خواهد شد.
NOTES
s_client می توان برای اشکال زدایی سرورهای SSL استفاده کرد. برای اتصال به سرور SSL HTTP دستور:
openssl s_client -connectname server:443
معمولا استفاده می شود (https از پورت 443 استفاده می کند). اگر اتصال موفق شد، یک HTTP
برای بازیابی یک صفحه وب می توان دستوراتی مانند "GET /" داده شود.
اگر دست دادن ناموفق باشد، چندین دلیل احتمالی وجود دارد، در صورتی که هیچ چیز واضحی نیست
مانند هیچ گواهی مشتری پس از آن -اشکالات, -ssl2, -ssl3, -tls1, -no_ssl2, -no_ssl3,
-no_tls1 در صورتی که سرور باگ باشد، میتوان گزینهها را امتحان کرد. به طور خاص شما باید بازی کنید
با این گزینه ها قبل از ارسال گزارش اشکال به لیست پستی OpenSSL.
یک مشکل مکرر هنگام تلاش برای کارکرد گواهی های مشتری این است که یک سرویس گیرنده وب است
شکایت دارد که گواهینامه ندارد یا لیست خالی برای انتخاب می دهد. این به طور معمول است
زیرا سرور مرجع گواهی مشتری را در "CA قابل قبول" خود ارسال نمی کند
لیست" هنگامی که درخواست گواهی می کند. با استفاده از s_client لیست CA را می توان مشاهده کرد و
بررسی شد. با این حال برخی از سرورها فقط پس از درخواست یک URL خاص، احراز هویت مشتری را درخواست می کنند
درخواست کرد. برای به دست آوردن لیست در این مورد لازم است از -پیش خروجی گزینه و
یک درخواست HTTP برای یک صفحه مناسب ارسال کنید.
اگر گواهی با استفاده از خط فرمان در خط فرمان مشخص شده باشد -گواهی گزینه آن نخواهد بود
استفاده می شود مگر اینکه سرور به طور خاص یک گواهی مشتری درخواست کند. بنابراین صرفا
از جمله گواهی مشتری در خط فرمان هیچ تضمینی برای گواهی نیست
کار می کند.
اگر مشکلی در تأیید گواهی سرور وجود دارد، -نمایشگاه ها گزینه می تواند باشد
برای نشان دادن کل زنجیره استفاده می شود.
از آنجایی که سرویس گیرنده SSLv23 hello نمی تواند شامل روش های فشرده سازی یا برنامه های افزودنی باشد
فقط در صورتی پشتیبانی می شود که استفاده از آن غیرفعال باشد، برای مثال با استفاده از -no_sslv2 گزینه.
La s_client ابزار یک ابزار آزمایشی است و برای ادامه دادن دست دادن پس از هر کدام طراحی شده است
خطاهای تأیید گواهی در نتیجه هر زنجیره گواهی (معتمد) را می پذیرد
یا نه) ارسال شده توسط همتا. هیچ یک از برنامه های کاربردی نباید آزمایش کنند نه این کار را همانطور که آنها را می سازد انجام دهید
در برابر حمله MITM آسیب پذیر است. این رفتار را می توان با استفاده از
-verify_return_error گزینه: هر گونه خطای تأیید پس از لغو دست دادن بازگردانده می شود.
با استفاده از خدمات onworks.net از s_clientssl به صورت آنلاین استفاده کنید