nginx не може да зареди сертификат fullchain.pem – Certbot fix

Грешка nginx cannot load certificate path/fullchain.pem се появява, когато тестваме услугата NGINX след изтриване на сертификати Let’s Encrypt генерирани с Certbot.

В сървъра грешката изглежда така:

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

Фон eroare nginx

В предишна статия показах как можете да изтриете от Certbot домейните, които са били хоствани на сървъра в миналото, но които в момента вече не са активни. Изтриване на стари домейни certbot сертификати (нека криптира сертификат).

При изтриване на SSL сертификати за активни домейни, които все още се хостват на сървъра, чрез команда: sudo certbot delete, сертификатът се изтрива автоматично, но остава активен в сесиите, докато услугата се рестартира nginx. С командата nginx -t (тестване на услугата) може да се изненадате, че тестът е неуспешен с горната грешка. Решението обаче е много просто.

nginx не може да зареди сертификат
nginx не може да зареди сертификат

Коригирайте nginx: [emerg] не може да зареди сертификат fullchain.pem

Когато инсталирате SSL сертификат Let’s Encrypt чрез Certbot, в конфигурационния файл на nginx за домейна се добавят няколко реда, показващи съществуването на сертификата. Когато сертификатът бъде изтрит, редовете остават в конфигурацията на nginx и трябва да бъдат изтрити ръчно. Тоест редовете по-долу:

.....    

    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

След като изтриете тези редове от файла nginx confg на домейна, за който сте премахнали SSL сертификата, изпълнете командата nginx -t да проверя дали всичко е наред.

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

Сега можете спокойно да рестартирате услугата nginx.

Страстен за технологиите, пиша с удоволствие от stealthsetts.com, започвайки от 2006 г. Имам богат опит в операционните системи: macOS, Windows и Linux, но също така и в езици за програмиране и блогове (WordPress) и за онлайн магазини (WooCommerce, Magento, Presashop).

Начало Вашият източник на ИТ уроци, полезни съвети и новини. nginx не може да зареди сертификат fullchain.pem – Certbot fix
Оставете коментар