วิธีแก้ไข Firefox 59 ไม่ยอมรับใบรับรอง SSL ของฉันที่ลงชื่อด้วยตนเองใน. virtual virtualhost


20

ในสภาพแวดล้อม Apache ท้องถิ่นของฉันฉันมีเว็บไซต์ที่ต้องการ SSL เพื่อการพัฒนาดังนั้นฉันจึงใช้ใบรับรองที่ลงชื่อด้วยตนเอง ไซต์ท้องถิ่นทำงานได้ดีใน Firefox และ Chrome จนถึงตอนนี้ แต่หลังจากอัปเดต Firefox เป็นรุ่น 59 วันนี้ฉันไม่สามารถรับมันเพื่อยอมรับข้อยกเว้นด้านความปลอดภัย (บน Chrome ใบรับรองที่ลงชื่อด้วยตนเองยังคงใช้งานได้)

Firefox ให้ข้อมูลเพิ่มเติมแก่ฉันในหน้าเว็บที่ถูกบล็อก:

... ใช้ใบรับรองความปลอดภัยที่ไม่ถูกต้อง ใบรับรองไม่น่าเชื่อถือเพราะลงนามด้วยตนเอง รหัสข้อผิดพลาด: SEC_ERROR_UNKNOWN_ISSUER

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

ใครที่ประสบปัญหาคล้ายกันกับ FF 59 หรืออาจมีเงื่อนงำอะไรที่จะทำให้ใบรับรองที่ลงชื่อด้วยตนเองทำงานได้อีกครั้งในเครื่อง


แก้ไข: ฉันไม่เห็นการพูดถึงสิ่งนี้ในบันทึกประจำรุ่น FF 59แต่มีบางสิ่งในรุ่นใหม่ที่ทำให้โฮสต์เสมือนในพื้นที่ของฉันในโดเมน * .dev พยายามสร้างการเชื่อมต่อ https โดยอัตโนมัติ (กล่าวคือ http ทั้งหมด คำขอสำหรับ * .dev จะถูกส่งโดยอัตโนมัติไปยัง https URL) บางทีสิ่งที่เกี่ยวกับพฤติกรรมนี้ก็เป็นสิ่งที่ทำให้เกิดปัญหาเหล่านี้สำหรับโฮสต์เสมือน https ที่แท้จริงของฉัน


1
ฉันเดาว่าตอนนี้คุณต้องใช้ CA สำหรับใบรับรองแบบลงนามด้วยตนเองเนื่องจาก Firefox มีข้อกำหนดที่เข้มงวดมากขึ้นเรื่อย ๆ ในช่วงไม่กี่รุ่นที่ผ่านมา อย่างไรก็ตามด้วย Let's Encrypt ไม่มีเหตุผลที่จะใช้ใบรับรองที่ลงชื่อด้วยตนเองอีกต่อไป
Simon Greenwood

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

@Broco หากมีสิ่งใดที่อยู่ในการตั้งค่าความปลอดภัยไม่ใช่การตั้งค่าความเป็นส่วนตัว ตามที่ระบุไว้ข้างต้นฉันได้เพิ่มข้อยกเว้นด้านความปลอดภัย แต่ Firefox ยังยืนยันว่าไม่สามารถตรวจสอบใบรับรองได้เนื่องจากเห็นได้ชัดว่าผู้ออกใบรับรองไม่ทราบ
kontur

@kontur สำหรับฉันการเชื่อมโยงเกี่ยวกับ: การตั้งค่า # ความเป็นส่วนตัวเพื่อตั้งค่าความเป็นส่วนตัวและความปลอดภัยนั่นคือเหตุผลที่ฉันพูดความเป็นส่วนตัว พิจารณาการโพสต์มันเป็นข้อผิดพลาด

2
@SimonGreenwood มีเหตุผลมากมายที่จะไม่ใช้ลองเข้ารหัสในการเชื่อมต่อท้องถิ่น ใครจะไม่อยากตั้งค่าลอง encrpyt
Jon

คำตอบ:


15

