839の日記

業務とは関係ない趣味の話を書くブログです。

firebase hostingのSSL証明書の更新が遅れていた

firebase hostingで静的配信しているコンテンツに対してユーザから証明書のエラーが起きたという報告がありました。 この記事は同じ問題を踏んでいる人がいるかもしれないのでメモがてら書いています。

最初に結論を述べておくとGoogleの不具合だったようです。 以下は調査したメモですがGoogleの不具合だったようなのであまり参考にはならないと思います。

背景として

  • カスタムドメインは未使用( *.web.app を使用)
  • 報告があった時刻と証明書の更新時刻が近い

といったことを確認しています。

まずカスタムドメインは利用していないので証明書に関してもよしなにfirebase hostingが更新してくれると思っています。

Firebase automatically provisions SSL certificates for all your domains so that all your content is served securely.

refs: Firebase Hosting  |  Firebase

報告された時刻は2/16の11:17なのですが、使用して動かないなと思い調べた上で証明書の問題という報告をしてくれたと推測できるので、 実際に現象を確認したのはもう少し前だと思われます。 現在確認した証明書の情報としては以下のようなものでした。

  • タイムスタンプ: 2020/02/16 11:12:46 JST
  • 有効になる日付: 2020/02/16 10:12:46 JST
  • 無効になる日付: 2020/05/16 10:12:46 JST

証明書の更新周期に関してあまり詳しくないのですが、Let's Encryptと同じ挙動をしているとするなら

  1. 証明書を更新した時刻がタイムスタンプ
  2. 有効になる日付は更新した時刻の1時間前から有効
  3. 証明書を配信した段階からvalidである

といった形だと思います。

そのことから実際に証明書が更新されたタイミングは11:12に更新されたものと思われます。 そして仮にGoogleが3ヶ月周期でbatchを回しているとなると10:12-11:12の間は証明書がinvalidだったのではないかと推測しています。 ただ、これに関しては既に終わってしまったことなので検知しようがないため、やれることといえば次回更新と思われる5/16に同様の観測をするぐらいしかないですね...。

とここまで書いた後に同様の症状を観測している人がいないかを調べたところ、他にも観測していた人がいるようです。

どうやら02/16 6:50JST-02/16 11:45JST頃まで何かバグっていたのが原因だったようです。
恐らく次回の更新では大丈夫でしょう。

(02/16 16:30時点ではhttps://status.firebase.google.com/summary にインシデントはまだ載っていない模様...)