Estou tentando passar de certificados autoassinados para certificados Let's Encrypt no meu servidor nginx.
Atualmente, redireciono todas as solicitações para http/80
para https/443
, que usa um certificado autoassinado que criei há um tempo.
Agora - pelo que entendi, o Let's Encrypt faz uma solicitação para a porta 80 (como estou usando a webroot
opção de certbot
). Essas solicitações são redirecionadas, o que torna a geração do certificado malsucedida.
Tentei fazer isso com o seguinte bloco de servidor, ouvindo na porta 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;
}
}
Mas os pedidos de /.well-known
são redirecionados para https/443
qualquer maneira.
Como redirecionar todas as solicitações de http/80
para https/443
, exceto as solicitações de /.well-known/
?
webroot
ofcertbot
requer http simples.wget
/curl
Respostas:
Tente o seguinte:
Como não havia
try_files
entrada no seu servidor virtual, ele não sabia o que fazer com as solicitações recebidas/.well-known
.fonte
location
semtry_files
apenas envia arquivo doroot
diretório.try_files
e funciona perfeitamente bem para mim. Na verdade, eu tenho exatamente a mesma configuração, como indicado na pergunta. A única diferença é emlocation /.well-known/
vez delocation /.well-known
(observe a barra à direita). Então talvez seja aí que está o problema?