เวอร์ชัน TLS และการเข้ารหัสไม่ตรงกัน: ความล้มเหลวในการเจรจา
· ทีม CSR.plus

- •การจับมือล้มเหลวด้วย "no shared cipher" หรือข้อผิดพลาดเวอร์ชันหมายถึงทั้งสองฝ่ายไม่มีตัวเลือก TLS ที่เข้ากันได้ร่วมกัน
- •เปรียบเทียบเวอร์ชันและชุดที่เซิร์ฟเวอร์เปิดกับสิ่งที่ไคลเอนต์ของคุณรองรับ
- •เปิดชุดที่ทันสมัยกว้าง ๆ: TLS 1.2 + 1.3 พร้อมชุด ECDHE AES-GCM มาตรฐาน
"no shared cipher" หมายถึงอะไร
ระหว่างการเจรจา ไคลเอนต์ส่งชุดที่รองรับ เซิร์ฟเวอร์เลือกชุดที่รองรับเช่นกัน หากส่วนตัดกันว่าง OpenSSL จะรายงาน "no protocols available" หรือ "no shared cipher" ในเบราว์เซอร์สาเหตุเดียวกันปรากฏเป็น ERR_SSL_VERSION_OR_CIPHER_MISMATCH ไคลเอนต์เก่า + เซิร์ฟเวอร์ที่เปิดเฉพาะ TLS 1.3 และชุดสมัยใหม่คือตัวกระตุ้นคลาสสิก
อ่านเอาต์พุต openssl
openssl s_client -connect host:443 -servername host พิมพ์ "Protocol : TLSv1.3" และ "Cipher : TLS_AES_256_GCM_SHA384" เมื่อสำเร็จ เมื่อล้มเหลว: "no protocols available" (ช่องว่างเวอร์ชัน) หรือ "no shared cipher" ใช้ openssl ciphers -v เพื่อแสดงชุดของบิลด์และ s_client -tls1_2 / -tls1_3 เพื่อทดสอบแต่ละเวอร์ชันแยกกัน
การตั้งค่าเซิร์ฟเวอร์ที่ถูกต้อง
เปิด TLS 1.2 และ 1.3 ปิดทุกอย่างที่ต่ำกว่า รักษาชุดสมัยใหม่มาตรฐาน: TLS_AES_256_GCM_SHA384 และ TLS_AES_128_GCM_SHA256 สำหรับ 1.3; ECDHE-ECDSA/ECDHE-RSA กับ AES-256-GCM และ AES-128-GCM สำหรับ 1.2 เพิ่มชุดเก่าเฉพาะเมื่อรองรับไคลเอนต์เก่าจริง และบันทึกการแลกเปลี่ยน
FAQ
อุปกรณ์เก่าต้องการ TLS 1.0/1.1 หรือไม่?
เบราว์เซอร์และระบบปฏิบัติการหลักทั้งหมดปิด TLS 1.0/1.1 แล้ว การรองรับอุปกรณ์ฝังตัวเก่าเป็นการตัดสินใจด้านความเข้ากันได้ — หากจำเป็น ให้แยกไคลเอนต์เหล่านั้นไว้ใน vhost แยก
HTTP/3 ช่วยไคลเอนต์เก่าไหม?
ไม่ได้ HTTP/3 ทำงานบน QUIC/TLS 1.3 ซึ่งไคลเอนต์เก่าไม่รองรับ HTTP/2 และ HTTP/3 อยู่ร่วมกัน ปัญหาการเจรจาอยู่ที่ชั้น TLS
UptimeRobot
ตรวจสอบ SSL และความพร้อมใช้งานฟรี
UptimeRobot เฝ้าดูใบรับรองและ endpoint ของคุณตลอด 24 ชั่วโมง — 50 จุดตรวจในแผนฟรี
ลิงก์พันธมิตร — เราอาจได้รับค่าคอมมิชชันโดยไม่มีค่าใช้จ่ายเพิ่มเติมกับคุณ
เครื่องมือ SSL/TLS ฟรี
ตรวจสอบใบรับรองของคุณในไม่กี่วินาที