Viga nginx cannot load certificate path/fullchain.pem kuvatakse, kui testime teenust NGINX pärast sertifikaatide kustutamist Let’s Encrypt koos loodud Certbot.
Serveris kuvatakse viga järgmiselt:
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
Kupriinid
Taustal nginxi viga
Eelmises artiklis näitasin, kuidas saate kustutada Certbot domeenid, mida serveris varem majutati, kuid mis pole praegu enam aktiivsed. Kustutage vanad domeenid Certbot certificates (Krüpteerime sertifikaadi).
Kui kustutate sertifikaadid SSL aktiivsete domeenide jaoks, mis on endiselt serveris hostitud, käsuga: sudo certbot delete
, kustutatakse sertifikaat automaatselt, kuid see jääb seansside ajal aktiivseks kuni teenuse taaskäivitamiseni nginx
. Käsuga nginx -t (teenuse testimine) võite olla üllatunud, et test ebaõnnestub ülaltoodud vea tõttu. Lahendus on aga väga lihtne.
Parandatud nginx: [emerg] ei saa laadida sertifikaati fullchain.pem
Kui installite sertifikaadi SSL Let’s Encrypt poolt Certbot, domeeni nginxi konfiguratsioonifaili on lisatud paar rida, mis näitavad sertifikaadi olemasolu. Sertifikaadi kustutamisel jäävad read nginxi konfiguratsiooni ja need tuleb käsitsi kustutada. See tähendab, et järgmised read:
.....
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
Pärast nende ridade kustutamist selle domeeni nginxi konfiguratsioonifailist, mille sertifikaadi eemaldasite SSL, täitke käsk nginx -t
et kontrollida, kas kõik on korras.
[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üüd saate teenuse turvaliselt taaskäivitada nginx.