Назад | Перейти на главную страницу

Обратный прокси Nginx + Let's Encrypt

У меня две ВМ. Один бегущий LEMP и один бегущий графана.

Я настроил nginx на LEMP, чтобы он служил обратным прокси для различных виртуальных машин в моей лаборатории, включая виртуальную машину с графаной.

Он отлично работает, но я хотел бы добавить Let's Encrypt SSL на хост grafana извне, поэтому grafana.mydomain.com обслуживается по SSL.

Я хочу настроить подстановочный знак для * .mydomain.com, чтобы в будущем я мог развертывать новые службы и виртуальные машины, к которым можно получить доступ через HTTPS извне. Есть ли обычная практика для этого? Я не уверен, следует ли мне устанавливать certbot и развертывать сертификат на хосте nginx или на виртуальной машине с Grafana. Я попробовал оба, и оба потерпели неудачу. Хотя я не уверен, пропустил ли я несколько настроек в конфигурации grafana, например. Я не могу найти никаких руководств, которые, кажется, обеспечивают правильную настройку конфигурации 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, опубликованная выше, должна работать, но мне не хватает некоторых настроек конфигурации в другом месте.