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 chúng tôi xóa được chứng nhận Let’s Encrypt tạo ra với Certbot.
nội dung
Trong máy chủ, lỗi xuất hiện như:
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
Nền Eroare nginx
Trong một bài viết trước, tôi đã chỉ ra cách bạn có thể xóa các trường đã được lưu trữ trong máy chủ nhưng không còn hoạt động trong quá khứ. Xóa chứng chỉ Certbot miền cũ (Let Let Encrypt chứng chỉ).
Khi bạn xóa chứng chỉ SSL cho các trường hoạt động, vẫn được lưu trữ trên máy chủ, theo thứ tự: sudo certbot delete, chứng chỉ được xóa tự động, nhưng nó vẫn hoạt động trong các phiên cho đến khi dịch vụ khởi động lại nginx. Tại lệnh ningin -t (kiểm tra dịch vụ), bạn có thể gây ngạc nhiên khi kiểm tra thất bại với lỗi trên. Nhưng giải pháp rất đơn giản.

Khắc phục Nginx: [nổi lên] Không thể tải chứng chỉ fullchain.pem
Khi cài đặt chứng chỉ SSL Let’s Encrypt Bằng cách cãi nhau, trong tệp cấu hình của Nginx cho miền, có một số dòng cho thấy 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 Ningin và phải được xóa bằng tay. Ý tôi 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 các dòng này khỏi tệp confg ninx của trường mà bạn đã loại bỏ chứng chỉ SSL, hãy thực hiện thứ tự 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.