Я уже нашел здесь несколько вопросов и ответов по этой теме, но ни один из них не помог мне решить проблему. Я установил сервер 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 для сайта.