Điểm:19

Ứng dụng khách trên Debian 9 báo cáo sai chứng chỉ đã hết hạn cho miền do letsencrypt cấp

lá cờ in

Nếu tôi cố truy cập máy chủ HTTPS có chứng chỉ do certbot cấp từ debian 9, tôi gặp lỗi sau:

 # cuộn tròn -v https://hu.dbpedia.org/
 * Đang thử 195.111.2.82...
 * Bộ TCP_NODELAY
 * Đã kết nối với cổng hu.dbpedia.org (195.111.2.82) 443 (#0)
 * ALPN, cung cấp h2
 * ALPN, cung cấp http/1.1
 * Lựa chọn mật mã: TẤT CẢ:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
 * đặt thành công vị trí xác minh chứng chỉ:
 * Tệp CA: /etc/ssl/certs/ca-certificates.crt
   CApath: /etc/ssl/certs
 * TLSv1.2 (OUT), tiêu đề TLS, Trạng thái chứng chỉ (22):
 * TLSv1.2 (OUT), TLS handshake, Client hello (1):
 * TLSv1.2 (IN), TLS handshake, Server hello (2):
 * TLSv1.2 (IN), bắt tay TLS, Chứng chỉ (11):
 * TLSv1.2 (OUT), Cảnh báo TLS, Xin chào máy chủ (2):
 * Sự cố chứng chỉ SSL: chứng chỉ đã hết hạn
 * Curl_http_done: gọi là quá sớm == 1
 * đã dừng luồng tạm dừng!
 * Đóng kết nối 0
 curl: (60) Sự cố chứng chỉ SSL: chứng chỉ đã hết hạn

Tuy nhiên, nếu tôi thử lệnh tương tự từ debian 10, nó sẽ thành công.

Tôi đã cố gắng sao chép tất cả các chứng chỉ ca từ máy ảo debian 10 sang máy ảo debian 9 (sang /usr/local/share/ca-certificates) bằng rsync, rồi chạy cập nhật-ca-chứng chỉ dường như đã thêm hơn 400 chứng chỉ. Thật không may, nó đã không giúp đỡ. Điều này không có gì lạ, vì dường như có cùng các chứng chỉ trên cả debian 9 và 10.

Câu hỏi của tôi là: Làm cách nào tôi có thể truy cập các trang web có chứng chỉ certbot từ máy debian 9 mà không bỏ qua xác minh chứng chỉ hoàn toàn

P.Péter avatar
lá cờ in
@GeraldSchneider Thật không may, đó không phải là một lựa chọn, ít nhất là trong thời gian ngắn. Tôi muốn có một giải pháp tạm thời cho đến khi có thể thực hiện nâng cấp.
P.Péter avatar
lá cờ in
Sự thật thú vị: các phiên bản OSX cũ (~ 4 tuổi) cũng gặp phải vấn đề tương tự.Họ cũng có thể sử dụng và phiên bản openssl cũ.
Điểm:25
lá cờ cn

Cảnh báo! Vui lòng lập kế hoạch lộ trình nâng cấp hệ điều hành. Lời khuyên dưới đây chỉ nên được áp dụng trong trường hợp khẩn cấp để khắc phục nhanh chóng một hệ thống quan trọng.

Giải pháp bên dưới hoạt động trên Debian Jessy 8 và trên Stretch 9 cũng thiếu các bản cập nhật. Tôi chỉ thử nghiệm nó trên docker run -it debian:jessie bash, apt-get cập nhật && apt-get cài đặt cuộn tròn.

Trước:

# cuộn tròn -tôi https://hu.dbpedia.org
curl: (60) Sự cố chứng chỉ SSL: chứng chỉ đã hết hạn
Thêm chi tiết tại đây: http://curl.haxx.se/docs/sslcerts.html
....

Trước tiên hãy kiểm tra xem bạn có chứng chỉ DST Root CA X3 vi phạm hay không:

# grep X3 /etc/ca-certificates.conf 
mozilla/DST_Root_CA_X3.crt

Các bản phát hành Debian cũ cũng có ISRG Root X1 thích hợp:

# grep X1 /etc/ca-certificates.conf 
mozilla/ISRG_Root_X1.crt

Điều này sẽ vô hiệu hóa X3:

# sed -i '/^mozilla\/DST_Root_CA_X3/s/^/!/' /etc/ca-certificates.conf && update-ca-certificates -f

Miền của bạn đáp ứng tốt với curl:

# cuộn tròn -tôi https://hu.dbpedia.org/
HTTP/1.1 200 OK
...

Một lần nữa, hãy lên kế hoạch nâng cấp.

lá cờ sh
Ray
Việc xóa/nhận xét chứng chỉ trong tệp conf này cũng có tác dụng với chúng tôi. Cảm ơn bạn vì sự giúp đỡ.
lá cờ sb
Tôi có thể xác nhận rằng điều này cũng hoạt động trên Debian Stretch.
luminol avatar
lá cờ uz
Hoạt động trên ba máy chủ Debian GNU/Linux 10 (buster) của tôi. Bốn trong số chúng đã bị hỏng trong 1 ngày và tôi phải loại bỏ gần hết lọn tóc của chúng để chúng hoạt động. Một trang web được lưu trữ trên Debian Buster vẫn không hoạt động, nhưng tôi cho rằng đó có thể là một lỗi khác vì ba trang web trước đó đã ngừng hoạt động vào ngày 1 tháng 10, nhưng trang web này với lỗi còn lại đã ngừng hoạt động vào ngày 4 tháng Giêng. Cảm ơn bạn!
Điểm:25
lá cờ cn

Trước hết, Debian 9 là EOL. Nhưng vì khách hàng có thể không nằm trong tầm kiểm soát của bạn, nên tất nhiên bạn có thể muốn cố gắng phục vụ họ trong tình trạng đổ vỡ này.

Tôi cho rằng trong khi câu hỏi chỉ đề cập đến certbot, rằng nó thực sự cụ thể về Letsencrypt.
(Công cụ certbot bản thân nó là một ứng dụng khách giao thức ACME cũng được sử dụng với các CA dựa trên ACME khác, do đó, có thể có sự nhầm lẫn ở đây.)

Vấn đề hiện tại dường như là sự kết hợp của:

  • Root Letsencrypt cũ ("DST Root CA X3") đã hết hạn
  • Cái mới mặc định Chuỗi LE cố gắng "tương thích hơn" bằng cách trình bày một phần mở rộng tùy chọn của chuỗi trong đó gốc mới ("ISRG Root X1") được trình bày dưới dạng trung gian có chữ ký chéo cho gốc cũ (vì các phiên bản Android rất cũ vẫn chấp nhận gốc đã hết hạn nhưng không có gốc mới )
  • Openssl 1.0 có lỗi khiến nó chỉ thử chuỗi đầu tiên mà nó nhìn thấy và nếu nó không thích như vậy, thì nó sẽ không xem xét bất kỳ khả năng nào khác (tức là chuỗi mới ngắn hơn kết thúc ở X1 so với phần mở rộng "tương thích" dài hơn của chuỗi đó đi qua X1 đến X3).
  • libcurl3 trên Debian 9 được liên kết với libssl 1.0

Thay vào đó, nếu bạn trình bày chuỗi chứng chỉ LE mới không cố gắng tương thích thêm, chỉ kết thúc ở thư mục gốc mới (X1), nó sẽ cho phép libssl 1.0 hoạt động (nhưng thay vào đó, bạn sẽ mất khả năng tương thích với Android thực sự cũ).

Ngoài ra, các CA khác (ACME hoặc cách khác) có thể là tùy chọn để xem xét.

P.Péter avatar
lá cờ in
Đây là lời giải thích tốt nhất cho vấn đề, cảm ơn bạn!
P.Péter avatar
lá cờ in
Nhân tiện, cách vô hiệu hóa chứng chỉ "debian" nhất dường như là chạy `dpkg-reconfigure ca-certificates` và bỏ chọn chứng chỉ vi phạm khỏi danh sách.
Orphans avatar
lá cờ cn
Debian 9 không thực sự là End-Of-Life, Debian 8 đã đạt đến EOL vào mùa hè này nhưng Debian 9 vẫn tiếp tục được hỗ trợ với các bản cập nhật bảo mật.
bN_ avatar
lá cờ lu
bN_
Đó là một lời giải thích tuyệt vời về nguyên nhân của vấn đề, nhưng có thể sửa nó mà không cần nâng cấp lên Debian 10 không?
bN_ avatar
lá cờ lu
bN_
Chỉnh sửa: @P.Péter sử dụng `dpkg-reconfigure ca-certificates` để bỏ chọn "DST Root CA X3" sẽ giải quyết được sự cố. Câu trả lời được chấp nhận thực sự cung cấp giải thích nhưng không có giải pháp. Nó sẽ được cập nhật với bình luận @P.Péter.
Han avatar
lá cờ us
Han
Tôi chưa thử phiên bản openssl mới nhất, nhưng tôi gặp vấn đề tương tự trên `openssl 1.1.1c` trong hệ thống Debian của mình và giải quyết vấn đề bằng cách xóa chứng chỉ DST X3 đã hết hạn và thêm chứng chỉ ISRG X1 mới (bằng cách chạy `dpkg -cấu hình lại`) . Hãy xem [bài viết này](https://www.openssl.org/blog/blog/2021/09/13/LetsEncryptRootCertExpire/) để biết chi tiết
Điểm:5
lá cờ ru
ndd

Chứng chỉ gốc DST Root CA X3 đã hết hạn vào ngày 30 tháng 9 lúc 14:01:15 2021 GMT. Nó được sử dụng làm một trong những đường dẫn chứng nhận cho chứng chỉ Letâs Encrypt Phiên bản cURL cũ hơn có một lỗi khiến root hết hạn không thể kết nối thay vì thử các root khác trong cửa hàng ca cục bộ.

Kể từ ngày 30 tháng 9 năm 2021 ca cửa hàng cho curl (https://curl.se/docs/caextract.html) vẫn chứa chứng chỉ gốc DST Root CA X3 đã hết hạn nên việc cập nhật chứng chỉ này sẽ không khắc phục được sự cố. Bạn có thể cập nhật cURL của mình (điều này có thể khá khó khăn trong một số trường hợp) hoặc chỉnh sửa cửa hàng ca cục bộ (ví dụ: /etc/pki/tls/certs/ca-bundle.crt) và xóa chứng chỉ theo cách thủ công sau dòng "DST Root CA X3"

Điểm:2
lá cờ in

Đối với Debian 8 và 9, tôi chỉ làm vậy để cập nhật chứng chỉ trên máy chủ và không còn gặp lỗi 60: Sự cố chứng chỉ SSL: chứng chỉ đã hết hạn : https://github.com/xenetis/letsencrypt-expiration

Chỉ cần chạy, nó sẽ hoạt động:

wget -O - https://raw.githubusercontent.com/xenetis/letsencrypt-expiration/main/letsencrypt-expiration.sh | đánh đập
lá cờ in
Tuyệt vời, cảm ơn bạn! Cuối cùng thì tôi cũng sẽ chuyển từ Debian 9 sang...
Điểm:2
lá cờ bd

Tôi vừa gặp sự cố này với hình ảnh Docker dựa trên Debian Stretch. Giải pháp thật dễ dàng, tôi cho rằng Debian đã vá lỗi libssl1.0.2 để khắc phục sự cố lựa chọn chuỗi mà HÃ¥kan đã đề cập. Trong trường hợp của tôi, chỉ cập nhật các chứng chỉ và libssl1.0.2 bằng cách chạy cài đặt apt -y libssl1.0.2 chứng chỉ ca (với cập nhật apt cho container trước) là đủ.

Điểm:0
lá cờ ae

Theo câu trả lời của Nicolo1, tôi đã chạy tập lệnh trên máy chủ Debian 9 đã cũ của mình và vẫn nhận được lỗi hết hạn chứng chỉ tương tự. cập nhật-ca-chứng chỉ trang người đàn ông nói

Hơn nữa, tất cả các chứng chỉ có phần mở rộng .crt được tìm thấy bên dưới /usr/local/share/ca-certificates cũng được bao gồm dưới dạng hoàn toàn đáng tin cậy.

Tập lệnh mà anh ấy đã chia sẻ, kể từ hôm nay, hãy tải xuống chứng chỉ ISRG & Letâs Encrypt dưới dạng .pem tập tin, vì vậy cập nhật-ca-chứng chỉ không tự động bao gồm chúng. Sau khi tạo một liên kết mềm đến những .pem tập tin, nhưng với một .crt mở rộng, chạy cập nhật-ca-chứng chỉ một lần nữa thực sự bao gồm chúng và lỗi chứng chỉ hết hạn sẽ biến mất. Cảm ơn bạn vì câu trả lời!

John Greene avatar
lá cờ cn
Tôi luôn có một tập lệnh sao chép các tệp PEM vào thư mục cấu hình của daemon thay vì một liên kết tượng trưng.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.