nginx cannot load certificate fullchain.pem – Certbot Sửa chữa

các lỗi nginx cannot load certificate path/fullchain.pem xuất hiện khi chúng tôi kiểm tra dịch vụ NGINX sau khi xóa chứng chỉ Let’s Encrypt tạo ra với Certbot.

Trong máy chủ, lỗi xuất hiện như thế này:

nginx: [emerg] cannot load certificate "/etc/letsencrypt/live/example.com/fullchain.pem": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/letsencrypt/live/example.com/fullchain.pem','r') error:2006D080:BIO routines:BIO_new_file:no such file)
nginx: configuration file /etc/nginx/nginx.conf test failed

lỗi nền nginx

Trong một bài viết trước tôi đã chỉ ra cách bạn có thể xóa khỏi Certbot các miền đã được lưu trữ trên máy chủ trước đây nhưng hiện không còn hoạt động. Xóa các miền cũ Certbot certificates (Hãy mã hóa chứng chỉ).

Khi bạn xóa chứng chỉ SSL đối với các miền đang hoạt động vẫn được lưu trữ trên máy chủ, bằng lệnh: sudo certbot delete, chứng chỉ sẽ tự động bị xóa nhưng nó vẫn hoạt động trong các phiên cho đến khi dịch vụ được khởi động lại nginx. Với lệnh nginx -t (kiểm tra dịch vụ), bạn có thể ngạc nhiên rằng quá trình kiểm tra thất bại với lỗi trên. Tuy nhiên, giải pháp rất đơn giản.

nginx cannot load certificate
nginx cannot load certificate

Đã sửa lỗi nginx: [emerg] không thể tải chứng chỉ fullchain.pem

Khi bạn cài đặt chứng chỉ SSL Let’s Encrypt qua Certbot, trong tệp cấu hình của nginx cho tên miền, một vài dòng được thêm vào cho biết sự tồn tại của chứng chỉ. Khi chứng chỉ bị xóa, các dòng vẫn còn trong cấu hình nginx và phải được xóa thủ công. Đó là, các dòng dưới đây:

.....    

    listen 443 ssl http2; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}
server {
    if ($host = www.example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = example.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    server_name example.com www.example.com;
    listen 80;
    return 404; # managed by Certbot

Sau khi xóa những dòng này khỏi tệp nginx confg của miền mà bạn đã xóa chứng chỉ SSL, thực hiện lệnh nginx -t để kiểm tra xem mọi thứ có ổn không.

[root@server]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@server]# 

Bây giờ bạn có thể khởi động lại dịch vụ một cách an toàn nginx.

Là người yêu công nghệ, tôi rất vui được viết tại StealthSettings.com từ năm 2006. Tôi có kinh nghiệm đa dạng với các hệ điều hành: macOS, Windows và Linux, cũng như trong các ngôn ngữ lập trình và nền tảng blogging (WordPress) và cửa hàng trực tuyến (WooCommerce, Magento, PrestaShop).

Làm thế nào để » Web Hosting » nginx cannot load certificate fullchain.pem – Certbot Sửa chữa
Để lại một bình luận