ใบรับรอง SSL จะทำงานกับลูกค้าบางรายได้อย่างไร


11

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

ตอนนี้ฉันสามารถเรียกดูเว็บไซต์ผ่าน HTTPS อีกครั้งและโฮสต์ของฉันก็เป็นเช่นนั้นและมีผู้ใช้อื่นจำนวนมาก

อย่างไรก็ตามผู้ใช้บางคน (อย่างน้อยหนึ่งโหลจากร้อย) ยังคงได้รับYour connection is not secureข้อความแสดงข้อผิดพลาดในเบราว์เซอร์และแพลตฟอร์มที่แตกต่างกัน (เป็นการยากที่จะวินิจฉัยปัญหาที่ฉันไม่สามารถทำซ้ำได้)

ฉันเข้าใจว่าเบราว์เซอร์ที่แตกต่างกันใช้รายการผู้ออกใบรับรอง (CA) ที่แตกต่างกัน

  1. ทำไมผู้ใช้ที่ใช้ Firefox รุ่นเดียวกันกับฉัน (45.0.1 ใน OS X) ได้รับSEC_ERROR_UNKNOWN_ISSUERข้อผิดพลาด (สำหรับเว็บไซต์ของฉันเท่านั้น) ในขณะที่ฉันไม่อยู่? อะไรทำให้เป็นไปได้ ผู้ใช้กล่าวว่าล้างแคชและรีบูตแล็ปท็อปของเขา

ฉันวิ่งตรวจสอบ SSL บน digicert.com ผลลัพธ์คือ:

ใบรับรอง SSL ไม่น่าเชื่อถือ

ใบรับรองไม่ได้ลงนามโดยหน่วยงานที่เชื่อถือได้ (ตรวจสอบกับที่เก็บรูทของ Mozilla) หากคุณซื้อใบรับรองจากหน่วยงานที่เชื่อถือได้คุณอาจต้องติดตั้งใบรับรองระดับกลางหนึ่งใบขึ้นไป ติดต่อผู้ให้บริการออกใบรับรองของคุณสำหรับความช่วยเหลือในการทำสิ่งนี้กับแพลตฟอร์มเซิร์ฟเวอร์ของคุณ

  1. ทำไมฉันถึงสามารถเชื่อมต่อกับเว็บไซต์โดยไม่มีข้อผิดพลาด SSL ได้ในกรณีนี้

1
My hosting provider has recently re-issued and re-installed an SSL certificate for my domain, after they let the old one expire by mistake.- เป็นอย่างไรบ้างที่คุณทิ้งความรับผิดชอบนี้ไว้ในมือ?
joeqwerty

3
เพียงเพราะฉันไม่ใช่ผู้ดูแลระบบฉันเช่าเซิร์ฟเวอร์เฉพาะที่จัดการจากพวกเขา (สำหรับเรื่องราวเบื้องหลังเล็กน้อยฉันเขียนเนื้อหาการเรียนรู้ภาษาและรหัสด้านบนของการดำเนินธุรกิจดังนั้นการดูแลระบบด้วยในขณะที่น่าสนใจน่าจะเป็นหมวกหนึ่งใบมากเกินไป)
Fabien Snauwaert

7
@joeqwerty: เพราะมันเป็นงานของพวกเขา? เขาจ่ายเงินให้พวกเขาเพื่อจัดการเรื่องนี้ให้เขา
Lightness Races ในวงโคจร

@LightnessRacesinOrbit: นั่นเป็นข้อสันนิษฐานที่ฉันไม่ได้ทำดังนั้นคำถาม
joeqwerty

1
bugzilla.mozilla.org/show_bug.cgi?id=399324เป็นรายงานข้อผิดพลาดที่ร้องขอการสนับสนุนสำหรับการดาวน์โหลดใบรับรองระดับกลางใน Firefox โดยอัตโนมัติ การสนทนา (นาน 8 ปี) ทำให้เดือดลงไปที่ "IE ทำได้!" / "สำหรับนรกด้วย IE RFC บอกว่าเป็นตัวเลือก!" / "เคยได้ยินหลักการของความแข็งแกร่งหรือไม่" / "การกำหนดค่าเซิร์ฟเวอร์ของคุณไม่ดีและคุณควรรู้สึกแย่!"

คำตอบ:


22

ห่วงโซ่ใบรับรองของใบรับรองของคุณไม่สมบูรณ์ เป็นไปได้มากว่าผู้ให้บริการของคุณจะไม่สามารถติดตั้งใบรับรองระดับกลางบางอย่างเมื่อติดตั้งใบรับรองใหม่

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

ยูทิลิตี้ที่ดีจริงๆเพื่อตรวจสอบปัญหา SSL กับเว็บไซต์ของคุณคือการทดสอบเซิร์ฟเวอร์ SSL โดย SSLlabs ในขณะที่คุณสามารถดูได้ในลิงค์ด้านบนไม่เพียง แต่คุณมีปัญหาห่วงโซ่ที่นี่ แต่ยังอัลกอริทึมลายเซ็นที่ใช้ในการสร้างใบรับรองของคุณเป็นความอ่อนแอหนึ่งเว็บเซิร์ฟเวอร์ของคุณยังคง vulnarable ไปโจมตีพุดเดิ้ลและยังคงสนับสนุน RC4 ซึ่งเป็น ถือว่าไม่ปลอดภัยด้วย ...

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


