Pogreška nginx cannot load certificate path/fullchain.pem pojavljuje se kada testiramo uslugu NGINX nakon brisanja certifikata Let’s Encrypt generiran sa Certbot.
Na poslužitelju se pogreška pojavljuje ovako:
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
Kuprini
Pozadinska nginx pogreška
U prethodnom sam članku pokazao kako možete izbrisati iz Certbot domene koje su u prošlosti bile hostirane na poslužitelju, ali koje trenutno više nisu aktivne. Izbrišite stare domene Certbot certificates (Let's Encrypt Certificate).
Kada izbrišete certifikate SSL za aktivne domene, koje se još nalaze na poslužitelju, naredbom: sudo certbot delete
, certifikat se automatski briše, ali ostaje aktivan u sesijama dok se usluga ponovno ne pokrene nginx
. S naredbom nginx -t (testiranje usluge) možete se iznenaditi da test ne uspije s gornjom pogreškom. Međutim, rješenje je vrlo jednostavno.
Popravljen nginx: [emerg] ne može učitati certifikat fullchain.pem
Kada instalirate certifikat SSL Let’s Encrypt od Certbot, u konfiguracijskoj datoteci nginxa za domenu dodano je nekoliko redaka koji označavaju postojanje certifikata. Kada se certifikat izbriše, linije ostaju u nginx konfiguraciji i moraju se ručno izbrisati. Odnosno, donji redovi:
.....
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
Nakon brisanja ovih redaka iz nginx confg datoteke domene za koju ste uklonili certifikat SSL, izvršite naredbu nginx -t
da provjerim je li sve u redu.
[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]#
Sada možete sigurno ponovno pokrenuti uslugu nginx.