Admin/Dev

30
Sept.
2021

Réparer les erreurs SSL sur les services utilisant les certificats Let's Encrypt

Publié par sky

Pour commencer, je voudrais rendre à César, ce qui appartient à César, tout le crédit de cet article revient à Frank, qui a trouvé la solution.

Aujourd'hui, vos services utilisant des certificats issus de Let's Encrypt ont peut être eu quelques dysfonctionnements. Pour ma part, c'est Gitea qui refusait les connexions SSL depuis l'outil Git ainsi que Fork qui utilise Git. Mais bizarrement, la version web de Gitea ne semblait pas affectée, et fonctionnait parfaitement bien.

D'ailleurs, tous les sites utilisant des certificats Let's Encrypt ont tous continuer à fonctionner correctement. Pourquoi ?

Tout simplement, parce que les navigateurs se sont contentés de vérifier le certificat de plus haut niveau uniquement, alors que les outils en ligne de commande tels que Curl ou des applications plus complexes comme Gitea vérifiait l'intégralité de la chaine de certification. D'ailleurs, Git le marquait bien

fatal: unable to access 'https://votre-url': SSL certificate problem: Certificate chain had an expired certificate

Que s'est il passé ? Let's encrypt avait annoncé, il y a pratiquement 2 ans, que le certificat racine qu'ils utilisaient arrivait à expiration ce 30 septembre 2021. Une transition a été amorcée depuis un certain temps afin de remplacer ce certificat. Techniquement, cela aurait du être transparent, c'est d'ailleurs le cas sur les navigateurs. Malheureusement, pour les outils en ligne de commande, cela ne l'est pas.

 

Comment résoudre le problème ?

Sur internet, et concernant Git, vous trouverez une solution qui n'est au final, pas une vraie solution, désactiver le contrôle du SSL sur le client

git config --global https.sslVerify false

Evidemment, cela fonctionne, mais d'un point de vue sécurité, c'est complètement à revoir. Cependant, cela peut être une solution temporaire, tant que le serveur n'est pas mis à jour. Il faut juste, ne pas oublier de réactiver les vérifications une fois que c'est fait

git config --global https.sslVerify true

Si vous être maître du serveur, voici la solution pour retrouver l'ensemble de ses services.

En root, allez dans le dossier Let's Encrypt

cd /etc/letsencrypt/live/

puis dans le dossier du service concerné, pour moi c'est Gitea

cd gitea.mondomaine.fr

Puis éditer le fichier fullchain.pem avec votre éditeur favori

Vous devriez voir 3 chaines de certificat. La première correspond à celle du certificat du service. La seconde correspond au certificat X3 de Let's encrypt. Et enfin la dernière correspond au certificat du serveur racine qui a expiré.

En ayant fait une sauvegarde du bloc ou du fichier, supprimez ce 3ème bloc, et enregistrer.

Enfin, redémarrer votre service. Tout devrait être rentré dans l'ordre.

Vous devrez éventuellement répliquer la modification sur les autres certificats, utilisés par d'autres services.

 
 
Commentaires
Commentaire de Maxence DEVOGHELAERE le 5 Octobre 2021 à 11:37

Salut Sky, merci beaucoup pour cet article qui m'a été très utile ! J'ai pu réaliser ta manipulation sur mon serveur qui a corrigé le problème sur la moitié de mon parc. Toutefois, sur les machines plus anciennes (panel PC notamment), cela ne fonctionne toujours pas. Aurais-tu une idée ? Merci

 
Commentaire de sky le 6 Octobre 2021 à 08:54

Salut Maxence.
Ravi que l'article ait pu t'aider !
Concernant les machines qui ont toujours des soucis, as tu des logs des erreurs ? Es tu sur qu'elles utilisent bien le même certificat ? et qu'elles n'ont pas de cache la dessus ?

 

 

Poster un commentaire
En postant sur skymac.org, je m'engage à être courtois et à ce que mon message soit pertinent avec le sujet de l'article.
En outre, j'accepte, sans condition, que mon message soit refusé et supprimé si ces règles ne sont pas appliquées.
Ouvrir le panneau de gestion des cookies
Fermer le panneau
Ce site utilise des cookies pour assurer son bon fonctionnement. Il utilise aussi des cookies issues de services tiers permettant de proposer des fonctionnalités avancées. À tout moment, vous pouvez choisir quels services vous souhaitez activer ou refuser, afin de retirer votre consentement quant à l'utilisation des cookies.
 
Personnalisation des services
Vous êtes libre de choisir quels services vous souhaitez activer. En autorisant ces services tiers, vous acceptez le dépôt et la lecture de cookies et l'utilisation de technologies de suivi nécessaires à leur bon fonctionnement. En retirant votre consentement pour certains de ces services, certaines fonctionnalités du site peuvent ne plus fonctionner.
Navigation du site  En savoir plus
Le site écrit un cookie de session permettant son bon fonctionnement et aidant à la navigation. Il ne peut être désactivé.
Utilisation : 1 cookie, enregistre l'identifiant de la session.
Durée de vie : Le cookie est présent pendant toute la session sur le site. Il devient obsolète après 24 minutes d'inactivité.
Obligatoire
Popup Média
Afficher des vidéos depuis Yoube ou Dailymotion.
 
Tout accepter Tout refuser Gérer