#docker #ssl #nginx #https #nginx-reverse-proxy
#docker #ssl #nginx #https #nginx-обратный прокси
Вопрос:
Я создал домен (domain.com ) и поддомен (abc.domain.com ), а также сгенерировал SSL-сертификаты для обоих с помощью letsencrypt. Оба проекта Django размещены на AWS EC2, и для них создан прокси-сервер, который выглядит следующим образом:
server {
listen 443 ssl;
server_name example.com;
location / {
proxy_pass https://1.2.3.4:444;
proxy_ssl_server_name on;
proxy_ssl_verify on;
proxy_ssl_certificate /home/domain/fullchain.pem;
proxy_ssl_certificate_key /home/domain/privkey.pem;
}
}
server {
listen 443 ssl;
server_name abc.example.com;
location / {
proxy_pass https://1.2.3.4:445;
proxy_ssl_server_name on;
proxy_ssl_verify on;
proxy_ssl_certificate /home/subdomain/fullchain.pem;
proxy_ssl_certificate_key /home/subdomain/privkey.pem;
}
}
Я настраиваю прокси-сервер и оба проекта, начиная без каких-либо проблем проблема в том, что когда я вхожу https://example.com
в браузер, он не показывает страницу, но когда я выбираю домен с номером порта. https://example.com:444
, он начинает показывать страницу. Я не знаю, чего мне не хватает.
Ответ №1:
Для того, чтобы https://example.com
работать, вам необходимо правильно настроить Nginx с конфигурацией SSL, которая включает директивы using ssl_certificate
и ssl_certificate_key
, поскольку не похоже, что вы их используете.
Использование proxy_ssl_certificate
предназначено для использования HTTPS-соединения между Nginx и прокси-сервером, который в вашем случае является приложением django.
Использование ssl_certificate
предназначено для использования HTTPS-соединения между браузером пользователя и Nginx, которое вам нужно заставить https://example.com
работать должным образом
Для получения более подробной информации проверьте настройку HTTPS-серверов
Комментарии:
1.
proxy_ssl_certificate
иproxy_ssl_certificate_key
необходимо удалить из местоположения @mostafa2.Я не уверен в этом, поскольку в документации упоминается, что эти директивы для связи между Nginx и тем, что за ним стоит, и ничего не говорится об их использовании с
ssl_certificate
nginx.org/en/docs/http /… отличиеssl_certificate
будет между браузером и самим nginx3. Есть ли у вас конфликт при использовании обоих
ssl_certificate
иproxy_ssl_certificate
?4. пожалуйста, опубликуйте возникшую у вас ошибку. Вообще говоря, для
https://example.com
работы вам нужно использоватьssl_certificate
и так далее.