為什麼我在 EC2 執行個體上收到 Let's Encrypt 憑證的憑證過期錯誤?

上次更新日期:2021 年 10 月 1 日

我無法從具有 Let's Encrypt 憑證的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體連線到遠端 URL。或者,我收到 Let's Encrypt 憑證已過期的錯誤。我要如何修正此問題?

簡短描述

由於 Let's Encrypt 交叉簽章的 DST Root CA X3 過期,一些 EC2 執行個體會遇到憑證過期錯誤。執行下列作業系統的執行個體可能無法使用 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 憑證預設使用由 DST Root CA X3 憑證交叉簽章的憑證鏈,然而該憑證於 2021 年 9 月 30 日到期。

使用 OpenSSL 1.0.2 時,不受信任的鏈永遠是首選。這意味著您會看到已過期的憑證,整個鏈會因為過期而不受信任。伺服器的根存放區中如果有受影響版本的 OpenSSL 和 DST Root CA X3 憑證,就無法發行或更新 Let's Encrypt 憑證。受影響的伺服器也無法存取使用這些憑證的伺服器。

解決方案

具有最新版 OpenSSL 套件的 Ubuntu 16.04 已修正此問題。Amazon Linux 和 Red Hat 也發行了新的 ca-certificates 套件來拒絕過期的憑證。

套件更新

Ubuntu 16.04:將 OpenSSL 更新為 1.0.2g-1ubuntu4.20 或更新版本。

Amazon Linux 和 Amazon Linux 2:Amazon Linux 執行個體可以重新啟動,以自動套用更新的 CA 憑證套件。如果需要更新現有執行個體,客戶可以執行下列動作來更新 CA 憑證:

sudo yum update ca-certificates

注意:對於使用 AMI 與鎖定存放庫 GUID (例如 Elastic Beanstalk) 的客戶,您可以使用下列命令安裝更新的 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-certificates 套件更新為 2021.2.50-72.el7_9 或更新版本。

注意:低於 16.04 的 Ubuntu 版本已結束生命週期。您可以手動介入,但不支援這麼做。

針對以 Amazon Linux 為基礎的系統進行手動修復

我們建議使用上面的 yum 命令更新現有的執行個體。如果您基於某種原因想要修改系統,請改用下列指令:

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

此文章是否有幫助?


您是否需要帳單或技術支援?