Nginx ne more naložiti potrdila FullChain.pem – Certbot Fix

napaka nginx cannot load certificate path/fullchain.pem se pojavi, ko testiramo storitev NGINX po brisanju potrdil Let’s Encrypt ustvarjeno z Certbot.

V strežniku se napaka pojavi takole:

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

Ozadje eroare nginx

V prejšnjem članku sem pokazal, kako lahko iz Certbota izbrišete domene, ki so bile v preteklosti gostovane na strežniku, a trenutno niso več aktivne. Izbriši certifikate o starih domenah (spričevali za šifriranje).

Pri brisanju SSL certifikatov za aktivne domene, ki še gostujejo na strežniku, z ukazom: sudo certbot delete, se potrdilo samodejno izbriše, vendar ostane aktivno v sejah do ponovnega zagona storitve nginx. Z ukazom nginx -t (testiranje storitve) boste morda presenečeni, da test ne uspe z zgornjo napako. Vendar je rešitev zelo preprosta.

nginx ne more naložiti potrdila
nginx ne more naložiti potrdila

Popravek nginx: [emerg] ne more naložiti potrdila fullchain.pem

Ko namestite potrdilo SSL Let’s Encrypt prek Certbota je v konfiguracijski datoteki nginx za domeno dodanih nekaj vrstic, ki označujejo obstoj potrdila. Ko je potrdilo izbrisano, ostanejo vrstice v konfiguraciji nginx in jih je treba izbrisati ročno. To so naslednje vrstice:

.....    

    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 brisanju teh vrstic iz datoteke nginx confg domene, za katero ste odstranili potrdilo SSL, zaženite ukaz nginx -t da preverim če je vse 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]# 

Zdaj lahko varno znova zaženete storitev nginx.

Strastno do tehnologije, pišem z užitkom na StealthSetts.com, ki se začne z letom 2006. Imam bogato izkušnjo v operacijskih sistemih: MacOS, Windows in Linux, pa tudi v programskih jezikih in platformah za bloganje (WordPress) in za spletne trgovine (WooCommerce, Magento, Presishop).

Home Vaš vir IT vaj, koristni nasveti in novice. Nginx ne more naložiti potrdila FullChain.pem – Certbot Fix
Pustite komentar