เหตุการณ์ไม่สามารถเข้าถึง cdn.jsdelivr.net ได้เนื่องจากปัญหาใบรับรอง
(github.com/jsdelivr)เป็นประเด็นที่วิกฤตกว่าที่คิด แต่ดูเหมือนจะยังไม่มีการกล่าวถึงแยกต่างหาก จึงขอมาแชร์ไว้
- หนึ่งในโดเมนเอดจ์ของ jsDelivr ซึ่งเป็นบริการ CDN สำหรับโครงการโอเพนซอร์สที่ใหญ่ที่สุดแห่งหนึ่งของโลก คือ
cdn.jsdelivr.netอยู่ในสถานะไม่สามารถเข้าถึงได้ต่อเนื่องมาตั้งแต่ช่วงเช้า (เวลาเกาหลี) ของวันที่ 2024-05-02 - ดูเหมือนว่าจะเป็นข้อผิดพลาดจากใบรับรอง SSL หมดอายุ (
ERR_CERT_DATE_INVALID) แต่ขณะนี้ได้เปลี่ยนเป็นข้อความผิดพลาดอีกแบบ (ERR_CERT_COMMON_NAME_INVALID) แล้ว - ในเกาหลีมีหลายเว็บไซต์ที่ใช้ jsDelivr เพื่อเสิร์ฟไลบรารี js ฝั่งฟรอนต์เอนด์ เว็บฟอนต์ ฯลฯ ดังนั้นจึงควรตรวจสอบบริการหรือโครงการของตนเอง
13 ความคิดเห็น
ในกรณีของ
slick-sliderที่ให้บริการบนcdn.jsdelivr.netก็มีให้บริการบนcdnjs.cloudflare.comด้วยเช่นกัน ลองอ้างอิงดูได้ครับดูเหมือนว่าใน Discord ก็ไม่มีประกาศเหมือนกันครับ
พอถึงช่วงบ่ายก็มีรายงานออกมารัว ๆ ว่าอะไรหลายอย่างใช้งานไม่ได้ ฮือฮือ
เวลาประมาณ 20:08 น. ตามเวลาเกาหลี ผู้สร้าง Dmitriy Akulov(@jimaek) ได้เผยแพร่บทความ postmortem ของเหตุขัดข้องนี้
https://www.jsdelivr.com/blog/jsdelivr-may-outage-postmortem/
หากแปลและสรุปเนื้อหาโดยคร่าว ๆ (ใช้ Claude3 Sonnet LLM) จะได้ดังนี้
ในคืนวันที่ 2 พฤษภาคม 2024 โดเมน CDN ของ jsDelivr คือ cdn.jsdelivr.net ได้ส่งมอบใบรับรอง SSL ที่หมดอายุให้กับไคลเอนต์ในบางภูมิภาค ทำให้เกิดเหตุขัดข้องยาวนานกว่า 5 ชั่วโมง ผู้ใช้ในบางประเทศของแอฟริกา เอเชีย ยุโรป และลาตินอเมริกาได้รับผลกระทบเป็นหลัก
สาเหตุของเหตุขัดข้องคือระหว่างที่ Cloudflare เปลี่ยนผู้ออกใบรับรองจาก DigiCert ไปเป็น Google Trust Services วิธีการตรวจสอบความถูกต้องของโดเมนได้เปลี่ยนไป ส่งผลให้การออกใบรับรองอัตโนมัติล้มเหลวเนื่องจากการตั้งค่าพิเศษของ jsDelivr
นักพัฒนา jsDelivr ระบุว่าพวกเขารับผิดชอบต่อเหตุการณ์ครั้งนี้ทั้งหมด และต่อจากนี้เมื่อใดก็ตามที่ผู้ให้บริการ CDN มีการเปลี่ยนแปลงสำคัญ jsDelivr จะปิดใช้งาน CDN นั้นและทำการตรวจสอบด้วยตนเองก่อน ในระยะยาวมีแผนจะปรับปรุง DNS, load balancing, ระบบ failover และผสานรวมบริการ Globalping ของตนเอง
ดูเหมือนว่าช่วงเช้าตรู่จะมีปัญหาเรื่องใบรับรองจริง ๆ แต่ค้นหาเท่าไรก็ไม่เจออะไรเลย
ตอนนี้เพิ่งจะ...
โปรเจกต์ที่ผมทำแบบเร่งด่วนก็เกิดปัญหาเหมือนกัน เลยย้ายไปใช้ CDN ของตัวเองแล้ว..
แล้ว CDN แบบนั้นเขาสร้างกันอย่างไรครับ?
ผมก็แก้ปัญหาโดยคัดลอกซอร์สที่ยังค้างอยู่ในดิสก์แคช แล้วนำไปย้ายไว้บน CDN ของตัวเองครับ
คุณสามารถแก้ไขได้โดยเปลี่ยน
cdnใน cdn.jsdelivr.net เป็นfastlyหรือgcoreลองค้นดูพบว่าปัญหานี้เคยเกิดขึ้นในปี 2019 เช่นกัน และดูเหมือนว่าตอนนั้นก็รับมือได้ล่าช้าเหมือนกัน
https://github.com/orioncactus/pretendard/…
ดูเหมือนว่าท้ายที่สุดแล้ว ไลบรารีที่มีความสำคัญระดับวิกฤตก็ควรโฮสต์เองมากกว่าจะพึ่งพาโฮสติ้งฟรี เพราะแม้แต่ gcore หรือ fastly ก็อาจเจอปัญหาแบบเดียวกันได้สักวันหนึ่ง
โห ผมก็กำลังปวดหัวกับเรื่องนี้อยู่พอดีเหมือนกัน