ตรวจสอบใบรับรองเว็บไซต์ผ่านพร็อกซี HTTP ด้วย OpenSSL
ใช้ OpenSSL s_client ผ่านพร็อกซี HTTP CONNECT และรักษาชื่อปลายทาง, SNI และการตรวจสอบใบรับรองให้สอดคล้องกัน
ใช้ OpenSSL s_client ที่ติดตั้งไว้และรองรับ -proxy สำหรับ HTTP CONNECT endpoint ที่ได้รับอนุญาต:
openssl s_client -proxy proxy.example:3128 -connect example.com:443 -servername example.com -verify_hostname example.com -verify_return_error -showcertsแทนที่ที่อยู่พร็อกซีและใช้ชื่อปลายทางที่ตั้งใจไว้อย่างสม่ำเสมอ หากต้องการทดสอบปลายทางสาธารณะผ่านพร็อกซีที่เลือกได้ ให้เลือก HTTP candidate จาก รายการพร็อกซี HTTP -connect เลือกเป้าหมาย, -servername ส่ง SNI ให้ TLS virtual host ของเป้าหมาย และ -verify_hostname ตรวจสอบตัวตน SNI เพียงอย่างเดียวไม่ใช่การตรวจสอบชื่อโฮสต์ ตรวจสอบ คู่มือของรุ่นที่ติดตั้ง เมื่อต้องปรับตัวเลือก
-showcerts แสดงสิ่งที่ server ส่งมา ไม่ได้ประกาศว่า chain เชื่อถือได้ -verify_return_error ทำให้ verification errors จบ handshake มิฉะนั้น diagnostic client อาจทำงานต่อหลังเกิดข้อผิดพลาด สำหรับบริการส่วนตัวให้ใช้ CA material ที่ได้รับอนุมัติ แทนการเชื่อ certificate ที่ดาวน์โหลดมาแบบสุ่ม
| ผลลัพธ์ | ขั้นตอน |
|---|---|
| 407 | Proxy authentication ก่อน TLS ของปลายทาง |
| CONNECT target ถูกปฏิเสธ | นโยบายปลายทางของพร็อกซี |
| ได้รับ certificate และพยายามตรวจสอบแล้ว | การแลกเปลี่ยน TLS ของปลายทางผ่าน tunnel ที่ยอมรับ |
เมื่อใช้ OpenSSL 3.x กับพร็อกซี HTTP ที่ยืนยันตัวตนด้วย Basic ให้ใช้ s_client proxy-account options โดยคงการตรวจสอบปลายทางไว้
SOCKS-only endpoint ไม่มี HTTP proxy interface ที่คำสั่งนี้ใช้ เมื่อมี authorized TLS interception certificate ที่แสดงอาจออกโดยตัวกลางนั้น เปรียบเทียบ ผู้ออกและ trust arrangement ที่ตั้งใจไว้ ก่อนสรุปว่าความแตกต่างเกิดจากเว็บไซต์เสีย