1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【レアケース】Let's Encryptのルート証明書の切り替えができていなかった場合の対処法

Posted at

9月末でLet's Encryptのルート証明書が切り替わり、ISRG Root X1というものに変わりました。
それに伴ってサーバーの方も確認しなければならなかったのですが、直前にca-certificatesのアップデートが来てたのでてっきり新しいルート証明書に対応していると思ってました。

いざLet's Encryptを使ったサイトにwgetでアクセスしたらエラーが。

ということでいくつか試して解決するかやってみました。

旧ルート証明書を無効化する

一番ベターな方法です。普通は、これがca-certificatesのアップデート時に行われているはずです。
ブラックリストに入ってるはずなので /etc/ca-certificates.confを見てみます。

ca-certificates.conf
!mozilla/DST_Root_CA_X3.crt

ちゃんと「!」が付いているので無効化されていました。
それにISRG Root X1も追加されてました。
それなのにおかしい。

証明書ファイルを消してみる

解決できなかったので、straceコマンドでwgetがどんな挙動をしているか見てみました。
すると、

stat("/usr/local/ssl/certs/8d33f237.0", 0x7ffecc263f40) = 0

というログがあって、なにかのルート証明書を読み込んでいることが分かりました。
これが何なのか調べます。opensslコマンドで確認します。

$ openssl x509 -text -noout -in /usr/local/ssl/certs/8d33f237.0

なんとDST Root CA X1でした。なぜか読み込まれています。
このようなケースは稀と見られます。

ということで古いルート証明書を削除して、証明書ストアを更新します。

$ sudo rm /usr/local/ssl/certs/8d33f237.0
$ sudo update-ca-certificates

解決

再びwgetでletsencrypt.orgにアクセスできるか試したところ、うまく行きました。
今回は極めてレアケースであったため記事にしましたので、参考になればと思います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?