web-dev-qa-db-fra.com

Certbot ne crée pas de dossier acme-challenge

Il y a quelques mois, j'avais des certificats Let's encrypt (avec l'ancien client letsencrypt). Le serveur que j'utilise est nginx.

Certbot crée le dossier .well-known, mais pas le dossier acme-challenge

Maintenant, j'ai essayé de créer de nouveaux certificats via ~/certbot-auto certonly --webroot -w /var/www/webroot -d domain.com -d www.domain.com -d git.domain.com

Mais je reçois toujours des erreurs comme celle-ci:

IMPORTANT NOTES:
   - The following errors were reported by the server:

   Domain: git.domain.com
   Type:   unauthorized
   Detail: Invalid response from
   http://git.domain.com/.well-known/acme-challenge/ZLsZwCsBU5LQn6mnzDBaD6MHHlhV3FP7ozenxaw4fow:
   "<.!DOCTYPE html>
   <.html lang='en'>
   <.head prefix='og: http://ogp.me/ns#'>
   <.meta charset='utf-8'>
   <.meta content='IE=Edge' http-equiv"

   Domain: www.domain.com
   Type:   unauthorized
   Detail: Invalid response from
   http://www.domain.com/.well-known/acme-challenge/7vHwDXstyiY0wgECcR5zuS2jE57m8I3utszEkwj_mWw:
   "<.html>
   <.head><.title>404 Not Found</title></head>
   <.body bgcolor="white">
   <.center><.h1>404 Not Found</h1></center>

(Bien sûr, les points à l'intérieur des balises HTML ne sont pas vraiment là)

J'ai cherché une solution, mais je n'en ai pas encore trouvé. Est-ce que quelqu'un sait pourquoi certbot ne crée pas les dossiers?

Merci d'avance!

20
lehnerchristian

Le problème était la configuration de nginx. J'ai remplacé mes longs fichiers de configuration par la config la plus simple possible:

server {
    listen 80;
    server_name domain.com www.domain.com git.domain.com;
    root /var/www/domain/;
}

Ensuite, j'ai pu émettre de nouveaux certificats.

Le problème avec mes longs fichiers de configuration était (pour autant que je sache) que j'avais les lignes suivantes:

location ~ /.well-known {
    allow all;
}

Mais ils devraient être:

location ~ /.well-known/acme-challenge/ {
    allow all;
}

Maintenant, le renouvellement fonctionne aussi.

12
lehnerchristian

J'ai eu un problème similaire. Mon problème était que j'avais cette règle:

 location ~ /\. {
    access_log off;
    log_not_found off;
    deny all;
 }

ces lignes où l'annulation de chaque accès à n'importe quel répertoire commençant par un "." (point)

4
Dazag

J'ai eu un problème stupide - lors de l'exécution de la commande certbot, j'avais l'attribut webroot pointant vers le répertoire racine de mon référentiel et non le répertoire public.

2
Justin