Ubuntu 14.04 で証明書と OpenSSL を更新しても、期限切れの LetsEncrypt 証明書エラーが発生しますか?

Ubuntu 14.04 で証明書と OpenSSL を更新しても、期限切れの LetsEncrypt 証明書エラーが発生しますか?

私のオフィスのシステムの 1 つでは、まだ Ubuntu 14.04 が稼働しています。このシステムは、Let's Encrypt の期限切れルート証明書の問題の影響を受けています。

https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/

以下の手順に従って、最新の証明書を手動でダウンロードしました。

https://askubuntu.com/questions/1366704/how-to-install-latest-ca-certificates-on-ubuntu-14

# Ensure dependencies
sudo apt install make tar wget

# Make a place to build it in
mkdir -p ~/src
cd ~/src
wget https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/ca-certificates/20210119~20.04.2/ca-certificates_20210119~20.04.2.tar.xz    
tar -xJf ca-certificates_20210119~20.04.2.tar.xz

# Now build and install
cd ca-certificates-20210119~20.04.1
make
sudo make install

# You might want to run this interactively to ensure
# you can select the ISRG Root X1
# in which case, just run: sudo dpkg-reconfigure ca-certificates
sudo dpkg-reconfigure -fnoninteractive ca-certificates
sudo update-ca-certificates --fresh --verbose
/usr/bin/c_rehash /etc/ssl/certs

ここでの手順に従って「DST Root CA X3」を削除し、「ISRG_Root_X1」証明書が有効になっていることを確認しました。

https://jay.gooby.org/2021/09/30/remove-the-dst-root-ca-x3-crt-from-ubuntu-14-04-lts

# Also available at https://askubuntu.com/a/1366719/233579
mkdir -p ~/src
cd ~/src
wget https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/ca-    certificates/20210119~20.04.2/ca-certificates_20210119~20.04.2.tar.xz
unxz ca-certificates_20210119~20.04.2.tar.xz
tar -xf ca-certificates_20210119~20.04.2.tar
cd ca-certificates-20210119~20.04.1
make
sudo make install
sudo dpkg-reconfigure -fnoninteractive ca-certificates
sudo update-ca-certificates 

念のため再起動しました。それでもエラーは発生しました。次に、openssl以下の手順に従って 1.0.2 から 1.1.0 に手動でアップデートしました。

https://forums.servethehome.com/index.php?resources/installing-openssl-1-1-0-on-ubuntu.21/

# I had to use the --no-check-certificate flag because openssl's certificate
#  is issued by LetsEncrypt
wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz --no-check-certificate
tar xzvf openssl-1.1.0e.tar.gz
cd openssl-1.1.0e
./config -Wl,--enable-new-dtags,-rpath,'$(LIBRPATH)'
make
sudo make install

新しいバージョンは確かにあります:

$ openssl version
OpenSSL 1.1.1l  24 Aug 2021

期限切れの古い証明書が削除され、新しい証明書が有効になっていることを確認しました。

# Look for expired LetsEncrypt certificate.
$ openssl x509 -enddate -noout -in /etc/ssl/certs/DST_Root_CA_X3.pem
Can't open /etc/ssl/certs/DST_Root_CA_X3.pem for reading, No such file or directory
140352100943680:error:02001002:system library:fopen:No such file or directory:crypto/bio/bss_file.c:69:fopen('/etc/ssl/certs/DST_Root_CA_X3.pem','r')
140352100943680:error:2006D080:BIO routines:BIO_new_file:no such file:crypto/bio/bss_file.c:76:
unable to load certificate

# Look for new LetsEncrypt ISRG_Root_X1 certificate
$ openssl x509 -enddate -noout -in /etc/ssl/certs/ISRG_Root_X1.pem
notAfter=Jun  4 11:04:38 2035 GMT

念のため、もう一度再起動しました。残念ながら、まだエラーが発生していますopenssl。1.1.0 ビルドを再度ダウンロードしようとすると、次のようになります。ただし、今回は、以前ファイルを取得するために使用したの--no-check-certificatesと同じものはありません。wget

$  wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz
--2021-11-24 18:38:38--  https://www.openssl.org/source/openssl-1.1.0e.tar.gz
Resolving www.openssl.org (www.openssl.org)... 2600:1403:5400:59f::c1e, 2600:1403:5400:5b3::c1e, 104.122.65.172
Connecting to www.openssl.org (www.openssl.org)|2600:1403:5400:59f::c1e|:443... connected.
ERROR: cannot verify www.openssl.org's certificate, issued by ‘/C=US/O=Let's Encrypt/CN=R3’:
  Unable to locally verify the issuer's authority.
To connect to www.openssl.org insecurely, use `--no-check-certificate'.

これを修正する方法を知っている人はいますか?

答え1

1 つの CA 証明書のみを追加する場合は、すべての CA 証明書をダウンロードする必要はありません。

新しいISRG Root X1ルート証明書をPEM形式でダウンロードするだけです。Let's Encryptのリポジトリ(もちろん、リンクが本物の HTTPS で保護されたサイトへのリンクであることを確認した上で)。

拡張子が になるようにファイルの名前を変更し.crt、 に配置します/usr/local/share/ca-certificates

最後に、以下を実行します。

sudo update-ca-certificates --fresh

関連情報