ฉันยังไม่ชัดเจนว่าทั้งหมดนี้เข้ากันได้อย่างไร แต่ตามที่ระบุไว้ใน .devโดเมนคำตอบนี้ตอนนี้ TLD อย่างเป็นทางการ ดังนั้นดูเหมือนว่าเบราว์เซอร์จะบังคับให้มีพฤติกรรม HSTS และการเชื่อมต่อ https สำหรับ TLD เหล่านั้นดูเหมือนว่าใบรับรองแบบลงนามด้วยตนเองของฉันจะไม่ได้รับการยอมรับใน Firefox อีกต่อไป การเปลี่ยนโฮสต์เสมือนของฉันให้ใช้.testแก้ไขปัญหาได้โดยไม่ต้องเปลี่ยนอะไรในใบรับรองที่ลงชื่อด้วยตัวเองเลย

เป็นที่น่าสังเกตว่าใน Firefox นั้นโฮสต์เสมือนที่ไม่ใช่ SSL ของฉันยังทำงานอยู่ตั้งแต่รุ่น 59 วันนี้เนื่องจากพฤติกรรม HSTS ดูเหมือนจะบังคับใช้ SSL กับโฮสต์เสมือนฉันไม่ได้ตั้งค่าให้บริการผ่าน SSL ใน Chrome ยังคงใช้งานได้ แต่วิธีใดก็ตามที่ปลอดภัยที่จะพูดว่าการย้ายออกจาก.devTLD ที่ใช้อย่างเป็นทางการในขณะนี้จะช่วยแก้อาการปวดหัวได้หลายวิธี


1
ใช่.devเป็น TLD ที่ถูกต้องตั้งแต่บางเวลาจึงไม่ใช้มันเพื่อชื่อทรัพยากรภายในของคุณ เหมือนกันสำหรับชื่ออื่น: อย่าใช้ชื่อใด ๆ ที่คุณคิดว่าจะไม่มีใครใช้ ใช้ชื่อทดสอบที่อ้างอิงใน RFC2606 หรือเพียงแค่ลงทะเบียนชื่อโดเมนจริงทุกที่และใช้โดเมนย่อยเช่นint.example.comหรือdev.example.comเพื่อต่อท้ายชื่อภายในทั้งหมดของคุณ จากนั้นคุณจะไม่เคยมีการชนหรือมีปัญหา (ตราบใดที่คุณจำไม่ได้ว่าจะต่ออายุชื่อโดเมนในแต่ละปี!)
Patrick Mevzek


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

12

มีวิธีง่ายๆในการแก้ไขปัญหานี้

  1. ไปที่ about:config
  2. ค้นหา "network.stricttransportsecurity.preloadlist"
  3. falseตั้งค่าให้

คำเตือน: นี้จะปิดการใช้งาน HSTS ทั้งหมด ดูความคิดเห็นเกี่ยวกับคำตอบนี้สำหรับการสนทนาเกี่ยวกับข้อเสียของวิธีนี้ ฉันเองคิดว่าผลประโยชน์มีมากกว่าความเสี่ยง แต่คุณต้องรับผิดชอบต่อความปลอดภัยของคุณเอง

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


4
นี่เป็นความคิดที่แย่มากเนื่องจากการตั้งค่านี้จะมีผลกับทุกเว็บไซต์ที่คุณเข้าชมไม่ใช่เฉพาะของคุณเอง คุณลดความปลอดภัยลง
Patrick Mevzek

ฉันไม่เห็นด้วย. HSTS นั้นค่อนข้างใหม่ เราไม่ได้ใช้งานมาตลอด 20 ปีที่ผ่านมาดังนั้นการกล่าวว่าการปิดใช้งานนั้นไม่ดีมากสำหรับความปลอดภัยเกินจริง ประการที่สองแม้ว่ามันจะเป็นความคิดที่ดี แต่ก็ไม่มีทางเลือกอื่น ๆ เลยถ้าฉันต้องการให้เซิร์ฟเวอร์การพัฒนาของฉันทำงานต่อไปได้
Andy Mercer

1
วิธีแก้ปัญหาเช่นนี้: security.stackexchange.com/a/154176อย่างน้อยก็ส่งผลกระทบต่อเว็บไซต์เดียวเท่านั้นไม่ใช่ทั้งหมด
Patrick Mevzek

