Renewal letsencrypt plante Apache

WRInaute accro
Bonjour,

Ma config : Debian 9 - Apache 2.4.25

Mon serveur Apache s'est coupé cette nuit. J'ai enfin trouvé la cause de ce prob, je pense.
Cela provient de letsencrypt.
En regardant mes logs (acces) du site, je vois plus rien n'a été disponible pour les internautes à 00:13:21.
Code:
xx.xxx.xxx.xxx - - [12/Apr/2019:00:13:21 +0200] "GET /interface/infos?info=1 HTTP/2.0" 200 0 "https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxx" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 OPR/58.0"

En regardant mes logs "syslog":
Code:
Apr 12 00:00:01 vpsxxxxxxxx CRON[1273]: (root) CMD (test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew)

Le fichier "daemon.log"
Code:
Apr 12 00:13:25 vpsxxxxxx systemd[1]: Starting Certbot...
Apr 12 00:13:28 vpsxxxxxx systemd[1]: Stopping The Apache HTTP Server...
Apr 12 00:13:28 vpsxxxxxx systemd[1]: Stopped The Apache HTTP Server.
Apr 12 00:13:36 vpsxxxxxx systemd[1]: Starting The Apache HTTP Server...
Apr 12 00:13:36 vpsxxxxxx apachectl[1531]: httpd (pid 1398) already running
Apr 12 00:13:36 vpsxxxxxx systemd[1]: Started The Apache HTTP Server.
Apr 12 00:13:36 vpsxxxxxx systemd[1]: Started Certbot.
Apr 12 00:13:36 vpsxxxxxx systemd[1]: certbot.timer: Adding 56.640158s random time.
Apr 12 00:13:36 vpsxxxxxx systemd[1]: certbot.timer: Adding 34min 27.511392s random time.

Dans le log "certbot":
Code:
  File "/usr/lib/python2.7/dist-packages/certbot/plugins/selection.py", line 215, in set_configurator
    raise errors.PluginSelectionError(msg.format(repr(previously), repr(now)))
PluginSelectionError: Too many flags setting configurators/installers/authenticators 'standalone' -> 'apache'

J'en conclus que letsencrypt a essayé de renouveler mes domaines mais n'a pas réussi à relancer Apache. Les domaines concernés ont bien été renouvelé pour 3 mois cependant. C'est uniquement relancer le serveur Apache.
En regardant dans "etc/letsencrypt/renewal/" pour le domaine renouvelé, j'ai ceci:
Code:
# renew_before_expiry = 30 days
version = 0.10.2
archive_dir = /etc/letsencrypt/archive/www.mondomaine.fr
cert = /etc/letsencrypt/live/www.mondomaine.fr/cert.pem
privkey = /etc/letsencrypt/live/www.mondomaine.fr/privkey.pem
chain = /etc/letsencrypt/live/www.mondomaine.fr/chain.pem
fullchain = /etc/letsencrypt/live/www.mondomaine.fr/fullchain.pem

# Options used in the renewal process
[renewalparams]
authenticator = standalone
post_hook = systemctl start apache2
account = 4b2c0d4406987e7cc8687f44c77c9f48
pre_hook = systemctl stop apache2
installer = apache
Là, c'est clair... c'est la config de base de letsencrypt. Je n'ai jamais touché à la config de quoi que ce soit.
Si j'ajoute un nouveau domaine, letsencrypt va toujours me créer un fichier renewal avec les mêmes caractéristiques par défaut. Et j'aurai toujours le même prob !

Ici, on propose d'ajouter un fichier "cli.ini" pour personnaliser letsencrypt:
https://certbot.eff.org/docs/using.html#configuration-file

Mais je ne sais pas ce que je dois mettre là-dedans ??!! Genre "authenticator" ?

Pouvez-vous m'aider ?

Merci
 
Dernière édition:
WRInaute occasionnel
alors en général, quand on veut paumer quelqu'un on l'envoie vers le man en anglais
Aussi, les bouts de logs, on s'en balance, ca aide personnes a rien résoudre déjà parce qu'on a pas le temps d'aller comprendre les bugs des autres a 3 morceaux de copies d'écran.
Évidemment les logs ca sert, mais il faudrait un accès à la machine, pouvoir bricoler,..;
Néanmoins : a vue d'oiel, regarder ceci : https://www.memoinfo.fr/tutoriels-linux/configurer-lets-encrypt-apache/ genre c'est plus limpide, et comme on dit aux apprenants: le lire en entier
 
WRInaute accro
Aussi, les bouts de logs, on s'en balance, ca aide personnes a rien résoudre déjà parce qu'on a pas le temps d'aller comprendre les bugs des autres a 3 morceaux de copies d'écran.
Merci pour avoir pris le temps de me répondre mais bon, "...les bouts de logs, on s'en balance..." euh.... si tu avais pris la peine de lire ces bouts de code, tu aurais vu que je n'en suis plus là.
Ton lien est un tuto standard pour installer lets'encrypt ! J'en suis plus là depuis longtemps ?!
J'ai pris le temps de faire un post assez explicite sur les différents logs pour apporter des éléments de réponses sur des questions récurrentes : "Que dit ce log ou celui-là ?"
Là, mon prob c'est essentiellement de la config let's encrypt, je ne vois pas en quoi ton tuto d'installation va aider ?!
Là, je viens de lancer un coup de certbot-auto, il a fait une maj sur les dépendances.

