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

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

Παθιασμένος με την τεχνολογία, γράφω με ευχαρίστηση StealthSettings.com από το 2006. Έχω μεγάλη εμπειρία σε λειτουργικά συστήματα: macOS, Windows και Linux, αλλά και σε γλώσσες προγραμματισμού και πλατφόρμες blogging (WordPress) και για ηλεκτρονικά καταστήματα (WooCommerce, Magento, PrestaShop).

πώς να » web Hosting » nginx cannot load certificate fullchain.pem – Certbot σταθερός
Αφήστε ένα σχόλιο