тл;др
Я попытался настроить nginx для переадресации TCP-соединения через 6690 на Synology Drive. Но при использовании слушать 6690 ssl;
Клиент Synology Drive не может найти NAS, а при использовании слушать 6690;
(без SSL) NAS найден, но вместо сертификата, хранящегося в nginx, используется его неподписанный сертификат. Есть идеи, как включить SSL и использовать обратный прокси-сервер nginx с Synology Drive?
вступление
Я уже нашел несколько сообщений/вопросов, объясняющих, как настроить SSL-подключение к Synology NAS, используя nginx в качестве обратного прокси-сервера на отдельном компьютере. Таким образом, при доступе к (https://)my-domain.com я могу (уже) получить доступ к веб-сайту настроек Synology Drive (т. е. к DSM, доступному через порт 5000/5001). Однако я также хочу настроить Synology Drive для использования того же SSL-сертификата от Let's Encrypt, но здесь у меня возникают трудности с настройкой nginx.
Вопрос
Итак, я хочу настроить только Synology Drive и настроить DNS drive.my-domain.com для доступа к моему маршрутизатору.Кроме того, я приобрел SSL-сертификат для этого домена и настроил HTTPS-порт Synology Drive на 10003. В своем маршрутизаторе я перенаправил порты 80, 443 и 6690 на обратный прокси-сервер в соответствии с рекомендациями. здесь. Для nginx я настроил /etc/nginx/conf.d/synology.conf
:
включить /etc/letsencrypt/options-ssl-nginx.conf;
сервер {
слушать 80;
server_name drive.my-domain.com default_server;
# Для проверки Let’s Encrypt
расположение ^~ /.известный {
позволять все;
корень /данные/letsencrypt/;
}
}
сервер {
слушать 80;
слушать 443 ssl;
имя_сервера drive.my-domain.com;
место расположения / {
proxy_set_header Хост $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 $ схема;
proxy_pass https://<IP-OF-SYNOLOGY-NAS>:10003;
proxy_read_timeout 90;
}
ssl_certificate /etc/letsencrypt/live/drive.my-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/drive.my-domain.com/privkey.pem;
включить /etc/letsencrypt/options-ssl-nginx.conf;
если ($схема != "https") {
вернуть 301 https://$host$request_uri;
}
}
Кроме того, я добавил следующую строку в /etc/nginx/nginx.conf
:
...
включить /etc/nginx/fallthrough.conf;
И /etc/nginx/fallthrough.conf
содержит следующее:
транслировать {
вышестоящий synology_drive {
сервер <IP-OF-SYNOLOGY-NAS>:6690;
}
сервер {
слушать 6690 ssl;
proxy_pass synology_drive;
ssl_certificate /etc/letsencrypt/live/drive.my-domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/drive.my-domain.com/privkey.pem;
}
}
Однако при попытке настроить клиент Synology Drive Client не удается подключиться/найти Synology NAS. При изменении /etc/nginx/fallthrough.conf
не использовать SSL, т.е.:
транслировать {
вышестоящий synology_drive {
сервер <IP-OF-SYNOLOGY-NAS>:6690;
}
сервер {
слушать 6690;
proxy_pass synology_drive;
}
}
Synology NAS найден, но используется самозаверяющий сертификат, хранящийся на NAS, вместо сертификата от Let's Encrypt, хранящегося на обратном прокси-компьютере.
Кто-нибудь знает, что я делаю или могу делать неправильно здесь?