Let's Encryptのルート証明書が更新される件と古いandroid端末

Let's Encryptが提供する無料のSSL証明書は本サイトでも利用しています。
そして、Let's Encryptは、Let's Encryptの独自のルート証明 ISRG Root X1へ2020年9月29日に変更することを以前から表明しています。

本サイトのサーバー、さくらインターネットでは、2021年6月頃までは、これまでの「DST Root X3」のルート証明書を利用できる中間CA証明書を利用する設定を維持するとのことですので、2021年6月頃まではクライアントには何も影響はありません。

なぜ2021年6月頃かというと、「DST Root X3」のルート証明書の期限が2021年9月30日だからです。
いくら中間CA証明書で「DST Root X3」を利用できるようにしてあっても、「DST Root X3」の期限が切れてしまっては意味がありません。

というわけで、2021年9月30日以降は、「DST Root X3」ルート証明書+中間CA証明書でも、証明書としては機能しなくなってしまうわけです。

で、上記の話がどんな問題をもたらすかというと、

android 7.1.1(7.1.1はOK)より古いandroid OSにはISRGルート証明書が入っていないので、
この新しいルート証明書を使っているサーバーへアクセスすると、例えばChromeブラウザでは、
 NET::ERR_CERT_AUTHORITY_INVALID
というエラー画面が最初に表示されてしまう。

という現象が発生していまいます。

letsencrypt_root_certificate_change01.png

現在でも、
 https://valid-isrgrootx1.letsencrypt.org/
へアクセスすることで、新しい「ISRGルート証明書」を使ったサイトへのアクセスの確認ができます。

参考:androidのリリース一覧。
 https://developer.android.com/about/dashboards

解決方法は2つです。いずれもクライアント側の対応です。

1.新しいISRGルート証明書を手動でインストールする。
 https://letsencrypt.org/certificates/ の「ISRG Root X1 (self-signed)」からダウンロードして、手動でインストールする。
 android端末への証明書の手動のインストール方法はこちら

2.ブラウザにFirefoxを利用する。
 Firefoxでは、OSの管理する証明書は使わず、独自のルート証明書群(ルートストア)を使うので、そこに「「ISRG Root X1」は入っているので問題なし。(以下はバージョン68で実験。ISRGのルート証明がOS管理下になくてもエラーなく表示)

letsencrypt_root_certificate_change09.png

ここでは、古いandroid OSのセキュリティ云々には触れないでおきます。
あくまでも自己責任で。

ぐっどらっこ。