nginx cannot load certificate fullchain.pem – Certbot Opraviť

chyba nginx cannot load certificate path/fullchain.pem sa objaví, keď testujeme službu NGINX po odstránení certifikátov Let’s Encrypt generované s Certbot.

Na serveri sa chyba zobrazí takto:

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

Chyba nginx na pozadí

V predchádzajúcom článku som ukázal, ako môžete odstrániť z Certbot domény, ktoré boli v minulosti hosťované na serveri, ale v súčasnosti už nie sú aktívne. Odstráňte staré domény Certbot certificates (Zašifrujeme certifikát).

Keď vymažete certifikáty SSL pre aktívne domény, ktoré sú stále hosťované na serveri, príkazom: sudo certbot delete, certifikát sa automaticky vymaže, ale zostane aktívny v reláciách až do reštartovania služby nginx. S príkazom nginx -t (testovanie služby) môžete byť prekvapení, že test zlyhá s vyššie uvedenou chybou. Riešenie je však veľmi jednoduché.

nginx cannot load certificate
nginx cannot load certificate

Opravený nginx: [emerg] nemôže načítať certifikát fullchain.pem

Pri inštalácii certifikátu SSL Let’s Encrypt podľa Certbot, v konfiguračnom súbore nginx pre doménu sa pridá niekoľko riadkov označujúcich existenciu certifikátu. Keď sa certifikát odstráni, riadky zostanú v konfigurácii nginx a musia sa odstrániť manuálne. Teda riadky nižšie:

.....    

    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 odstránení týchto riadkov zo súboru nginx confg domény, pre ktorú ste odstránili certifikát SSL, vykonajte príkaz nginx -t aby ste skontrolovali, či je všetko v poriadku.

[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]# 

Teraz môžete službu bezpečne reštartovať nginx.

Zanietený technológiou, s radosťou píšem na StealthSettings.com od roku 2006. Mám bohaté skúsenosti s operačnými systémami: macOS, Windows a Linux, ako aj s programovacími jazykmi a platformami pre blogovanie (WordPress) a pre online obchody (WooCommerce, Magento, PrestaShop).

Ako » web hosting » nginx cannot load certificate fullchain.pem – Certbot Opraviť
Pridať komentár