#nginx-config #certbot
#nginx-config #certbot
Вопрос:
У меня есть тестовый сервер с docker compose nginx certbot (получите сертификаты из let’s encript).
Конфигурация Nginx:
server {
listen [::]:80;
listen 80;
server_name testdomain.com www.testdomain.com;
location ~ /.well-known/acme-challenge {
allow all;
root /var/www/certbot;
}
server_tokens off;
# redirect http to https www
return 301 https://www.testdomain.com$request_uri;
}
#other server configs
certbot сообщает в журналах:
Certbot failed to authenticate some domains (authenticator: webroot). The Certificate Authority reported these problems:
Domain: testdomain.com
Type: connection
Detail: Fetching http://testdomain.com/.well-known/acme-challenge/vXDwOBgMA9DEq2IvxqUxxxxxxxxxx: Connection refused
Domain: www.testdomain.com
Type: connection
Detail: Fetching http://www.testdomain.com/.well-known/acme-challenge/shRZla5V7iFXB6D__xxxxx: Connection refused
Hint: The Certificate Authority failed to download the temporary challenge files created by Certbot. Ensure that the listed domains serve their content from the provided --webroot-path/-w and that files created there can be downloaded from the internet.
Я поместил временный файл в /.well-known/acme-challenge/
(http), но его нельзя загрузить (если я попытаюсь открыть mydomain.com/index.html — работает нормально, но перенаправляет на версию https).
Я думаю, что проблема заключается в том, что моя конфигурация также пытается перенаправлять запросы certbot на https. Есть ли у вас какие-либо идеи /.well-known/acme-challenge/
, как выйти из правил https?
Комментарии:
1. Если ваш сервер еще не настроен правильно для HTTPS, вам нужно будет отключить это, чтобы использовать certbot. Однако в сообщении об ошибке говорится, что соединение отклонено . Если ваш сайт перенаправляет HTTP на HTTPS, отключите это. Удалите эту строку, верните 301 testdomain.com $request_uri ; Подсказка. Используйте временные перенаправления, а не постоянные перенаправления во время тестирования.
Ответ №1:
Я нашел решение:
server {
listen [::]:80;
listen 80;
server_name testdomain.com www.testdomain.com;
location ^~ /.well-known/acme-challenge {
allow all;
root /var/www/certbot;
}
location / {
# redirect http to https www
return 301 https://www.testdomain.com$request_uri;
}
server_tokens off;
}
Теперь все перенаправляется на https, исключая содержимое этой папки /.well-known/acme-challenge