nginx cannot load certificate chaîne complète.pem – Certbot Fixer

Erreur nginx cannot load certificate path/fullchain.pem apparaît lorsque nous testons le service NGINX après la suppression des certificats Let’s Encrypt généré avec Certbot.

Dans le serveur, l'erreur apparaît comme ceci :

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

Erreur nginx en arrière-plan

Dans un article précédent, j'ai montré comment vous pouvez supprimer de Certbot les domaines qui étaient hébergés sur le serveur dans le passé mais qui ne sont plus actifs actuellement. Supprimer les anciens domaines Certbot certificates (Chiffrons le certificat).

Lorsque vous supprimez des certificats SSL pour les domaines actifs, qui sont toujours hébergés sur le serveur, par commande : sudo certbot delete, le certificat est supprimé automatiquement, mais il reste actif dans les sessions jusqu'au redémarrage du service nginx. Avec la commande nginx -t (test du service), vous pourriez être surpris que le test échoue avec l'erreur ci-dessus. Cependant, la solution est très simple.

nginx cannot load certificate
nginx cannot load certificate

Correction de nginx : [emerg] ne peut pas charger le certificat fullchain.pem

Lorsque vous installez un certificat SSL Let’s Encrypt par Certbot, dans le fichier de configuration de nginx pour le domaine, quelques lignes sont ajoutées indiquant l'existence du certificat. Lorsque le certificat est supprimé, les lignes restent dans la configuration nginx et doivent être supprimées manuellement. C'est-à-dire les lignes ci-dessous :

.....    

    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

Après avoir supprimé ces lignes du fichier de configuration nginx du domaine pour lequel vous avez supprimé le certificat SSL, exécutez la commande nginx -t pour vérifier si tout est 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]# 

Vous pouvez maintenant redémarrer le service en toute sécurité nginx.

Passionné par la technologie, j'écris avec plaisir sur StealthSettings.com depuis 2006. J'ai une expérience approfondie dans les systèmes d'exploitation : macOS, Windows et Linux, ainsi que dans les langages de programmation et les plates-formes de blogging (WordPress) et pour les boutiques en ligne (WooCommerce, Magento, PrestaShop).

Comment » Web Hosting » nginx cannot load certificate chaîne complète.pem – Certbot Fixer
Laisser un commentaire