
Я последовал заИнструкции Cerbot получить сертификат HTTPS для NGINX на моем сервере Debian для домена, но HTTPS не перенаправляется должным образом.
etc/nginx/conf.d/app.conf
В результате автоматической генерации Certbot я получил следующее :
server {
server_name mnpd.khkm.dev www.mnpd.khkm.dev;
# listen 8080;
server_tokens off;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
# return 301 https://mnpd.khkm.dev$request_uri;
proxy_pass http://mnpd.khkm.dev;
}
listen [::]:443 ssl ipv6only=on; # managed by Certbot
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/mnpd.khkm.dev/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/mnpd.khkm.dev/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
if ($host = mnpd.khkm.dev) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
listen [::]:80;
server_name mnpd.khkm.dev www.mnpd.khkm.dev;
return 404; # managed by Certbot
}
В Chrome, когда я захожу вhttps://mnpd.khkm.dev/, Я получил:
mnpd.khkm.dev redirected you too many times.
Try deleting your cookies.
ERR_TOO_MANY_REDIRECTS
я нашел этоОтвет на Stack Overflow
где я посмотрел на вкладку «Сеть» в веб-консоли и увидел, что страница постоянно перенаправляется на https://mnpd.khkm.dev/
. Конфигурация NGINX должна прослушивать порт 443 для HTTPS, так почему же он не загружается и постоянно перенаправляется? (Я ожидаю, что будет загружена страница NGINX по умолчанию.)
решение1
Порт 80 перенаправляется на 443, который пытается проксировать 80, который перенаправляет ....
Удалить
location / {
# return 301 https://mnpd.khkm.dev$request_uri;
proxy_pass http://mnpd.khkm.dev;
}
Я бы не позволил certbot переписывать мои файлы конфигурации. Он действительно хорошо работает только для самого простого варианта использования. Я рекомендую использоватьcertbot в автономном режиме. Это делает конфигурацию вашей проблемой и позволяет certbot управлять сертификатами.
Вы запускаете cert bot, он сообщает вам, где находятся файлы сертификатов, и вы добавляете эти биты в конфигурацию вашего HTTPS-сервера. Когда он обновляется, он помещает новые файлы в то же место, чтобы вам не пришлось снова менять конфигурацию после настройки сайта. certbot обновляет и перезапускает nginx.