Je simple course de conteneurs docker de la manière suivante:letsencrypt Webroot donne 404 pour nginx situé dans docker
docker service create --name nginx_proxy \
--mount type=bind,source=/opt/nginx/conf.d,target=/etc/nginx/conf.d \
--mount type=bind,source=/opt/nginx/webroot,target=/var/webroot \
--constraint 'node.role==manager' \
--publish 80:80 --publish 443:443 \
--network nginx-net \
nginx
Le service créé fonctionne sans problèmes. J'ai ajouté un exemple de configuration proxy passe à un autre service dans le même réseau (example.com.conf): (www.)
server {
listen 80;
server_name example.com www.example.com;
location /.well-known/acme-challenge {
alias /var/webroot;
}
location/{
proxy_pass http://example_site:8080;
}
}
Quand je vais à example.com, je peux voir mon site. Depuis que j'ai monté l'hôte:/opt/nginx/webroot dans le conteneur:/var/webroot, j'ai créé un fichier dans/opt/nginx/webroot appelé "test.html" (le contenu du fichier n'a pas d'importance).
Quand j'ouvrir mon navigateur et tapez:
http://example.com/.well-known/acme-challenge/test.html
Je peux voir le fichier que j'ai ajouté à/opt/nginx/Webroot. Toutefois, certbot lance 404 lorsque j'exécute la commande suivante:
certbot certonly --dry-run --webroot -w /opt/nginx/webroot -d example.com -d www.example.com
Que manque-t-il ici? À mon avis, certbot crée un fichier dans le répertoire webroot et essaie de télécharger le fichier publiquement; Cependant, il ne voit pas mon fichier pour une raison quelconque.
vous pouvez afficher les journaux de certbot et nginx? – Moema