1
เท่าที่ฉันรู้ว่าสิ่งนี้กำลังจะเกิดขึ้นเมื่อคุณอายุมากขึ้นคุณจะรู้ว่าสิ่งต่าง ๆ เช่น "แนวปฏิบัติที่ดีที่สุด" และ "ผิด" มีความยืดหยุ่นและเปลี่ยนแปลงตลอดเวลา สิ่งที่ผู้คนคิดว่าเป็น "ผิด" ในตอนนี้ไม่ถือว่าผิดไปหลายปีและอาจจะไม่เกิดขึ้นอีกในอนาคต สำหรับการสนทนานี้เราจะต้องเห็นด้วยไม่เห็นด้วย
Andy Mercer

1
ขอบคุณสำหรับการแก้ไขนี้ทำงานได้ดีสำหรับฉันใน Firefox 59.0.1 (และ Firefox Dev Edition 60) .devโครงการในปัจจุบันของเราจะถูกย้ายไปยังส่วนต่อท้าย TLD อื่น แต่ในตอนนี้สิ่งนี้ไม่ช่วยหยุดการพัฒนาท้องถิ่น
Jake Bathman

5

การตั้งค่าsecurity.enterprise_roots.enabledไปtrueที่about:configหน้าแก้ไขปัญหานี้ให้ฉันและอนุญาตให้ใบรับรองที่ลงนามเองทำงานระหว่างการพัฒนา

มีบิตของการสนทนารอบประโยชน์ของการเป็นอยู่นี้โดยเริ่มต้นที่นี่:
ชุด security.enterprise_roots.enabled จริงโดยค่าเริ่มต้น

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


ขอบคุณมันใช้งานได้!
informatik01

0

มีปัญหาเดียวกันในบาซิลิสเว็บเบราเซอร์ ฉันพยายามเปลี่ยนการตั้งค่าพร็อกซีเครือข่ายหรือแก้ไข "network.stricttransportsecurity.preloadlist" หรือ "security.enterprise_roots.enabled" ตั้งค่าสถานะ "... แต่ไม่ได้แก้ไขปุ่มหายไปเพื่อเพิ่มใบรับรองสำหรับเว็บไซต์ที่ถูกบล็อก เพียงนี้ทำให้มันผ่าน:

  1. about:supportไปที่
  2. คลิกที่Open Directoryโปรไฟล์เบราว์เซอร์ของคุณ
  3. ปิดเบราว์เซอร์อย่างสมบูรณ์
  4. แก้ไขไฟล์ " SiteSecurityServiceState.txt " ในไดเรกทอรีด้านบน
  5. ค้นหาและลบบรรทัดทั้งหมดที่มีไซต์ HSTS ที่ถูกบล็อก
  6. บันทึกไฟล์และเปิดเบราว์เซอร์ของคุณใหม่บนไซต์นั้น

-3

ฉันไปที่ "Let's Encrypt"

https://letsencrypt.org/

ใช้ได้ครั้งละ 3 เดือน แต่การรีเฟรชสามารถเป็นแบบอัตโนมัติได้

อย่างที่คุณเห็นในหมายเหตุมีการจับ โดเมนการพัฒนาและทดสอบของเราเรียกว่า dev-www.example.com และ test-www.example.com เราใช้ใบรับรองตัวแทนจากการผลิต


5
ไม่เข้ารหัสกันเถอะพึ่งพาเซิร์ฟเวอร์และโดเมนที่เปิดเผยต่อสาธารณะหรือไม่ ฉันกำลังมองหาตัวเลือกในการใช้ SSL บนโฮสต์เสมือนท้องถิ่น
kontur

ใช่มันไม่ได้ผลสำหรับคนที่กำลังพัฒนาท้องถิ่น
Andy Mercer

คำถามเป็นเรื่องเกี่ยวกับ LOCAL DEV

@Pieter นั้นเหมือนกับ "การพัฒนาท้องถิ่น" หรือไม่? เพราะนั่นคือสิ่งที่เราทำ
เจอราร์ดเอช. ปิลล์

1
@ GerardH.Pille คุณสามารถสร้าง Let's เข้ารหัสใบรับรองได้หากเซิร์ฟเวอร์สามารถเข้าถึงได้จากอินเทอร์เน็ต สำหรับการพัฒนาท้องถิ่นของฉันนี่ไม่ใช่กรณีดังนั้นมันจึงไม่เป็นไปได้ โปรดแนะนำหากมีสิ่งที่ฉันขาดหายไป
kontur
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.