Estoy tratando de pasar de los certificados autofirmados a los certificados Let's Encrypt en mi servidor web nginx.
Actualmente, vuelvo a dirigir todas las solicitudes de http/80
a https/443
, que utiliza un certificado firmado creé hace un tiempo.
Ahora, por lo que entiendo, Let's Encrypt realiza una solicitud al puerto 80 (ya que estoy usando la webroot
opción de certbot
). Estas solicitudes se redirigen, lo que hace que la generación del certificado no tenga éxito.
Traté de lograr esto con el siguiente bloque de servidor, escuchando en el puerto 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;
}
}
Pero las solicitudes a /.well-known
se redirigen a de https/443
todos modos.
¿Cómo puedo redirigir todas las solicitudes de http/80
a https/443
, excepto las solicitudes a /.well-known/
?
webroot
decertbot
opción requiere llanura http.wget
/curl
Respuestas:
Prueba esto:
Como no había ninguna
try_files
entrada en su servidor virtual, no sabía qué hacer con las solicitudes que se recibían/.well-known
.fuente
location
sintry_files
solo envía el archivo desde elroot
directorio.try_files
y funciona perfectamente bien para mí. De hecho, tengo exactamente la misma configuración que se indica en la pregunta. La única diferencia es enlocation /.well-known/
lugar delocation /.well-known
(tenga en cuenta la barra diagonal final). Entonces, ¿quizás ahí es donde está el problema?