ดูใบรับรอง SSL ของหน้าเว็บที่เปลี่ยนเส้นทางไปยังอีกทันที


25

ดังนั้นฉันจึง googled นิดหน่อยสำหรับเรื่องนี้ แต่ดูเหมือนว่า google-fu ของฉันทำให้ฉันล้มเหลว - ขอโทษถ้านี่เป็นคำถามที่ตอบคำถามเล็กน้อยและตอบแล้ว

ฉันกำลังพยายามวินิจฉัยชื่อโฮสต์ใบรับรอง SSL ไม่ตรงกัน เมื่อฉันไปที่ URL ที่เป็นปัญหาระบบจะนำฉันไปยังหน้าอื่นที่มีใบรับรอง SSL ที่ถูกต้อง อย่างไรก็ตามลูกค้าบางรายรายงานว่าพวกเขาได้รับข้อผิดพลาดชื่อโฮสต์ของใบรับรอง SSL ที่ไม่ตรงกัน ข้อสันนิษฐานเดียวของฉันคือหน้าเปลี่ยนเส้นทางมีใบรับรองผิดและลูกค้าบางรายยอมให้เลื่อนเพราะแก้ไขด้วยหน้าใหม่ที่มีใบรับรองที่ถูกต้อง

(วิธีและเหตุผลของปัญหาไม่ใช่คำถามจริงๆ)

คำถาม:

จากภายนอกใน (หรือที่เรียกว่าลูกค้าในโลก) - เราจะดูใบรับรองที่จัดทำโดยหน้าเว็บที่เปลี่ยนเส้นทางไปยังหน้าอื่นโดยอัตโนมัติได้อย่างไร


ทรัพยากรที่มีประโยชน์อีกอย่างคือการทดสอบเซิร์ฟเวอร์ SSLจากห้องทดลอง SSL ของ Qualy
TRiG

คำตอบ:


35

ใช้openssl s_client pipedเพื่อopenssl x509 :

$ openssl s_client -connect foo.example.com:443 < /dev/null | openssl x509 -text

(เพิ่ม-servername foo.example.comในคำสั่งs_clientหากเซิร์ฟเวอร์ใช้SNI )

การเปลี่ยนเส้นทางของ stdin จาก / dev / null สำหรับการเรียกใช้ openssl ครั้งแรกจะป้องกันไม่ให้มันหยุดรอการป้อนข้อมูล


2
นอกจากนี้คุณยังสามารถท่อออกไปopenssl x509 -textจริงเห็นสิ่งที่อยู่ในใบรับรองของเซิร์ฟเวอร์และการเปลี่ยนเส้นทางการป้อนข้อมูลของเริ่มต้นopensslคำสั่งจากดังนั้นคำสั่งไม่แขวน:/dev/null openssl s_client -connect ... < /dev/null | openssl x509 -textค้นหาฟิลด์ "X509v3 Subject Alternative Name"
Andrew Henle

@AndrewHenle นอกจากนี้ยอดเยี่ยม รู้สึกอิสระที่จะแก้ไขที่เป็นคำตอบของฉันถ้าคุณต้องการ
EEAA

ทำงานได้เหมือนมีเสน่ห์ - ฉันใช้เวลากับ openSSL ในจำนวน จำกัด เท่านั้น แต่ทุกครั้งที่ฉันต้องทำอะไรเกี่ยวกับ ssl มันจะทำให้มันกลับมาเสมอฮ่าฮ่า ... ขอบคุณสำหรับคำแนะนำ!
Robert Petz

6
ถ้าเซิร์ฟเวอร์ที่ใช้ SNI คุณควรเพิ่ม-servername foo.example.comไปยังs_clientตัวเลือก
Bruno

ฉันไม่เห็นห่วงโซ่ความน่าเชื่อถือในผลลัพธ์ ถ้าฉันต้องการดูว่าเว็บไซต์ใดที่ได้รับความเชื่อถือจาก VeriSign หรือ LetsEncrypt หรือ ChineseGov หรือ DO_NOT_TRUST_FiddlerRoot ฉันควรมองหาอะไร
Carl Walsh

7

