nginx cannot load certificate fullchain.pem – Certbot Фиксирайте

Грешка 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

Фонова грешка на nginx

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

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

nginx cannot load certificate
nginx cannot load certificate

Коригиран 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.

Като пасиониран по технологии, пиша с удоволствие в StealthSettings.com от 2006 г. Имам обширен опит с операционни системи: macOS, Windows и Linux, както и с програмни езици и платформи за блогове (WordPress) и онлайн магазини (WooCommerce, Magento, PrestaShop).

How to » Web Hosting » nginx cannot load certificate fullchain.pem – Certbot Фиксирайте
Оставете коментар