nginx cannot load certificate fullchain.pem – Certbot fast

felet nginx cannot load certificate path/fullchain.pem visas när vi testar NGINX-tjänsten efter att ha tagit bort certifikat Let’s Encrypt genereras med Certbot.

På servern ser felet ut så här:

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

Bakgrunds nginx-fel

I en tidigare artikel visade jag hur du kan ta bort från Certbot de domäner som tidigare fanns på servern men som för närvarande inte längre är aktiva. Ta bort gamla domäner Certbot certificates (Låt oss kryptera certifikat).

När du tar bort certifikat SSL för aktiva domäner, som fortfarande finns på servern, genom kommando: sudo certbot delete, certifikatet raderas automatiskt, men det förblir aktivt i sessioner tills restartserviceområde nginx. Med kommandot nginx -t (testa tjänsten) kan du bli förvånad över att testet misslyckas med ovanstående fel. Lösningen är dock väldigt enkel.

nginx cannot load certificate
nginx cannot load certificate

Fast nginx: [emerg] kan inte ladda certifikatet fullchain.pem

När du installerar ett certifikat SSL Let’s Encrypt av Certbot, i konfigurationsfilen för nginx för domänen, läggs några rader till som indikerar att certifikatet finns. När certifikatet raderas förblir raderna i nginx-konfigurationen och måste tas bort manuellt. Det vill säga raderna nedan:

.....    

    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

Efter att ha tagit bort dessa rader från nginx confg-filen för domänen som du tog bort certifikatet för SSL, kör kommandot nginx -t för att kolla om allt är ok.

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

Nu kan du restarttjänsten är säker nginx.

Stealth: Passionerad om teknik, jag gillar att testa och skriva handledning om operativsystem macOS, Linux, Windows, handla om WordPress, WooCommerce och konfigurera LEMP webbservrar (Linux, NGINX, MySQL och PHP). jag skriver vidare StealthSettings.com sedan 2006, och några år senare började jag skriva på iHowTo.Tips handledning och nyheter om enheter i ekosystemet Apple: iPhone, iPad, Apple Klocka, HomePod, iMac, MacBook, AirPods och tillbehör.
Ny i