ใน Firefox 57 หากคุณเปิดเครื่องมือสำหรับนักพัฒนาและไปที่แท็บเครือข่าย:

  1. ตรวจสอบให้แน่ใจว่าPersist Logsมีการตรวจสอบ
  2. เยี่ยมชม URL ที่น่าสนใจ
  3. คลิกที่แถวบนสุด (เช่นที่สอดคล้องกับคำขอไปยังเซิร์ฟเวอร์ที่คุณสนใจซึ่งส่งผลให้เกิดการตอบสนองการเปลี่ยนเส้นทาง)
  4. คลิกที่Securityแท็บ (ครึ่งทางลงยังภายในNetwork)

วิธีนี้จะช่วยให้คุณดูข้อมูลใบรับรองเช่นชื่อสามัญของผู้ออกรายละเอียดผู้ออกระยะเวลาที่ใช้งานได้และลายนิ้วมือ

สิ่งนี้ใช้ได้กับฉันในไซต์ที่ตอบสนองด้วยการเปลี่ยนเส้นทาง 301 ไปยังเว็บไซต์ HTTPS อื่น (น่าเสียดายที่คำตอบที่ยอมรับนั้นเพิ่งให้ใบรับรองฉันสำหรับหน้าปลายทางสุดท้าย)


ขอบคุณสำหรับวิธีเบราว์เซอร์ดั้งเดิม คุณลอง-servernameตัวเลือกด้วยopensslหรือไม่ ที่สามารถให้ผลลัพธ์ที่แตกต่างแม้ว่าจะเป็นชื่อเดียวกัน
mwfearnley

@mwfearnley ไม่! ด้วยopensslฉันเพิ่งคัดลอกและวางจากคำตอบและเลิกหลังจากที่มันไม่ทำงาน :) ขอบคุณสำหรับคำแนะนำ
mpavey

5

นอกจากนี้ยังมีเครื่องมือกราฟิกสำหรับ Windows ที่มีการติดตามข้อความแบบละเอียด: เครื่องมือตรวจสอบใบรับรอง SSLและคำอธิบายเครื่องมือ: การตรวจสอบใบรับรอง SSL พร้อมเครื่องมือและนี่คือตัวอย่างของการจัดการการเปลี่ยนเส้นทาง:

ป้อนคำอธิบายรูปภาพที่นี่


1

คุณสามารถปิดการเปลี่ยนเส้นทางอัตโนมัติในเบราว์เซอร์ของคุณแทนโปรแกรมอื่นที่กล่าวถึงในคำตอบอื่น ๆ

ตัวเลือกในการทำสิ่งนี้แตกต่างกันไปตามเบราว์เซอร์นี่คือวิธีสำหรับ Firefox และ Chrome:


ไม่แน่ใจว่าใครเป็นผู้ลงคะแนนสิ่งนี้
Robert Petz

ใช่นี่คือสิ่งที่ฉันต้องการซึ่งเป็นโซลูชั่นในเบราว์เซอร์ที่สมบูรณ์
Michael12345

1
สิ่งนี้ไม่ได้ผลสำหรับฉันใน Chrome ฉันเห็น 302 ในการติดตามเครือข่าย แต่ฉันไม่เห็นวิธีการตรวจสอบใบรับรองจากการติดตามเครือข่าย หากฉันคลิกแท็บความปลอดภัย Chrome จะแสดงใบรับรองจากหน้าเว็บปัจจุบันแทน (เป้าหมายการเปลี่ยนเส้นทาง)
Carl Walsh

Downvote อาจเป็นเพราะคำตอบ "ลิงก์อย่างเดียว" มีแนวโน้มที่จะเน่าเปื่อยไปหลายปีเมื่อผลิตภัณฑ์เปลี่ยนแปลง คำตอบนี้อาจใช้ได้ก่อนที่ Chrome จะเปิดตัวแท็บความปลอดภัยหรือไม่
Carl Walsh

1
@jpa ลิงก์ที่คุณให้ไว้กับ Chrome ดูเหมือนจะอธิบายวิธีเก็บรักษาบันทึกเครือข่ายหลังจากมีการเปลี่ยนเส้นทางแทนที่จะทำเพื่อป้องกันไม่ให้ Chrome ติดตามการเปลี่ยนเส้นทาง
mpavey
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.