nginx cannot load certificate fullchain.pem – Certbot Fix

błąd nginx cannot load certificate path/fullchain.pem pojawia się, gdy testujemy usługę NGINX po usunięciu certyfikatów Let’s Encrypt generowane z Certbot.

Na serwerze błąd wygląda tak:

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

Błąd nginx w tle

W poprzednim artykule pokazałem, jak można usunąć z Certbot domeny, które były hostowane na serwerze w przeszłości, ale które obecnie nie są już aktywne. Usuń stare domeny Certbot certificates (Zaszyfrujmy certyfikat).

Podczas usuwania certyfikatów SSL dla domen aktywnych, które nadal są hostowane na serwerze, poleceniem: sudo certbot delete, certyfikat jest usuwany automatycznie, ale pozostaje aktywny w sesjach do czasu ponownego uruchomienia usługi nginx. Za pomocą polecenia nginx -t (testowanie usługi) możesz być zaskoczony, że test kończy się niepowodzeniem z powyższym błędem. Jednak rozwiązanie jest bardzo proste.

nginx cannot load certificate
nginx cannot load certificate

Naprawiono nginx: [emerg] nie może załadować certyfikatu fullchain.pem

Podczas instalowania certyfikatu SSL Let’s Encrypt przez Certbot, w pliku konfiguracyjnym nginx dla domeny dodano kilka linii wskazujących na istnienie certyfikatu. Po usunięciu certyfikatu wiersze pozostają w konfiguracji nginx i należy je usunąć ręcznie. To znaczy poniższe linie:

.....    

    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 usunięciu tych linii z pliku konfiguracyjnego nginx domeny, dla której usunąłeś certyfikat SSL, wykonaj polecenie nginx -t aby sprawdzić, czy wszystko jest w porzą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]# 

Teraz możesz bezpiecznie ponownie uruchomić usługę nginx.

Pasjonat technologii, z przyjemnością piszę dalej StealthSettings.com od 2006 roku. Mam duże doświadczenie w systemach operacyjnych: macOS, Windows şi Linux, ale także w językach programowania i platformach blogowych (WordPress) oraz dla sklepów internetowych (WooCommerce, Magento, PrestaShop).

jak » web Hosting » nginx cannot load certificate fullchain.pem – Certbot Fix
Zostaw komentarz