[Résolu] HTTPS letsencrypt.service

Bonjour,
je n’arrive pas à mettre en place le https, voici le résultat de la commande systemctl status letsencrypt.service

letsencrypt.service - letsencrypt cert update oneshot
Loaded: loaded (/etc/systemd/system/letsencrypt.service; static)
Active: failed (Result: exit-code) since Wed 2019-01-09 23:26:45 UTC; 10min ago
Process: 1679 ExecStart=/usr/bin/docker run --rm --name letsencrypt -v /apps/fabmanager/log:/var/log/letsencrypt -v /apps/fabmanager/letsencrypt/etc:/etc/letsencrypt -v /apps/fabmanager/letsencrypt/config:/letsencrypt-config Quay -c /letsencrypt-config/webroot.ini certonly (code=exited, status=1/FAILURE)
Main PID: 1679 (code=exited, status=1/FAILURE)

Jan 09 23:26:43 srvxylolabfab docker[1679]: Use of --agree-dev-preview is deprecated.
Jan 09 23:26:43 srvxylolabfab docker[1679]: Saving debug log to /var/log/letsencrypt/letsencrypt.log
Jan 09 23:26:43 srvxylolabfab docker[1679]: Plugins selected: Authenticator webroot, Installer None
Jan 09 23:26:43 srvxylolabfab docker[1679]: Obtaining a new certificate
Jan 09 23:26:45 srvxylolabfab docker[1679]: An unexpected error occurred:
Jan 09 23:26:45 srvxylolabfab docker[1679]: The request message was malformed :: Error creating new authz :: Invalid character in DNS name
Jan 09 23:26:45 srvxylolabfab docker[1679]: Please see the logfiles in /var/log/letsencrypt for more details.
Jan 09 23:26:45 srvxylolabfab systemd[1]: letsencrypt.service: main process exited, code=exited, status=1/FAILURE
Jan 09 23:26:45 srvxylolabfab systemd[1]: Failed to start letsencrypt cert update oneshot.
Jan 09 23:26:45 srvxylolabfab systemd[1]: Unit letsencrypt.service entered failed state.

et voici le fichier webroot.ini :

slight_smile:rsa-key-size = 4096
server = https://acme-v01.api.letsencrypt.org/directory
email = contact@xylolab.fr
text = True
agree-tos = True
agree-dev-preview = True
renew-by-default = True
authenticator = webroot
domains = reservation.xylolab.fr, ANOTHER_DOMAIN_1, ANOTHER_DOMAIN_2
webroot-path = /etc/letsencrypt/webrootauth

Toutes les idées seront les bienvenues :slight_smile:

Merci d’avance.

Salut,
Essaye de supprimer ANOTHER_DOMAIN_1, ANOTHER_DOMAIN_2 dans ton webroot.ini

Merci Sylvain,
bon ça avance, mais j’ai toujours ne erreur…

root@srvxylolabfab:/apps/fabmanager# systemctl status letsencrypt.service
● letsencrypt.service - letsencrypt cert update oneshot
Loaded: loaded (/etc/systemd/system/letsencrypt.service; static)
Active: failed (Result: exit-code) since Thu 2019-01-10 18:01:35 UTC; 12s ago
Process: 6470 ExecStart=/usr/bin/docker run --rm --name letsencrypt -v /apps/fabmanager/log:/var/log/letsencrypt -v /apps/fabmanager/letsencrypt/etc:/etc/letsencrypt -v /apps/fabmanager/letsencrypt/config:/letsencrypt-config Quay -c /letsencrypt-config/webroot.ini certonly (code=exited, status=1/FAILURE)
Main PID: 6470 (code=exited, status=1/FAILURE)

