このすみ技術ろぐ

とあるWebエンジニアが、技術や趣味について書くブログです。

CentOS6.8で、Let's EncryptのルートCA証明書期限切れでも通信するための対処法

わけあって、業務にてCentOS6.8で構築されたシステム(開発環境)を扱っています。 その最中に、vault.centos.org(CentOSのミラーサイト)と通信できないトラブルに遭遇しました。

原因特定に少し苦労したのですが、無事にトラブルは解消できたので、対処法を共有します。

vault.centos.orgと通信できない理由

通信できない原因はシンプルでして、vault.centos.orgでLet's Encryptが使われているからです。

f:id:konosumi:20220206152335p:plain

そして、Let's Encryptだと通信できない理由は、ルート証明書の有効期限が2021/9/30で切れているからです。

HTTPSに使用される証明書の最大手発行組織の1つであるLet's Encryptが使用しているルート証明書が期限切れになったことで、米国時間9月30日に多くのウェブサイトやサービスで問題が発生した。

Security Headersの創業者Scott Helme氏によれば、原因は、米国東部時間午前10時(日本時間9月30日午後11時)頃にIdenTrustのルート証明書「DST Root CA X3」が期限切れになったことだ。以前からこの問題について調査してきたHelme氏は、何百万ものウェブサイトがLet's Encryptのサービスに依存していると述べている。今回の問題では、一部の古いデバイスで、特定の証明書を正しく検証できなくなるという。 https://japan.zdnet.com/article/35177496/ より

端末にインストールされているルート証明書の期限が切れてしまうと、サーバー証明書を検証できなくなってしまいます。 そのため、CentOS6.8のようなサポート期限の切れた古い端末では、内蔵されているルート証明書が古くHTTPS通信できなくなってしまいます。

CentOS6.8のルートCA証明書を更新する方法

ルート証明書を更新する必要があるため、ca-certificatesというパッケージをアップデートし、ルートCA証明書を更新して通信できるようにします。

なお、yum update ca-certificates しても、私の場合はミラーサイトとHTTPS通信できず失敗しました。 そのため、FTPで ftp://ftp.pbone.net/mirror/vault.centos.org/6.10/updates/x86_64/Packages/ca-certificates-2020.2.41-65.1.el6_10.noarch.rpm を取得し、RPMパッケージで更新することで対応しました。

$ cd /usr/local/src/

# wgetでRPMのパッケージをダウンロードします
$ wget ftp://ftp.pbone.net/mirror/vault.centos.org/6.10/updates/x86_64/Packages/ca-certificates-2020.2.41-65.1.el6_10.noarch.rpm
$ wget http://ftp.iij.ad.jp/pub/linux/centos-vault/6.7/os/x86_64/Packages/p11-kit-0.18.5-2.el6_5.2.x86_64.rpm
$ wget http://ftp.iij.ad.jp/pub/linux/centos-vault/6.7/os/x86_64/Packages/p11-kit-trust-0.18.5-2.el6_5.2.x86_64.rpm

# rpmコマンドでインストールします
$ sudo rpm -Uhv  p11-kit-0.18.5-2.el6_5.2.x86_64.rpm p11-kit-trust-0.18.5-2.el6_5.2.x86_64.rpm
$ sudo rpm -Uhv  ca-certificates-2020.2.41-65.1.el6_10.noarch.rpm

上記は、ex1-labさんで紹介されているやり方を引用したものです。

似たような境遇だっため、ほぼそのまま実行したのですが、私の環境ではp11-kit-0.18とp11-kit-trust-0.18は already installed でした。 そのため、場合によってはca-certificates-2020のインストールのみで済む可能性もあります。

参考になったサイト様

ex1.m-yabe.com

感想

ルート証明書は、普段使っているブラウザでは自動で設定されているため、意識する機会が少ないです。

しかしながら、ルート証明書にも有効期限があります。 そのため、古いブラウザやサポート期限の終了したOSでは、ルート証明書の期限切れに遭遇する可能性があります。

サポートの終了したOSなんて、使わないのが一番と言ってしまえばその通りではあるのですが、今回はいろいろと勉強になりました。