EC2 インスタンスの Let's Encrypt 証明書の有効期限切れエラーを解決するにはどうすればよいですか?

所要時間2分
0

Let's Encrypt 証明書を持つ Amazon Elastic Compute Cloud (Amazon EC2) インスタンスからリモート URL に接続できません。または、Let's Encrypt 証明書の有効期限が切れているというエラーが表示されています。これを修正するにはどうすればよいですか?

簡単な説明

一部の EC2 インスタンスでは、Let's Encrypt クロス署名 DST ルート CA X3 の期限切れにより、期限切れの証明書エラーが発生しています。次のオペレーティングシステムを実行しているインスタンスは、Let's Encrypt 証明書を使用してサーバーに接続できない場合があります。また、これらのオペレーティングシステムは、2021 年 9 月 30 日以降は、Let's Encrypt エンドポイントにアクセスして証明書を発行または更新できない場合があります。

  • CentOSとRHEL 7 以前の古いバージョン
  • Amazon Linux および Amazon Linux 2
  • Ubuntu 16.04 以前の古いバージョン
  • Debian 8 以前の古いバージョン

互換性のために、Let's Encrypt 証明書は、2021 年 9 月 30 日に有効期限が切れた DST ルート CA X3 証明書によってクロス署名された証明書チェーンをデフォルトで使用するようにします。

OpenSSL 1.0.2 では、信頼できないチェーンが常に優先されます。これは、期限切れの証明書が認識され、チェーン全体が期限切れとして信頼できないことを意味します。影響を受けるバージョンの OpenSSL と DST ルート CA X3 証明書がルートストアにあるサーバーは、Let's Encrypt 証明書を発行または更新できません。影響を受けるサーバーは、そのサーバーを使用しているサーバーにもアクセスできません。

解決方法

この問題は、OpenSSL パッケージの最近のリリースに伴い Ubuntu 16.04 で修正されています。Amazon Linux と Red Hat は、期限切れの証明書を拒否する新しい CA 証明書パッケージもリリースしました。

パッケージのアップデート

Ubuntu 16.04: OpenSSL をバージョン 1.0.2g-1ubuntu4.20 以降にアップデートする

Amazon Linux および Amazon Linux 2: Amazon Linux インスタンスを再起動して、更新された CA 証明書パッケージを自動的に適用できます。既存のインスタンスを更新する必要がある場合は、次のコマンドを実行して CA 証明書を更新できます。

sudo yum update ca-certificates

**注意:**Elastic Beanstalk など、ロックされたリポジトリ GUID を持つ AMI を使用している場合、次のコマンドを使用して更新された CA 証明書パッケージをインストールします。

Amazon Linux 1

sudo yum install https://cdn.amazonlinux.com/patch/ca-certificates-update-2021-09-30/ca-certificates-2018.2.22-65.1.24.amzn1.noarch.rpm

Amazon Linux 2

sudo yum install https://cdn.amazonlinux.com/patch/ca-certificates-update-2021-09-30/ca-certificates-2021.2.50-72.amzn2.0.1.noarch.rpm

Red Hat および CentOS 7: CA 証明書パッケージを 2021.2.50-72.el7_9 以降にアップデートします。

**注:**16.04 以前の Ubuntu のバージョンはサポート終了です。手動による介入は可能ですが、サポート対象外です。

Amazon Linux ベースのシステムの手動修復

前述のvyum コマンドを使用して既存のインスタンスを更新するのがベストプラクティスです。システムをインプレースで変更するには、代わりに次のコマンドを使用します。

Amazon Linux 1

sudo sed -i'' '/Alias: DST Root CA X3/,/No Rejected Uses./d' /usr/share/pki/ca-trust-source/ca-bundle.trust.crt
sudo update-ca-trust

Amazon Linux 2

sudo sed -i'' '/DST Root CA X3/,/\[p11-kit-object-v1\]/d' /usr/share/pki/ca-trust-source/ca-bundle.trust.p11-kit 
sudo update-ca-trust

Red Hat ベースのシステムの手動修復

1.    既存のルートストアをバックアップします。

cp -i /etc/pki/tls/certs/ca-bundle.crt ~/ca-bundle.crt-backup

2.    拒否リストディレクトリに証明書を追加します。

trust dump --filter "pkcs11:id=%c4%a7%b1%a4%7b%2c%71%fa%db%e1%4b%90%75%ff%c4%15%60%85%89%10" | openssl x509 | sudo tee /etc/pki/ca-trust/source/blacklist/DST-Root-CA-X3.pem

3.    ルートストアを更新します。

sudo update-ca-trust extract

4.    証明書の削除を確認します。

diff ~/ca-bundle.crt-backup /etc/pki/tls/certs/ca-bundle.crt

関連情報

Let's Encrypt 証明書に対する Android デバイスの互換性を拡張する

AWS公式
AWS公式更新しました 2年前