بررسی گواهی وبسایت از طریق پراکسی HTTP با OpenSSL
از OpenSSL s_client از طریق پراکسی HTTP CONNECT استفاده کنید و نام مقصد، SNI و اعتبارسنجی گواهی را هماهنگ نگه دارید.
از OpenSSL s_client نصبشده که از -proxy پشتیبانی میکند استفاده کنید. برای یک endpoint مجاز HTTP CONNECT:
openssl s_client -proxy proxy.example:3128 -connect example.com:443 -servername example.com -verify_hostname example.com -verify_return_error -showcertsنشانی پراکسی را جایگزین کنید و نام مقصد موردنظر را بهصورت یکسان به کار ببرید. برای آزمایش مقصد عمومی از طریق پراکسی انتخابی، نامزدی HTTP را از فهرست پراکسی HTTP انتخاب کنید. -connect هدف را انتخاب میکند، -servername برای میزبان مجازی TLS آن SNI میفرستد و -verify_hostname هویت را بررسی میکند. SNI بهتنهایی اعتبارسنجی نام میزبان نیست. هنگام تغییر گزینهها راهنمای نسخهٔ نصبشده را ببینید.
-showcerts آنچه سرور فرستاده نمایش میدهد، نه اینکه زنجیره را مورد اعتماد اعلام کند. -verify_return_error خطاهای اعتبارسنجی را باعث پایان handshake میکند؛ در غیر این صورت کلاینت تشخیصی میتواند پس از خطا ادامه دهد. برای سرویس خصوصی از مواد CA تأییدشده استفاده کنید و به گواهی تصادفی دانلودشده اعتماد نکنید.
| نتیجه | مرحله |
|---|---|
| 407 | احراز هویت پراکسی پیش از TLS مقصد. |
| مقصد CONNECT رد شد | سیاست مقصد پراکسی. |
| گواهی دریافت شد و تلاش برای اعتبارسنجی انجام شد | تبادل TLS مقصد از تونل پذیرفتهشده. |
با OpenSSL 3.x و پراکسی HTTP دارای احراز هویت Basic، گزینههای حساب پراکسی s_client را به کار ببرید و اعتبارسنجی مقصد را حفظ کنید.
نقطهٔ پایانی فقط SOCKS رابط پراکسی HTTP مورد استفادهٔ این فرمان را ارائه نمیکند. در رهگیری مجاز TLS، گواهی نمایشدادهشده ممکن است توسط همان واسطه صادر شده باشد. پیش از نسبت دادن تفاوت به خرابی وبسایت، صادرکننده و ساختار اعتماد موردنظر آن را مقایسه کنید.