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.
Mục lục
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 restartkhu vực phục vụ 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.

Đã 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ể restartdịch vụ an toàn nginx.