NGINX redirige todo excepto letsencrypt a https

Pregunta:

Tengo una configuración simple, redirijo todo excepto las solicitudes de letsencrypt a https, y luego tengo mis hosts virtuales solo en https ..

Actualmente, todas mis solicitudes se redirigen a https, y luego a un 404 para letsencrypt:

Esta es mi configuración …

server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name _;
        location ^~ /.well-known/acme-challenge/ {
            allow all;
            default_type text/plain;
            return 200 "$1.abcd-efgh";
        }

        location / {
            return 301 https://$host$request_uri;
        }
}

server {
    listen 443 ssl;
    server_name plex.my_domain.com;

    ssl_session_timeout 30m;
    ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
    ssl_certificate      /root/.acme.sh/plex.my_domain.com/fullchain.cer;
    ssl_certificate_key  /root/.acme.sh/plex.my_domain.com/plex.my_domain.com.key;
    ssl_session_cache shared:SSL:10m;


    add_header X-Xss-Protection "1; mode=block" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Strict-Transport-Security "max-age=2592000; includeSubdomains" always;
    add_header X-Frame-Options "SAMEORIGIN" always;
    proxy_hide_header X-Powered-By;
    add_header 'Referrer-Policy' 'no-referrer';
    add_header Content-Security-Policy "frame-ancestors my_domain.com plex.my_domain.com;";


    location / {
        proxy_pass http://127.0.0.1:32400;

        proxy_set_header Range $http_range;
        proxy_set_header If-Range $http_if_range;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        #Next three lines allow websockets
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Respuesta:

Tiene encabezados HSTS configurados en su bloque de servidor https. Esto significa que si visita su sitio con https una vez con su navegador, su navegador siempre se conectará a su dominio con https después de la primera visita.

Esto significa que no puede probar su configuración con un navegador. Debe probarlo con curl o una herramienta similar que no almacene listas HSTS.

Hay un pequeño ajuste para su configuración, puede usar una location /.well-known/acme-challenge coincidencia de prefijo simple location /.well-known/acme-challenge para su ubicación de LetsEncrypt. nginx utilizará la coincidencia más específica de los bloques de location .

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım