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, το πιστοποιητικό διαγράφεται αυτόματα, αλλά παραμένει ενεργό σε περιόδους σύνδεσης μέχρι restartπεριοχή εξυπηρέτησης nginx. Με την εντολή nginx -t (δοκιμάζοντας την υπηρεσία) μπορεί να εκπλαγείτε που η δοκιμή αποτυγχάνει με το παραπάνω σφάλμα. Ωστόσο, η λύση είναι πολύ απλή.

nginx cannot load certificate
nginx cannot load certificate

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

Όταν εγκαθιστάτε ένα πιστοποιητικό SSL Let’s Encrypt με Certbot, στο αρχείο ρυθμίσεων του nginx για τον τομέα, προστίθενται μερικές γραμμές που υποδεικνύουν την ύπαρξη του πιστοποιητικού. Όταν διαγραφεί το πιστοποιητικό, οι γραμμές παραμένουν στο nginx 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 nginx του τομέα για τον οποίο καταργήσατε το πιστοποιητικό 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]# 

Τώρα μπορείτε να restartη υπηρεσία είναι ασφαλής nginx.

πώς να » web Hosting » nginx cannot load certificate fullchain.pem – Certbot σταθερός

Παθιασμένος με την τεχνολογία, μου αρέσει να δοκιμάζω και να γράφω σεμινάρια για λειτουργικά συστήματα macOS, Linux, Windows, σχετικά με WordPress, WooCommerce και διαμόρφωση διακομιστών ιστού LEMP (Linux, NGINX, MySQL και PHP). γράφω επάνω StealthSettings.com από το 2006 και λίγα χρόνια αργότερα άρχισα να γράφω στο iHowTo.Tips σεμινάρια και ειδήσεις σχετικά με συσκευές στο οικοσύστημα Apple: iPhone, iPad, Apple Παρακολουθήστε, HomePod, iMac, MacBook, AirPods και αξεσουάρ.

Αφήστε ένα σχόλιο