nginx cannot load certificate fullchain.pem – Certbot Opravit

chyba nginx cannot load certificate path/fullchain.pem se objeví, když testujeme službu NGINX po smazání certifikátů Let’s Encrypt generované s Certbot.

Na serveru se 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 předchozím článku jsem ukázal, jak můžete odstranit z Certbot domény, které byly v minulosti hostovány na serveru, ale v současnosti již nejsou aktivní. Smazat staré domény Certbot certificates (Zašifrujeme certifikát).

Když smažete certifikáty SSL pro aktivní domény, které jsou stále hostovány na serveru, příkazem: sudo certbot delete, certifikát se automaticky odstraní, ale zůstane aktivní v relacích, dokud nebude služba restartována nginx. S příkazem nginx -t (testování služby) můžete být překvapeni, že test selže s výše uvedenou chybou. Řešení je však velmi jednoduché.

nginx cannot load certificate
nginx cannot load certificate

Opravený nginx: [emerg] nelze načíst certifikát fullchain.pem

Při instalaci certifikátu SSL Let’s Encrypt podle Certbot, v konfiguračním souboru nginx pro doménu je přidáno několik řádků indikujících existenci certifikátu. Když je certifikát odstraněn, řádky zůstanou v konfiguraci nginx a musí být odstraněny ručně. Tedy řádky níže:

.....    

    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 odstranění těchto řádků ze souboru nginx confg domény, pro kterou jste odstranili certifikát SSL, proveďte příkaz nginx -t pro kontrolu, zda je vše v pořádku.

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

Nyní můžete službu bezpečně restartovat nginx.

Věnovaný technologiím, s radostí píši na StealthSettings.com od roku 2006. Mám bohaté zkušenosti s operačními systémy: macOS, Windows a Linux, stejně jako s programovacími jazyky a platformami pro blogování (WordPress) a pro online obchody (WooCommerce, Magento, PrestaShop).

jak na to » Webhosting » nginx cannot load certificate fullchain.pem – Certbot Opravit
Zanechat komentář