Nginx обратный прокси https для https - PullRequest
0 голосов
/ 29 февраля 2020

У меня QNAP TS-253A с интерфейсом администратора, доступным для inte rnet.

У qnap есть собственный сертификат, установленный специальным инструментом (ie. Я точно не знаю, где найти сертификат).

https://mydomain.myqnapcloud.com указывает на мой stati c IP, и у моего маршрутизатора есть правило брандмауэра, которое перенаправляет порт 443 на 192.168.200.6, который является внутренним адресом моего QNAP.

Это все работает как надо.

Теперь я развернул контейнер Docker на 192.168.200.18, который я хотел бы выставить https://identity.someotherdomain.com.

Моя идея заключалась в том, чтобы раскрутить другой контейнер с обратным прокси Nginx (192.168.200.8) и изменить правило брандмауэра, чтобы пересылать 443 (и 80) на обратный прокси.

Существует множество руководств, которые можно использовать nginx, чтобы сидеть перед http-сервером и добавлять SSL-сертификат, тем самым преобразуя существующий http-сайт в https. Но мой вариант использования должен быть еще проще, поскольку сервер, на который я пересылаю, уже является https.

Я пробовал это, но это не работает:

upstream qnap {
  server        192.168.200.6:443;
}

server {
  listen        192.168.200.8:443;
  server_name   mydomainmyqnapcloud.com;

  location / {
    proxy_pass  https://qnap;
  }
}

Как настроить nginx для переадресации трафика c, предназначенного для https://mydomain.myqnapcloud.com до https://192.168.200.6 и трафика c, предназначенного для https://identity.someotherdomain.com до https://192.168.200.18

1 Ответ

0 голосов
/ 02 марта 2020

Я получил эту работу, чтобы найти сертификат и ключ в Qnap (в / etc / stunnel) и скопировать их в общую папку в образе обратного прокси docker и включить их в nginx. конф:

server {
  listen 443 ssl;
  server_name mydomain.myqnapcloud.com;
  ssl_certificate /etc/ssl/private/backup.cert;
  ssl_certificate_key /etc/ssl/private/backup.key;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
  ssl_prefer_server_ciphers on;
  access_log /var/log/nginx/access.log;
  location / {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_pass https://192.168.200.6;
    proxy_read_timeout 90;
    proxy_redirect https://192.168.200.6 https://mydomain.myqnapcloud.com;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...