pritunl-vpn сам по себе не нуждается в дополнительном веб сервере типа «nginx» так как реализует у себя под копотом веб сервер.
Но что если нам надо на том же сервере (ввиду маленьких бюджетов) иметь и nginx с 443 портом и pritunl-vpn, который по дефолту тоже использует 443 порт?
Сначала меняем web console port у pritunl-vpn. Самый верный способ, особенно если по каким-то причинам недоступна веб-морда, это выполнить команду
pritunl set app.server_port 444
Создаем конфиг файл для nginx — /etc/nginx/conf.d/pritunl-vpn.conf
upstream pritunl-vpn {
server 127.0.0.1:444;
}
server {
listen 80;
root /usr/share/nginx/html;
server_name vpn.example.com;
location /.well-known {
allow all;
}
location / {
return 301 https://vpn.example.com$request_uri;
}
}
server {
server_name ams-vpn.andtree.ru;
location / {
proxy_pass https://pritunl-vpn;
proxy_ssl_verify off;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
Тут мы сознательно опустили ожидаемый 443 порт и серты, так как хотим использовать certbot для этого. Следовательно выполняем
certbot certonly --nginx
Во второй блок server нашего конфига вставляем следующее:
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/vpn.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/vpn.example.com/privkey.pem;
Запускаем nginx и pritunl-vpn. Ваш сайт и pritunl-vpn должны работать не мешая друг другу.