Renouvellement des certificats LetsEncrypt et message d’erreur.

Arrive le moment du renouvellement de mes certificats Let’s Encrypt. Oui, je sais, il suffit de le faire de façon automatique par une tâche cron… Mais cela n’aurait pas empêché les messages d’erreurs.

Il faut dire que j’avais un peu « bricolé » mon serveur ses derniers temps et activé de nouveaux sites et autres bricoles.

Bref, je lance le renouvellement des certificats par:

# /opt/letsencrypt/letsencrypt-auto renew

Et là j’ai le message d’erreur suivant:

(...)
Attempting to renew cert (chispa.fr/) from /etc/letsencrypt/renewal/chispa.fr.conf produced an unexpected error: Unable to find a virtual host listening on port 80 which is currently needed for Certbot to prove to the CA that you control your domain. Please add a virtual host for port 80.. Skipping.
All renewal attempts failed. The following certs could not be renewed:
  /etc/letsencrypt/livechispa.fr/fullchain.pem (failure)
(...)

Et plus d’accès en https
Suite à cela, je vous fais grâce de toutes mes tentatives de réparation plus laborieuses les unes que les autres multipliant les messages d’erreur.

Il y a un moment où il faut savoir se lever de sa chaise, prendre un thé…

Il y a un moment où il faut savoir se lever de sa chaise, prendre un thé avec des biscuits pour prendre du recul et appréhender le problème la tête reposée.

Je décide donc de faire le ménage, sur le serveur, la maison ça attendra.

Je désactive tous les sites dans /etc/apache2/sites-enabled/ avec la commande a2dissite

# a2dissite nom-du-site.fr

Je refais le site 000-default.conf dans /etc/apache2/sites-available/

# nano /etc/apache2/sites-available/000-default.conf

Configuration au plus simple :

<VirtualHost *:80>
# Redirect permanent / https://sima78.chispa.fr/
        ServerName chispa.fr/
        ServerAdmin mon-mail@truc.fr
        DocumentRoot /var/www/
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Redémarrage d’Apaches2

# systemctl restart apache2

Je recrée des certificats tout neufs

# /opt/letsencrypt/letsencrypt-auto --apache --renew-by-default -d monsite.fr

Au message :

1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.

J’ai choisi l’option 2

Tout c’est bien passé, pas de message d’erreur.

Reste à modifier le fichier de configuration Stunnel, car j’ai Geneweb qui tourne en service en passant par Stunnel pour un accès en https à Geneweb.

# nano /etc/stunnel/stunnel.conf

Je modifie les lignes pour mettre le chemin des nouveaux certificats

cert=/etc/letsencrypt/livechispa.fr/-0002/fullchain.pem
key=/etc/letsencrypt/livechispa.fr/-0002/privkey.pem

Un « reboot » et tout fonctionne de nouveau jusqu’à la prochaine aventure.
Pour info, la configuration réécrite de 000-default.conf lors de la création des nouveaux certificats :

<VirtualHost *:80>
# Redirect permanent / https://sima78.chispa.fr/
        ServerName chispa.fr/
        ServerAdmin chispa.admin@free.fr
        DocumentRoot /var/www/
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =chispa.fr/
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noete

Pour automatiser le renouvellement de certificats, je vous invite à lire l’excellent billet de Tutox « Renouveler automatiquement son certif Let’s Encrypt (one shot)«