2017-09-16 9 views
0

Je ne suis pas en mesure d'obtenir nginx retourner les fichiers que je l'ai mis dans /var/www/letsencrypt.Configurer Nginx pour répondre à http://my-domain.com/.well-known/acme-challenge/XXXX

nginx/sites disponibles/mydomain.conf

server { 
    listen 80 default_server; 
    listen [::]:80 default_server ipv6only=on; 
    server_name my-real-domain.com; 

    include /etc/nginx/snippets/letsencrypt.conf; 

    root /var/www/mydomain; 
    index index.html; 
    location/{ 
    try_files $uri $uri/ =404; 
    } 
} 

nginx/extraits/letsencrypt.conf

location ^~ /.well-known/acme-challenge/ { 
    default_type "text/plain"; 
    root /var/www/letsencrypt; 
} 

Je lance cette commande: certbot certonly --webroot -w/var/www/letsencrypt/-d mon-real-domain.com

Mais la page qui certbot tente d'accéder est toujours 404.

DEBUGGING

$ echo hi > /var/www/letsencrypt/hi 
$ chmod 644 /var/www/letsencrypt/hi 

Maintenant, je devrais être en mesure de curl localhost/.well-known/acme-challenge/hi, mais cela ne fonctionne pas. Encore 404. Une idée de ce qui me manque?

Répondre

0

L'option root /var/www/letsencrypt/; indique à nginx "ceci est le répertoire de base", le chemin final sera donc /var/www/letsencrypt/.well-known/acme-challenge/.

Donc, vous avez 2 options:

  1. changer votre chemin, par exemple pour

    $ echo hi > /var/www/letsencrypt/.well-known/acme-challenge/hi 
    
  2. Changer le comportement de nginx, donc nginx traitera comme alias:

    location ^~ /.well-known/acme-challenge/ { 
        default_type "text/plain"; 
        rewrite /.well-known/acme-challenge/(.*) /$1 break; 
        root /var/www/letsencrypt; 
    } 
    

Et ne Forg et faites killall -1 nginx pour recharger la configuration