Trong văn phòng của tôi, một trong những hệ thống vẫn đang chạy Ubuntu 14.04. Hệ thống này đã bị ảnh hưởng bởi sự cố chứng chỉ gốc đã hết hạn của Let's Encrypt:
https://letsencrypt.org/docs/dst-root-ca-x3-expiration-september-2021/
Tôi đã tải xuống các chứng chỉ mới nhất theo cách thủ công bằng cách sử dụng các hướng dẫn được tìm thấy tại đây:
https://askubuntu.com/questions/1366704/how-to-install-latest-ca-certificates-on-ubuntu-14
# Đảm bảo phụ thuộc
cài đặt sudo apt make tar wget
# Tạo một nơi để xây dựng nó trong
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
# Bây giờ xây dựng và cài đặt
cd ca-chứng chỉ-20210119~20.04.1
chế tạo
sudo thực hiện cài đặt
# Bạn có thể muốn chạy điều này một cách tương tác để đảm bảo
# bạn có thể chọn ISRG Root X1
# trong trường hợp đó, chỉ cần chạy: sudo dpkg-reconfigure ca-certificates
Sudo dpkg-reconfigure -fnoninteractive ca-cert
Sudo update-ca-chứng chỉ --fresh --verbose
/usr/bin/c_rehash /etc/ssl/certs
Tôi đã làm theo các bước ở đây để xóa "DST Root CA X3" và đảm bảo rằng chứng chỉ "ISRG_Root_X1" đã được bật:
https://jay.gooby.org/2021/09/30/remove-the-dst-root-ca-x3-crt-from-ubuntu-14-04-lts
# Cũng có tại https://askubuntu.com/a/1366719/233579
mkdir -p ~/src
cd ~/src
wget https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/ca-certert/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-chứng chỉ-20210119~20.04.1
chế tạo
sudo thực hiện cài đặt
Sudo dpkg-reconfigure -fnoninteractive ca-cert
Sudo update-ca-chứng chỉ
Tôi đã khởi động lại để đảm bảo. Tôi vẫn nhận được lỗi. Sau đó, tôi cập nhật thủ công opensl
từ 1.0.2 đến 1.1.0 bằng các hướng dẫn sau:
https://forums.servethehome.com/index.php?resources/installing-openssl-1-1-0-on-ubuntu.21/
# Tôi phải sử dụng cờ --no-check-certificate vì chứng chỉ của openssl
# được phát hành bởi LetsEncrypt
wget https://www.openssl.org/source/openssl-1.1.0e.tar.gz --no-check-cert
tar xzvf openssl-1.1.0e.tar.gz
cd openssl-1.1.0e
./config -Wl,--enable-new-dtags,-rpath,'$(LIBRPATH)'
chế tạo
sudo thực hiện cài đặt
Tôi thấy phiên bản mới:
phiên bản $ openssl
OpenSSL 1.1.1l ngày 24 tháng 8 năm 2021
Tôi chắc chắn rằng chứng chỉ hết hạn cũ đã biến mất và chứng chỉ mới đang hoạt động:
# Tìm chứng chỉ LetsEncrypt đã hết hạn.
$ openssl x509 -enddate -noout -in /etc/ssl/certs/DST_Root_CA_X3.pem
Không thể mở /etc/ssl/certs/DST_Root_CA_X3.pem để đọc, Không có tệp hoặc thư mục như vậy
140352100943680:error:02001002:system library:fopen:Không có tệp hoặc thư mục như vậy: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:
không thể tải chứng chỉ
# Tìm chứng chỉ LetsEncrypt ISRG_Root_X1 mới
$ openssl x509 -enddate -noout -in /etc/ssl/certs/ISRG_Root_X1.pem
notafter=Jun 4 11:04:38 2035 GMT
Tôi khởi động lại một lần nữa để chắc chắn. Thật không may, tôi vẫn nhận được lỗi. Đây là những gì xảy ra nếu tôi cố tải xuống opensl
1.1.0 xây dựng lại. Tuy nhiên lần này, không có --no-check-chứng chỉ
với quên đi
như tôi đã sử dụng trước đó để lấy tệp:
$ 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
Đang giải quyết www.openssl.org (www.openssl.org)... 2600:1403:5400:59f::c1e, 2600:1403:5400:5b3::c1e, 104.122.65.172
Đang kết nối với www.openssl.org (www.openssl.org)|2600:1403:5400:59f::c1e|:443... đã kết nối.
LỖI: không thể xác minh chứng chỉ của www.openssl.org, được cấp bởi â/C=US/O=Let's Encrypt/CN=R3â:
Không thể xác minh cục bộ thẩm quyền của tổ chức phát hành.
Để kết nối với www.openssl.org một cách không an toàn, hãy sử dụng '--no-check-cert'.
Có ai biết làm thế nào tôi có thể khắc phục điều này?