Το 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 Old Domains (ας κρυπτογραφείτε το πιστοποιητικό).

Όταν διαγράφετε τα πιστοποιητικά SSL για ενεργά πεδία, τα οποία εξακολουθούν να φιλοξενούνται στον διακομιστή, με παραγγελία: sudo certbot delete, το πιστοποιητικό διαγράφεται αυτόματα, αλλά παραμένει ενεργό σε συνεδρίες μέχρι την επανεκκίνηση της υπηρεσίας nginx. Στην εντολή Ningin -T (δοκιμή υπηρεσίας) μπορείτε να εκπλήξετε τη δοκιμή για να αποτύχετε με το παραπάνω σφάλμα. Αλλά η λύση είναι πολύ απλή.

Το Nginx δεν μπορεί να φορτώσει πιστοποιητικό
Το Nginx δεν μπορεί να φορτώσει πιστοποιητικό

Διορθώστε το nginx: [egerg] δεν μπορεί να φορτώσει το πιστοποιητικό fullchain.pem

Κατά την εγκατάσταση ενός πιστοποιητικού SSL Let’s Encrypt Με τη διαμάχη, στο αρχείο διαμόρφωσης του NGINX για τον τομέα, υπάρχουν ορισμένες γραμμές που υποδεικνύουν την ύπαρξη του πιστοποιητικού. Όταν το πιστοποιητικό διαγραφεί, οι γραμμές παραμένουν στο Ningin Config και πρέπει να διαγραφούν με το χέρι. Εννοώ τις παρακάτω γραμμές:

.....    

    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

Αφού διαγράψετε αυτές τις γραμμές από το αρχείο Confg Ninx του πεδίου για το οποίο έχετε εξαλείψει το πιστοποιητικό 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, αλλά και σε γλώσσες προγραμματισμού και πλατφόρμες blogging (WordPress) και για ηλεκτρονικά καταστήματα (WooCommerce, Magento, Presashop).

Home Η πηγή σας σε μαθήματα, χρήσιμες συμβουλές και νέα. Το nginx δεν μπορεί να φορτώσει το πιστοποιητικό fullchain.pem – Certbot fix
Αφήστε ένα σχόλιο