Дано
1. сервер внутри локальной сети 192.168.0.10 (ubuntu + nxinx)
2. роутер смотрящий в интернет с белым IP
x.x.x.x, с закрытыми 80 и 443 портами, с открытыми и проброшенными к локальному серверу
8080 и
8443 портами
3. арендованный впс с белым IP
y.y.y.y (ubuntu + nxing)
4. домен
site.ru смотрящий на впс
y.y.y.y
Задача
Открывать
site.ru с сервера из локальной сети по https.
С HTTP все просто, настроено и работает: На впс поднят проксирующий на другой ip:порт nginx.
server {
listen 80;
server_name site.ru www.site.ru;
location / {
proxy_pass http://x.x.x.x:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real_IP $remote_addr;
}
}
Получается локальный сервер знает все о клиенте, а клиент ничего не знает о конечном сервере.
Как это все сделать на HTTPS?
На сколько я понимаю, будут 2 шифрованные ноги
1. клиент -> впс (сертификат letsencrypt)
2. впс -> локальный сервер (нужен само подписанный сертификат?)
Получается клиент шифрует, проксирующий nginx дешифрует, он же шифрует для второй ноги и конечный nginx дешифрует.
Интересует именно вторая нога от проксирующего nginx к конечному nginx. Как настроить между ними безопасное шифрование?
Есть ли другие способы реализации https в такой сетевой архитектуре?