CertH certH
ในหน้านี้

ทำไมใบรับรองใช้ได้แต่ยังได้ F

อัปเดต 2026-11-03 · 6 นาทีในการอ่าน

กุญแจเป็นคำกล่าวเกี่ยวกับใบรับรอง ไม่ใช่เกี่ยวกับการเชื่อมต่อ เว็บสามารถแสดงใบรับรองที่ใช้ได้สมบูรณ์ ไม่หมดอายุ เชนถูกต้อง และยังตกการตรวจสุขภาพ TLS ได้ บางครั้งถึงขั้นได้ศูนย์

กุญแจเป็นคำสัญญาที่แคบมาก

เบราว์เซอร์แสดงกุญแจเมื่อสามอย่างเป็นจริง ใบรับรองเชื่อมถึง root ที่เชื่อถือได้ ครอบชื่อโฮสต์ที่เข้าชม และยังไม่หมดอายุ เท่านั้น ไม่มีอะไรเกี่ยวกับเวอร์ชันโปรโตคอลที่เสนอ ชุดรหัสลับที่ยอมรับ หรือความเปราะบางต่อการโจมตีแบบดาวน์เกรด

เกรด TLS ถามคำถามอีกแบบ ปลายทางนี้ตั้งค่าได้ดีแค่ไหน ไม่ใช่แค่ว่าสร้างการเชื่อมต่อที่เข้ารหัสได้หรือไม่

ความล้มเหลวหกแบบที่ทำให้คะแนนต่ำ

นี่คือสาเหตุที่เราเห็นบ่อยที่สุดในสองหมื่นเว็บที่ติดตาม เรียงตามลำดับคะแนนที่เสียไปโดยประมาณ

  • •ใบรับรองหมดอายุหรือยังไม่เริ่มใช้ ได้ศูนย์อัตโนมัติ ไม่ว่าอย่างอื่นจะเป็นอย่างไร
  • •ชื่อโฮสต์ไม่ตรง ใบรับรองใช้ได้แต่สำหรับชื่ออื่น พบบ่อยหลังย้ายโดเมน หรือเมื่อ CDN ส่งใบรับรองใช้ร่วมกันโดยไม่มี SNI
  • •เชนไม่ครบ ขาด intermediate ทำให้ไคลเอนต์บางตัวสร้างเส้นทางถึง root ไม่ได้ เบราว์เซอร์มักกลบไว้ แต่ไคลเอนต์ API และสแตกมือถือไม่กลบ
  • •ยังเปิดโปรโตคอลเก่า การเสนอ TLS 1.0 หรือ 1.1 คู่กับรุ่นใหม่ดึงคะแนนลงแม้ไม่มีใครใช้
  • •รหัสลับอ่อนหรือไม่มี forward secrecy การแลกคีย์ RSA แบบคงที่หมายความว่าคีย์ส่วนตัวที่ถูกขโมยจะถอดรหัสทราฟฟิกที่บันทึกไว้ได้
  • •handshake ล้มเหลว เซิร์ฟเวอร์ปฏิเสธการตรวจทั้งหมด มักเพราะบังคับ SNI หรือกฎไฟร์วอลล์ที่บล็อกไคลเอนต์ที่ไม่ใช่เบราว์เซอร์

วินิจฉัยตามลำดับ

เริ่มด้วยการแยกปัญหาใบรับรองออกจากปัญหาคอนฟิก ถ้าใบรับรองหมดอายุหรือไม่ตรง อย่างอื่นไม่สำคัญจนกว่าจะแก้ ถ้าใบรับรองดี ให้ดูรายการโปรโตคอลต่อ เป็นปัจจัยใหญ่ที่สุดของคะแนนต่ำรองจากความถูกต้องของใบรับรอง

รายงานโดเมนบน CertH แสดงว่าหมวดใดในห้าหมวดเสียคะแนน พร้อมการหักและวิธีแก้ที่เฉพาะเจาะจง มักเร็วกว่าอ่านผลสแกนทั้งหมดด้วยมือ

# What does the certificate actually cover?
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -ext subjectAltName -dates

# Which protocols does the server accept?
for v in tls1 tls1_1 tls1_2 tls1_3; do
  printf '%s: ' "$v"
  echo | openssl s_client -connect example.com:443 -$v -servername example.com 2>/dev/null | grep -q "Protocol" && echo yes || echo no
done

กับดัก SNI

เซิร์ฟเวอร์ที่โฮสต์หลายโดเมนต้องใช้ SNI เพื่อเลือกใบรับรองที่ถูกต้อง บางการตั้งค่าบังคับ SNI และปฏิเสธไคลเอนต์ที่ไม่ส่ง ดีสำหรับเบราว์เซอร์แต่ทำให้เครื่องมือมอนิเตอร์ ไคลเอนต์ Java เก่า และไลบรารี API บางตัวพัง ถ้าสแกนเนอร์รายงาน handshake ล้มเหลวขณะที่เบราว์เซอร์ปกติ ให้ตรวจข้อนี้ก่อน

FAQ

ใบรับรองใช้ได้และเว็บโหลดได้ ทำไมเกรดเป็น F?

เกรดวัดการตั้งค่า TLS ไม่ใช่แค่ความถูกต้องของใบรับรอง ใบรับรองหมดอายุหรือไม่ตรงได้ศูนย์ แต่โปรโตคอลเก่า รหัสลับอ่อน และเชนที่ขาด ก็ทำให้เว็บต่ำกว่าเกณฑ์ F ได้ขณะที่เบราว์เซอร์ยังแสดงกุญแจ

เกรดต่ำหมายความว่าเว็บไม่ปลอดภัยหรือไม่?

ไม่จำเป็นว่าไม่ปลอดภัย แต่อ่อนกว่าที่ควร เว็บที่เสนอ TLS 1.0 คู่กับ TLS 1.2 ยังเข้ารหัสสำหรับผู้เข้าชมสมัยใหม่ แต่ยังเปิดทางดาวน์เกรดไว้ และนั่นคือสิ่งที่คะแนนลงโทษ

อ่านต่อ