Kļūda nginx cannot load certificate path/fullchain.pem parādās, kad mēs pārbaudām NGINX pakalpojumu pēc sertifikātu dzēšanas Let’s Encrypt ģenerēts ar Certbot.
Serverī kļūda parādās šādi:
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
Saturu
Fona nginx kļūda
Iepriekšējā rakstā es parādīju, kā jūs varat izdzēst no Certbot domēni, kas agrāk tika mitināti serverī, bet pašlaik vairs nav aktīvi. Dzēst vecos domēnus Certbot certificates (Šifrēsim sertifikātu).
Dzēšot sertifikātus SSL aktīvajiem domēniem, kas joprojām tiek mitināti serverī, ar komandu: sudo certbot delete
, sertifikāts tiek dzēsts automātiski, taču tas paliek aktīvs sesijās, līdz pakalpojums tiek restartēts nginx
. Izmantojot komandu nginx -t (pārbaudot pakalpojumu), jūs varat būt pārsteigts, ka pārbaude neizdodas ar iepriekš minēto kļūdu. Tomēr risinājums ir ļoti vienkāršs.
Izlabots nginx: [emerg] nevar ielādēt sertifikātu fullchain.pem
Kad instalējat sertifikātu SSL Let’s Encrypt līdz Certbot, domēna nginx konfigurācijas failā ir pievienotas dažas rindiņas, kas norāda uz sertifikāta esamību. Kad sertifikāts tiek dzēsts, rindas paliek nginx konfigurācijā, un tās ir jādzēš manuāli. Tas ir, rindas zemāk:
.....
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ēc šo rindiņu dzēšanas no tā domēna nginx confg faila, kuram noņēmāt sertifikātu SSL, izpildiet komandu nginx -t
lai pārbaudītu, vai viss ir kārtībā.
[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]#
Tagad varat droši restartēt pakalpojumu nginx.