ขอบคุณนั่นเป็นประโยชน์มาก ด้วยความอยากรู้อยากเห็นความคิดใด ๆ ว่าทำไมไคลเอนต์ใน OS X และ Firefox รุ่นเดียวกันเมื่อฉันพบSEC_ERROR_UNKNOWN_ISSUERข้อผิดพลาดขณะที่ฉันไม่อยู่ มันเป็นเวอร์ชั่นระบบปฏิบัติการของเขาที่แตกต่างกันอย่างไร
Fabien Snauwaert

1
@FabienSnauwaert ใช่ถ้าคุณเลื่อนลงไปที่ "การจำลองการจับมือกัน" การทดสอบ SSLLabs จะพยายามจำลองชุด OS / เบราว์เซอร์ที่หลากหลาย เบราว์เซอร์ไม่ได้จัดการการเชื่อมต่อ SSL ด้วยตัวเองทั้งหมด แต่บางส่วนอาศัยการใช้งานระบบปฏิบัติการ แน่นอนว่าเวอร์ชั่นของระบบปฏิบัติการสร้างความแตกต่าง
s1lv3r

3
ไม่ใช่แค่ลูกค้าอาจมีรายชื่อ CA ที่ต่างกัน นอกจากนี้ยังเป็นไปได้ว่าไคลเอนต์บางรายแคชใบรับรองระดับกลางเช่นว่าไซต์ที่มีใบรับรองระดับกลางที่ขาดหายไปอาจทำงานได้หากเบราว์เซอร์เคยเยี่ยมชมไซต์ที่เคยกำหนดค่าใบรับรองระดับกลางนั้นอย่างถูกต้อง
kasperd

เว็บไซต์ SSLlabs เป็นเครื่องมือที่ดี ขอบคุณสำหรับการอ้างอิง
Parapluie

12

เพื่อให้ใบรับรองเชื่อถือได้นั้นจะต้องมีการลงนามโดยนิติบุคคลที่เชื่อถือได้โดยเบราว์เซอร์ / ระบบปฏิบัติการของคุณหรือมีการลงนามโดยนิติบุคคลนั้น โดยทั่วไปแล้วจะทำโดย CA ที่เชื่อถือได้หนึ่งเดียวซึ่งลงนามใน CA ระดับกลางและ CA ระดับกลางจะลงนามใบรับรองของคุณ สิ่งนี้สร้างห่วงโซ่เช่นนี้

  1. Root CA ที่คอมพิวเตอร์ของคุณเชื่อถือและมีเครื่องหมาย
  2. CA ระดับกลางซึ่งสัญญาณ
  3. ใบรับรองของคุณซึ่งเชื่อถือได้เนื่องจากเชนนำกลับไปที่รูต CA

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

สาเหตุที่ใช้งานได้กับผู้ใช้บางคนก็คือพวกเขามีใบรับรองระดับกลางใน "trust store" ของพวกเขาเอง ในกรณีดังกล่าวพวกเขาจะยอมรับใบรับรองของคุณเพราะพวกเขาเชื่อถือสื่อระดับกลางอยู่แล้ว แต่ในกรณีที่ผู้เข้าชมของคุณมีระบบปฏิบัติการ / เบราว์เซอร์ที่แตกต่างกันพวกเขาไม่มีใบรับรองระดับกลางดังนั้นพวกเขาจะต้องได้รับมันจากเว็บเซิร์ฟเวอร์ของคุณ - และเว็บเซิร์ฟเวอร์ของคุณไม่แจกมันดังนั้นพวกเขาจึงไม่มีวิธี ตรวจสอบมัน


ขอบคุณมันช่วยให้ฉันเห็นปัญหาอย่างชัดเจนในขณะนี้ มีเคล็ดลับใด ๆ หรือไม่ที่จะให้ผู้ใช้เพิ่มใบรับรองระดับกลางลงใน "trust store" ของตนเองขณะที่รอให้โฮสต์ของฉันแก้ไขใบรับรอง เช่นไปที่ไซต์ SSL อื่นที่ต้องใช้หรือไม่
Fabien Snauwaert

1
@FabienSnauwaert ไม่มีเคล็ดลับน่าเสียดาย เพียงไปที่ไซต์ที่มีใบรับรองระดับกลางเหมือนกันก็ไม่ได้ช่วยอะไร พวกเขาจะต้องดาวน์โหลดใบรับรองจริงและเพิ่มลงในเบราว์เซอร์ด้วยตนเอง ฉันเชื่อว่าใบรับรองเฉพาะนี้รวมอยู่ในเบราว์เซอร์ใหม่ - ทำงานได้ใน Firefox 45.0.1 แต่ไม่ได้อยู่ใน 43.0.4 ดังนั้นจึงรวมอยู่ในที่ใดที่หนึ่งระหว่างสองเวอร์ชันนี้ ดังนั้นหากคุณสามารถให้ลูกค้าอัปเกรดเบราว์เซอร์ของพวกเขาได้นั่นจะช่วยได้
Jenny D

4
@JennyD ใบรับรองระดับกลางถูกแคชไว้โดยเบราว์เซอร์ที่ทันสมัยดังนั้นการเยี่ยมชมไซต์อื่นที่ใช้สื่อขั้นกลางเดียวกันนั้นมีแนวโน้มที่จะใช้งานได้ อย่างไรก็ตามนั่นไม่ใช่สิ่งที่ควรถามผู้ใช้ ... (ดู: bugzilla.mozilla.org/show_bug.cgi?id=629558 , sslmate.com/blog/post/chrome_cached_sha1_chains )
Bob

0

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

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