C'est le répertoire : "etc/letsencrypt/renewal/" qui me pose prob avec le certbot.log.

Certbot.log
Code:
PluginSelectionError: Too many flags setting configurators/installers/authenticators 'standalone' -> 'apache'

"etc/letsencrypt/renewal/"
Code:
# Options used in the renewal process
[renewalparams]
authenticator = standalone
post_hook = systemctl start apache2
account = 4b2c0d4406987e7cc8687f44c77c9f48
pre_hook = systemctl stop apache2
installer = apache

Ici, il est question de créer un fichier de config "cli.ini" mais dois-je modifier aussi mon répertoire "etc/letsencrypt/renewal/" ou est-ce qu'au prochain renouvellement de certificats, il va prendre en compte mon "cli.ini" et faire les modifications sur "etc/letsencrypt/renewal/" ?
https://certbot.eff.org/docs/using.html#configuration-file

Bref... je galère là pfffff
 
WRInaute discret
Apr 12 00:13:36 vpsxxxxxx apachectl[1531]: httpd (pid 1398) already running

ça c'est bizarre, il faut peut-être redémarrer le serveur/vps si tu l'as pas fait depuis 1 an...


J'ai aussi un serveur sous Debian 9 avec Lets Encrypt et Nginx mais je pense qu'on a pas fait le même style d'installation car je ne connais pas le fichier le fichier .ini

Et aussi je crois qu'il y a pas besoin de restart nginx ni httpd à chaque renouvellement.
 
Dernière édition:
WRInaute occasionnel
comme dis, lis le tuto en entier, il a le renouvellement. Mais fais comme tu preferes (je travaille avec centos et pas sur des vps, désolé, on va dire que c'est différent- bricole si tu préfères )
 
WRInaute accro
oui @mickou51 je suis sur apache et ça à l'air d'être galère avec lui !
Maintenant c'est trop tard, mais quand j'ai créé les certifs, je l'ai fait en "standalone" apache. J'aurai du le faire en webroot. Là, je ne vais pas déglinguer ce qui est en place.
Le prob de standalone apache, c'est qu'il a besoin de stopper apache pour faire une création de certif à contrario de webroot. C'est la raison pour laquelle il utile les "pre-hook" en stoppant puis redémarrer apache.

En essayant de simuler un renouvellement de certif ou une création : "certbot renew --dry-run" ou "certbot certonly --dry-run", la console fait correctement son taff.
Code:
root@vpsxxxxxxx:~# certbot renew --dry-run
Saving debug log to /var/log/letsencrypt/letsencrypt.log

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/www.xxxxxxxxxxx.com.conf
-------------------------------------------------------------------------------
Cert not due for renewal, but simulating renewal for dry run
Running pre-hook command: systemctl stop apache2
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for www.xxxxxxxxxxx.com
Waiting for verification...
Cleaning up challenges
Generating key (2048 bits): /etc/letsencrypt/keys/0028_key-certbot.pem
Creating CSR: /etc/letsencrypt/csr/0028_csr-certbot.pem


** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates below have not been saved.)

Congratulations, all renewals succeeded. The following certs have been renewed:
  /etc/letsencrypt/live/www.xxxxxxxxxxx.com/fullchain.pem (success)
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates above have not been saved.)
Running post-hook command: systemctl start apache2
Je n'ai aucune erreur...
 
WRInaute accro
B'jour !
Bon, après mûres réflexions, si ça peut aider d'autres, lets's encrypt et apache en standalone, ça merde trop souvent.
Donc oui effectivement, j'ai suivi vos conseils. Et merci d'ailleurs ;)
Si comme moi, vous aviez créer des certifs en standalone apache et et que les renouvellements font planter apache, une solution rapide efficace et propre.
1- Il faut "revoker" le ou les certifs actuelles :
https://certbot.eff.org/docs/using.html#revoking-certificates
Code:
certbot revoke --cert-path /etc/letsencrypt/live/mon-domaine.fr/cert.pem
2- Il faut nettoyer proprement l'ensemble des répertoires letsencrypt faisant appel au domaine concerné:
Code:
certbot delete --cert-name mon-domaine.fr
3- Passer en "webroot". Avantage, pas de redémarrage apache:
https://certbot.eff.org/docs/using.html#webroot
Code:
certbot certonly --webroot -w /var/www/html/mon-domaine.fr/public -d mon-domaine.fr --email xxxxxxxx@email.com
Ne pas oublier de redémarrer apache car j'ai créé une nouvelle certif pour mon domaine et son mode de création.
ça m'a demandé 3 mn pour résoudre mon prob !
ça va peut-être aider d'autres personnes ;)
 
Discussions similaires
Haut