証明書の問題による cdn.jsdelivr.net 接続不能の事態
(github.com/jsdelivr)想像以上にクリティカルな問題ですが、特に言及がないようなので共有します。
- 世界最大級のオープンソースプロジェクト向けCDNサービスである jsDelivr のエッジドメインの1つ
cdn.jsdelivr.netへの接続不能な状態が、2024-05-02 午前(KST)から継続中 - SSL 証明書の有効期限切れによるエラー(
ERR_CERT_DATE_INVALID)と思われるが、現在は別のエラーメッセージ(ERR_CERT_COMMON_NAME_INVALID)に変わった状態 - 韓国では jsDelivr を使って js フロントエンドライブラリやWebフォントなどを配信しているサイトが多いため、自身のサービスやプロジェクトの点検が必要
13件のコメント
cdn.jsdelivr.netで提供されているslick-sliderは、cdnjs.cloudflare.comでも提供されているので、参考にしてください。Discordにも告知がなかったですね。
午後ごろになると、あれこれ動かないという報告が続出 (泣)
韓国時間20時08分ごろ、作者の Dmitriy Akulov(@jimaek) が障害のポストモーテム記事を公開しました。
https://www.jsdelivr.com/blog/jsdelivr-may-outage-postmortem/
おおまかな内容を翻訳・要約(Claude3 Sonnet LLM を利用)すると、以下のとおりです。
2024年5月2日の夜、jsDelivr CDN ドメイン
cdn.jsdelivr.netが特定地域のクライアントに期限切れの SSL 証明書を提供し、約5時間以上の障害が発生しました。主にアフリカ、アジア、ヨーロッパ、およびラテンアメリカの一部の国のユーザーが影響を受けました。障害の原因は、Cloudflare が DigiCert 認証局から Google Trust Services へ変更する過程でドメイン有効性検証の方法が変わり、jsDelivr の特殊な設定のため自動証明書発行に失敗したことでした。
jsDelivr の開発者は今回の事態について全面的に責任を負うとしており、今後は CDN プロバイダーに重要な変更があるたびに、jsDelivr 側で当該 CDN を無効化して手動検証を行うとしています。長期的には、DNS、ロードバランシング、フェイルオーバーシステムを最適化し、自社の Globalping サービスを統合する計画です。
どうりで早朝に証明書の問題があったのに、検索しても何も出てこなかったわけですね。
やっと今になって…
私も急いで作ったプロジェクトで障害が発生したので、自前のCDNに移しましたね……
そのような CDN 自体はどのように実装するのでしょうか?
私もディスクキャッシュに残っていたソースをコピーして、自前のCDNに移して対応しました。
cdn.jsdelivr.netのcdnをfastlyまたはgcoreに置き換えることで解決できます。調べてみると、2019年にも同じ問題があり、その際も対応が遅かったようですね。
https://github.com/orioncactus/pretendard/…
結局、クリティカルなライブラリは無料ホスティングよりセルフホスティングするのが答えのようです。gcore や fastly でも、いつかは同じような問題が発生する可能性がありますから。
うわ、自分も今これで頭を抱えていました