Обратный прокси Nginx + Let's Encrypt
У меня есть две виртуальные машины. Один бегущий LEMP и один бегущий графана.
Я настроил nginx на LEMP для использования в качестве обратного прокси-сервера для различных виртуальных машин в моей лаборатории, включая виртуальную машину с графаном.
Это прекрасно работает, но я хотел бы добавить Let's Encrypt SSL на хосте grafana извне, поэтому grafana.mydomain.com обслуживается по SSL.
Я хочу установить подстановочный знак для *.mydomain.com, чтобы в будущем я мог развертывать новые службы и виртуальные машины, к которым можно получить доступ через HTTPS извне. Есть ли обычная практика для этого? Я не уверен, должен ли я установить certbot и развернуть сертификат на хосте nginx или на виртуальной машине, на которой запущен grafana. Я попробовал оба, и оба потерпели неудачу. Хотя я не уверен, что пропустил несколько настроек в конфигурации grafana f.ex. Я не могу найти никаких руководств, которые, кажется, обеспечивают правильную настройку конфигурации afaik.
В настоящее время я пытался установить SSL как на хосте обратного прокси-сервера nginx, так и на хосте grafana для подстановочного знака *.mydomain.com, что также добавляет путаницы, поскольку теперь он "дублируется" с сертификатами.
сертификаты хранятся в /etc/letsencrypt/live/mydomain.com
Не уверен, что еще имеет отношение к информации. Но вот конфиг nginx, хранящийся в /etc/nginx/sites-enabled/grafana.mydomain.com:
server {
server_name grafana.mydomain.com;
# ssl on;
# ssl_certificate /etc/letsencrypt/live/mydomain.com/fullchain.pem;
# ssl_certificate_key /etc/letsencrypt/live/mydomain.com/privkey.pem;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://10.0.0.113:3000;
}
}
Заметка. Я закомментировал настройки SSL, так как я не могу подключиться к графане с включенным доступом при доступе извне.
SSL был развернут на хосте nginx с помощью этой команды:
$ sudo certbot certonly --manual -d *.mydomain.com --agree-tos --no-bootstrap --manual-public-ip-logging-ok --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
Короче говоря - я прав, что certbot и LE должны быть развернуты на хосте nginx. И не нужно ли это на бэкэнд-хосте (графане)? Я предполагаю, что некомментированная версия конфигурации nginx, опубликованная выше, должна работать, но я пропускаю некоторые настройки в другом месте.