feilen nginx cannot load certificate path/fullchain.pem vises når vi tester NGINX-tjenesten etter å ha slettet sertifikater Let’s Encrypt generert med Certbot.
På serveren ser feilen slik ut:
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
Innhold
Nginx-feil i bakgrunnen
I en tidligere artikkel viste jeg hvordan du kan slette fra Certbot domenene som var vert på serveren tidligere, men som for øyeblikket ikke lenger er aktive. Slett gamle domener Certbot certificates (La oss kryptere sertifikatet).
Når du sletter sertifikater SSL for aktive domener, som fortsatt er vert på serveren, ved kommando: sudo certbot delete
, slettes sertifikatet automatisk, men det forblir aktivt i økter til tjenesten startes på nytt nginx
. Med kommandoen nginx -t (testing av tjenesten) kan du bli overrasket over at testen mislykkes med feilen ovenfor. Løsningen er imidlertid veldig enkel.
Fikset nginx: [emerg] kan ikke laste sertifikatet fullchain.pem
Når du installerer et sertifikat SSL Let’s Encrypt av Certbot, i konfigurasjonsfilen til nginx for domenet, legges det til noen få linjer som indikerer eksistensen av sertifikatet. Når sertifikatet slettes, forblir linjene i nginx-konfigurasjonen og må slettes manuelt. Det vil si linjene nedenfor:
.....
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
Etter å ha slettet disse linjene fra nginx confg-filen til domenet du fjernet sertifikatet for SSL, utfør kommandoen nginx -t
for å sjekke om alt er ok.
[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]#
Nå kan du trygt starte tjenesten på nytt nginx.