acme.errors.ValidationError


#1

Bonjour,

J’essaye d’installer une instance cozycloud mais je bloque complètement à la dernière étape à la création de l’instance avec cozy-coclyco.
Voilà juste ce qu’il me sort (j’ai modifié le domaine en example.fr) :
[INF] Verify challenge on http://store.cozy.example.fr/.well-known/acme-challenge/NSoQvyp_n3KI2OIneBCH2jfiW858v5NwLF5JL3lX20A
[INF] Notify ACME the challenge is ready on http://store.cozy.example.fr/.well-known/acme-challenge/NSoQvyp_n3KI2OIneBCH2jfiW858v5NwLF5JL3lX20A
[INF] Request certificate to ACME
Traceback (most recent call last):
File “/usr/bin/cozy-coclyco”, line 11, in
load_entry_point(‘cozy-coclyco==1.0’, ‘console_scripts’, ‘cozy-coclyco’)()
File “/usr/lib/python3/dist-packages/cozy/coclyco/init.py”, line 56, in cli
args.cmd(args)
File “/usr/lib/python3/dist-packages/cozy/coclyco/pki.py”, line 139, in create_instance
self.__issue_certificate(slug, domain)
File “/usr/lib/python3/dist-packages/cozy/coclyco/pki.py”, line 94, in __issue_certificate
self._issue_certificate(csr)
File “/usr/lib/python3/dist-packages/cozy/coclyco/acme.py”, line 276, in _issue_certificate
order = self.__perform_http01(order)
File “/usr/lib/python3/dist-packages/cozy/coclyco/acme.py”, line 266, in __perform_http01
return self.__acme.poll_and_finalize(order)
File “/usr/lib/python3/dist-packages/acme/client.py”, line 714, in poll_and_finalize
orderr = self.poll_authorizations(orderr, deadline)
File “/usr/lib/python3/dist-packages/acme/client.py”, line 738, in poll_authorizations
raise errors.ValidationError(failed)
acme.errors.ValidationError


#2

Ça ressemble à ce qui arrive si ton ACME challenge n’est pas accessible de l’extérieur.

Tu as bien ajouté la règle suivante dans ton site par défaut dans Nginx, comme décrit dans la doc ?

    location /.well-known/acme-challenge/ {
        alias /etc/ssl/private/acme-challenge/;
    }

Tu peux aussi vérifier que le challenge est bien présent dans /etc/ssl/private/acme-challenge/ : tu devrais y voir un fichier nommé NSoQvyp_n3KI2OIneBCH2jfiW858v5NwLF5JL3lX20A. S’il est bien présent (je ne sais plus s’il n’est pas effacé à la fin de la procédure), tu devrais pouvoir y accéder avec ton navigateur à l’adresse http://store.cozy.example.fr/.well-known/acme-challenge/NSoQvyp_n3KI2OIneBCH2jfiW858v5NwLF5JL3lX20A.

S’il n’est plus présent tu peux créer un fichier bidon dans ce dossier, et vérifier que tu arrives bien à y accéder avec ton navigateur :

touch /etc/ssl/private/acme-challenge/dummy

devrait être accessible à http://store.cozy.example.fr/.well-known/acme-challenge/dummy.

Si tu arrives bien à accéder à cette adresse avec ton navigateur, c’est dû à autre chose, et je donne ma langue au chat :stuck_out_tongue:


#3

Attention en faisant ces vérifications, il faut bien que le FQDN soit accessible de l’extérieur pour la validation ACME. Il est impossible d’utiliser une IP privée, restreinte ou un nom de domaine privé.
Il faut aussi que l’URL soit accessible depuis Internet (donc ouverture des ports sur la box & cie).


#4

Ok. Je pensais qu’on pouvait faire un truc 100% local avec DNS local sans sans rien ouvrir de l’extérieur. Je vais devoir ouvrir. Merci


#5

On peut, mais du coup il faut faire soi-même ses certificats et ne pas dépendre d’une autorité de certification.