Jan 10 18:01:35 srvxylolabfab docker[6470]: To fix these errors, please make sure that your domain name was
Jan 10 18:01:35 srvxylolabfab docker[6470]: entered correctly and the DNS A/AAAA record(s) for that domain
Jan 10 18:01:35 srvxylolabfab docker[6470]: contain(s) the right IP address. Additionally, please check that
Jan 10 18:01:35 srvxylolabfab docker[6470]: your computer has a publicly routable IP address and that no
Jan 10 18:01:35 srvxylolabfab docker[6470]: firewalls are preventing the server from communicating with the
Jan 10 18:01:35 srvxylolabfab docker[6470]: client. If you’re using the webroot plugin, you should also verify
Jan 10 18:01:35 srvxylolabfab docker[6470]: that you are serving files from the webroot path you provided.
Jan 10 18:01:35 srvxylolabfab systemd[1]: letsencrypt.service: main process exited, code=exited, status=1/FAILURE
Jan 10 18:01:35 srvxylolabfab systemd[1]: Failed to start letsencrypt cert update oneshot.
Jan 10 18:01:35 srvxylolabfab systemd[1]: Unit letsencrypt.service entered failed state.

fin du fichier letsencrypt.log

2019-01-10 18:19:04,764:DEBUG:certbot.plugins.webroot:Removing /etc/letsencrypt/webrootauth/.well-known/acme-challenge/GsZvMhGYMeF42vnwF3W2ceTh50Gx6mTXcwn00GEYbUM
2019-01-10 18:19:04,765:DEBUG:certbot.plugins.webroot:All challenges cleaned up
2019-01-10 18:19:04,766:DEBUG:certbot.log:Exiting abnormally:
Traceback (most recent call last):
File « /opt/certbot/venv/bin/certbot », line 11, in
load_entry_point(‹ certbot ›, ‹ console_scripts ›, ‹ certbot ›)()
File « /opt/certbot/src/certbot/main.py », line 1364, in main
return config.func(config, plugins)
File « /opt/certbot/src/certbot/main.py », line 1249, in certonly
lineage = _get_and_save_cert(le_client, config, domains, certname, lineage)
File « /opt/certbot/src/certbot/main.py », line 121, in _get_and_save_cert
lineage = le_client.obtain_and_enroll_certificate(domains, certname)
File « /opt/certbot/src/certbot/client.py », line 410, in obtain_and_enroll_certificate
cert, chain, key, _ = self.obtain_certificate(domains)
File « /opt/certbot/src/certbot/client.py », line 353, in obtain_certificate
orderr = self._get_order_and_authorizations(csr.data, self.config.allow_subset_of_names)
File « /opt/certbot/src/certbot/client.py », line 389, in _get_order_and_authorizations
authzr = self.auth_handler.handle_authorizations(orderr, best_effort)
File « /opt/certbot/src/certbot/auth_handler.py », line 82, in handle_authorizations
self._respond(aauthzrs, resp, best_effort)
File « /opt/certbot/src/certbot/auth_handler.py », line 168, in _respond
self._poll_challenges(aauthzrs, chall_update, best_effort)
File « /opt/certbot/src/certbot/auth_handler.py », line 239, in _poll_challenges
raise errors.FailedChallenges(all_failed_achalls)
FailedChallenges: Failed authorization procedure. reservation.xylolab.fr (http-01): urn:acme:error:connection :: The server could not connect to the client to verify the domain :: Fetching http://51.68.83.239/#/.well-known/acme-challenge/GsZvMhGYMeF42vnwF3W2ceTh50Gx6mTXcwn00GEYbUM: Invalid host in « 51.68.83.239 ». Only domain names are supported, not IP addresses

Le problème est résolu, la deuxième erreur venait d’un problème de configuration des DNS.
Merci pour tout.

Super ! De rien du coup :slight_smile:
bonne semaine !

Bonjour,

je suis également coincé depuis quelques semaines sur un problème avec let’s encrypt, impossible d’avancer en dépit de nombreuses pistes.

J’utilise cette procédure d’installation en mode production et arrivé à l’étape « Generate SSL certificate by Let’s encrypt » rien ne va plus !

La commande « sudo systemctl start letsencrypt.service » termine inévitablement en erreur :

Job for letsencrypt.service failed because the control process exited with error code.
See « systemctl status letsencrypt.service » and « journalctl -xe » for details.

sachant que systemctl me retourne le log suivant :

!= [Le fichier est pas la!!]
To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address.

1- Alors j’ai déjà une première question, dans le tuto que j’ai cité il est noté en prélude de l’étape de génération du certificat le message suivant : « Important: app must be run on http before starting letsencrypt » ?! Je ne comprend pas concrètement ce que cela signifie que app doit tourner en http ??

