J'essaie de passer des certificats auto-signés aux certificats Let's Encrypt sur mon serveur Web nginx.
Actuellement, je redirige toutes les demandes vers http/80
vers https/443
, qui utilise un certificat auto-signé que j'ai créé il y a quelque temps.
Maintenant - d'après ce que je comprends, Let's Encrypt fait une demande sur le port 80 (comme j'utilise l' webroot
option de certbot
). Ces demandes sont redirigées, ce qui rend la génération de certificats infructueuse.
J'ai essayé d'y parvenir avec le bloc serveur suivant, en écoutant au port 80:
server {
listen 80;
server_name sub.domain.tld;
server_tokens off;
location /.well-known {
root /var/www/letsencrypt;
}
location / {
return 301 https://$host$request_uri;
}
}
Mais les demandes /.well-known
sont redirigées de https/443
toute façon.
Comment puis-je rediriger toutes les demandes de http/80
vers https/443
, à l'exception des demandes vers /.well-known/
?
webroot
d'certbot
option nécessite http plaine.wget
/curl
Réponses:
Essaye ça:
Puisqu'il n'y avait aucune
try_files
entrée dans votre serveur virtuel, il ne savait pas quoi faire avec les demandes qui arrivaient/.well-known
.la source
location
sanstry_files
envoie simplement le fichier duroot
répertoire.try_files
et cela fonctionne parfaitement bien pour moi. En fait, j'ai exactement la même configuration que celle indiquée dans la question. Seule la différence estlocation /.well-known/
au lieu delocation /.well-known
(notez la barre oblique de fin). Alors, c'est peut-être là que réside le problème?