błąd nginx cannot load certificate path/fullchain.pem pojawia się, gdy testujemy usługę Nginx po usunięciu certyfikatu Let’s Encrypt wygenerowane z Certbot.
treść
Na serwerze błąd pojawia się jak:
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
Tło Eroare Nginx
W poprzednim artykule pokazałem, w jaki sposób możesz usunąć pola hostowane na serwerze, ale które nie są już aktywne w przeszłości. Usuń Certyfikaty Certbot Old Domeins (Let's Encrypt Certificate).
Po usunięciu certyfikatów SSL dla aktywnych pól, które są nadal hostowane na serwerze, według zamówienia: sudo certbot delete, certyfikat jest usuwany automatycznie, ale pozostaje aktywny w sesjach, dopóki usługa nie uruchomi się nginx. W poleceniu Ningin -t (testowanie serwisowe) możesz zaskoczyć test, aby nie powiodła się z powyższym błędem. Ale rozwiązanie jest bardzo proste.

Napraw nginx: [Emect] nie może załadować certyfikatu Fullchain.pem
Podczas instalowania certyfikatu SSL Let’s Encrypt Przez Querel, w pliku konfiguracyjnym Nginx dla domeny, istnieją pewne linie wskazujące istnienie certyfikatu. Po usunięciu certyfikatu linie pozostają w konfiguracji Ningin i muszą być usuwane ręcznie. Mam na myśli poniższe linie:
.....
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
Po usunięciu tych wierszy z pliku ConfG ninx pola, dla którego wyeliminowałeś certyfikat SSL, wykonaj zamówienie nginx -t Aby sprawdzić, czy wszystko jest w porządku.
[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]#
Teraz możesz bezpiecznie ponownie uruchomić usługę nginx.