Назад | Перейти на главную страницу

Все поддомены перенаправляются на HTTPS

У меня есть корневой домен (https://kernl.us), который защищен SSL-сертификатом Let's Encrypt. Это работает нормально, но когда я пытаюсь перейти на новый поддомен (http://status.kernl.us) Chrome перенаправляет меня на HTTPS. Поддомен - это запись CNAME, которая указывает на страницу состояния Pingdom. Я не могу контролировать его статус HTTP / S.

Если я открываю Firefox, перенаправления HTTPS не происходит. Я подозреваю, что это связано с сертификатом Let's Encrypt SSL и некоторым сохраненным поведением в Chrome, но я не уверен, с чего начать.

Я нашел это: https://community.letsencrypt.org/t/every-subdomain-is-redirecting-to-https-even-non-existent-ones/18095 что кажется моей проблемой, но моя конфигурация Nginx не устанавливает никаких HSTS настройки.

Любые идеи?

Конфигурация Nginx

server {
    listen 443;
    server_name kernl.us;

    ssl on;
    ssl_certificate /etc/letsencrypt/live/kernl.us/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/kernl.us/privkey.pem; # managed by Certbot

    ssl_session_timeout 30m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS:!DH;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:30m;

    location /static/ {
        autoindex on;
        expires 7d;
        gzip on;
        gzip_vary on;
        gzip_min_length 256;
        gzip_proxied expired no-cache no-store private auth;
        gzip_types text/plain text/css text/xml text/javascript application/x-javascript application/xml;
        gzip_disable "MSIE [1-6]\.";
        root /var/www/kernl/kernl/public/;
    }

    location / {
        proxy_pass http://backend;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
        add_header X-Nginx-Server 'nginx1';
        add_header X-Upstream $upstream_addr;
    }
}

Если вы посмотрите сюда: https://hstspreload.org/?domain=kernl.us или здесь: https://www.ssllabs.com/ssltest/analyze.html?d=kernl.us&hideResults=on вы можете видеть, что HATS предварительно загружен (т.е. жестко запрограммирован) в код Chrome.

Обычно для этого вам нужно публиковать заголовки HSTS, и они могут удалить это из кода, поскольку этот домен больше этого не делает. Вы это сделали? Или предыдущий владелец или администратор этого домена?

Боюсь, что в основном это HTTPS только для этого домена и поддоменов. По крайней мере, до тех пор, пока Chrome не удалит этот код и все ваши пользователи не перестанут использовать любые версии Chrome с этим кодом.