2- Mon serveur est hébergé dans une université, qui visiblement utilise aussi let’s encrypt pour d’autres sites web hébergés. En testant l’URL de mon site via un navigateur (pour vérifier déjà que les diverses redirections et enregistrement DNS soient effectifs), le navigateur affiche un message d’alerte de certificat frauduleux ( Error code: SSL_ERROR_BAD_CERT_DOMAIN ), avec pour motif que mon IP publique est déjà enregistré avec l’identité de mon prestataire.
Finalement est-ce là le problème de l’impossibilité de génération de mon certificat ??

Merci

Salut,

Pour essayer d’être plus clair, voici comment est censé se dérouler la mise en place place d’un certificat via let’s encrypt :

  1. On lance l’app uniquement sur le port 80 pour qu’elle soit accessible par le serveur de let’s encrypt qui va devoir vérifier que c’est bien toi qui gère le domaine (ou le sous-domaine en l’occurrence)
  2. sudo systemctl start letsencrypt.service va demander à let’s encrypt de se connecter à ton domaine pour faire la vérif, et si c’est ok, générer le certificat.
  3. On a le certificat, on peut maintenant modifier la configuration de nginx pour activer le https (sur le port 443) et qu’il redirige automatiquement les connexions en http sur l’https.
  4. Les prochains renouvellement du certificat pourront se faire directement en https, plus besoin de modifier la config à l’avenir.

En espérant que c’est plus clair pour toi, sinon n’hésite pas à poser tes questions ici

Merci Sylvain,

j’ai donc mis en place la config sur le port 80 et arrive toujours sur une erreur à l’exécution du service letsencrypt ; ceci dit l’erreur est différente cette fois-ci :slight_smile:

● letsencrypt.service - letsencrypt cert update oneshot
Loaded: loaded (/etc/systemd/system/letsencrypt.service; static; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2019-02-11 16:28:27 +04; 15s ago
Process: 3313 ExecStart=/usr/bin/docker run --rm --name letsencrypt -v /apps/fabmanager/log:/var/log/letsencrypt -v /apps/fabmanager/log:/var/log/le
Main PID: 3313 (code=exited, status=1/FAILURE)
CPU: 121ms

févr. 11 16:28:21 vm-fablab docker[3313]: Saving debug log to /var/log/letsencrypt/letsencrypt.log
févr. 11 16:28:21 vm-fablab docker[3313]: Plugins selected: Authenticator webroot, Installer None
févr. 11 16:28:22 vm-fablab docker[3313]: Obtaining a new certificate
févr. 11 16:28:27 vm-fablab docker[3313]: An unexpected error occurred:
févr. 11 16:28:27 vm-fablab docker[3313]: There were too many requests of a given type :: Error creating new authz :: too many failed authorizations r
févr. 11 16:28:27 vm-fablab docker[3313]: Please see the logfiles in /var/log/letsencrypt for more details.
févr. 11 16:28:27 vm-fablab systemd[1]: letsencrypt.service: Main process exited, code=exited, status=1/FAILURE
févr. 11 16:28:27 vm-fablab systemd[1]: Failed to start letsencrypt cert update oneshot.
févr. 11 16:28:27 vm-fablab systemd[1]: letsencrypt.service: Unit entered failed state.
févr. 11 16:28:27 vm-fablab systemd[1]: letsencrypt.service: Failed with result ‹ exit-code ›.

Je constate que le repertoire de log /var/log/letsencrypt n’existe pas ! Impossible donc d’avoir d’avantage d’information comme l’indique le message d’erreur …

C’est normal que ce dossier n’existe pas car il est à l’intérieur du container docker de let’s encrypt. Par défaut, il est lié à /apps/fabmanager/log dans ton installation (tu as du le configurer en créant /etc/systemd/system/letsencrypt.service).

Tu peux donc consulter /apps/fabmanager/log/letsencrypt.log pour avoir les détails de l’erreur.

Néanmoins, d’après l’erreur en gras dans ton log ci-dessus, il est probable que cela vienne d’un trop grand nombre d’échecs récents, sans doute liés à ta configuration précédente. D’après la documentation de let’s encrypt, seuls 5 échecs par heure sont autorisés. Je pense que tu peux donc simplement réessayer et que cela devrait fonctionner.