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

Исключить http-запросы Let's Encrypt из https-перенаправления nginx

Я уже нашел здесь несколько вопросов и ответов по этой теме, но ни один из них не помог мне решить проблему. Я установил сервер debian 8 только сегодня, и каждый запрос к моему домену перенаправляется на https. Теперь я играл, чтобы создать новый сертификат ssl для поддомена, который не работал, потому что certbot получал доступ к .well-известному каталогу с помощью http. Поскольку этот запрос был перенаправлен на https, он не работал. Моя идея заключалась в том, чтобы исключить этот скрытый каталог из перенаправлений.

Для тестирования я помещал простой текст в каталог .well-known / acme-challenge /. Каждый раз, когда я делаю запрос к этому файлу, меня все равно перенаправляют. Вот моя текущая конфигурация nginx:

server {
    listen 80 default_server;
    #listen [::]:80 default_server;
    server_name test.de www.test.de;

    root /var/www/html;

    location /.well-known/acme-challenge {
        root /var/www/html;
        allow all;
    }
    location / {
        return 301 https://test.de$request_uri;
    }
}

server {
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;
    include snippets/ssl-test.de.conf;
    include snippets/ssl-params.conf;

    root /var/www/html;

    # Add index.php to the list if you are using PHP
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }

#    location ~ /.well-known {
#        allow all;
#    }
}

У кого-нибудь есть идеи?

Когда я проделал подобное, мне нужно было добавить следующее:

location /.well-known {
    root /var/www/html;
    allow all;
    try_files $uri =404;
}

location / {
    return 301 https://example.com$uri;
}

Без try_files, nginx не имеет информации о том, что делать (для try_files).

Также при его тестировании нужно использовать curl или wget, которому не важна настройка HSTS для сайта.