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 ויש למחוק אותן באופן ידני. כלומר, השורות למטה:

.....    

    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

לאחר מחיקת שורות אלו מקובץ ה-nginx confg של הדומיין שעבורו הסרת את האישור 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, וגם בשפות תכנות ופלטפורמות בלוגינג (WordPress) ולסוחרת אלקטרונית (WooCommerce, Magento, PrestaShop).

איך » אירוח אתרים » nginx cannot load certificate fullchain.pem - Certbot לסדר
השאירו תגובה