わけあって、業務にてCentOS6.8で構築されたシステム(開発環境)を扱っています。 その最中に、vault.centos.org(CentOSのミラーサイト)と通信できないトラブルに遭遇しました。
原因特定に少し苦労したのですが、無事にトラブルは解消できたので、対処法を共有します。
vault.centos.orgと通信できない理由
通信できない原因はシンプルでして、vault.centos.orgでLet's Encryptが使われているからです。
そして、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のインストールのみで済む可能性もあります。
参考になったサイト様
感想
ルート証明書は、普段使っているブラウザでは自動で設定されているため、意識する機会が少ないです。
しかしながら、ルート証明書にも有効期限があります。 そのため、古いブラウザやサポート期限の終了したOSでは、ルート証明書の期限切れに遭遇する可能性があります。
サポートの終了したOSなんて、使わないのが一番と言ってしまえばその通りではあるのですが、今回はいろいろと勉強になりました。