Активация SSL
При включении SSL в PasarGuard панель и ссылка на подписку будут доступны через https. Существует несколько способов включения SSL в PasarGuard, которые мы рассмотрим ниже от простого к сложному.
Во всех примерах ниже файлы docker-compose.yml и .env находятся в /opt/pasarguard, а xray_config.json в /var/lib/pasarguard.
Если вы установили PasarGuard вручную, вам нужно будет внести необходимые изменения самостоятельно.
Активация SSL с Caddy
В этом методе вам не нужно создавать SSL-сертификат - Caddy сделает всю работу за вас!
Изменение docker-compose.yml
Измените файл docker-compose.yml следующим образом:
services:
pasarguard:
image: pasarguard/panel:latest
restart: always
env_file: .env
network_mode: host
volumes:
- /var/lib/pasarguard:/var/lib/pasarguard
depends_on:
- caddy
caddy:
image: caddy
restart: always
ports:
- 80:80
- 443:443
volumes:
- /var/lib/pasarguard:/var/lib/pasarguard
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_volume:/data
- caddy_volume:/config
volumes:
caddy_volume:Создание Caddyfile
Создайте новый файл с именем Caddyfile в /opt/pasarguard и замените YOUR_DOMAIN на желаемый домен или поддомен.
Первая буква в имени файла Caddyfile должна быть заглавной C.
YOUR_DOMAIN {
reverse_proxy unix//var/lib/pasarguard/pasarguard.socket
}Если вы хотите, чтобы домен или поддомен подписки отличался от панели, продублируйте приведенное выше содержимое в вашем Caddyfile и замените оба домена или поддомена вместо YOUR_DOMAIN.
Настройка переменных окружения
Установите следующие переменные в файле .env.
Замените YOUR_DOMAIN на желаемый домен или поддомен.
UVICORN_UDS = /var/lib/pasarguard/pasarguard.socket
XRAY_SUBSCRIPTION_URL_PREFIX = https://YOUR_DOMAINПерезапуск PasarGuard
Перезапустите PasarGuard:
PasarGuard restartТеперь панель PasarGuard будет доступна по адресу вашего домена или поддомена через https.
Активация SSL с Uvicorn
PasarGuard по умолчанию работает с Uvicorn. Uvicorn также позволяет определить файлы SSL-сертификатов.
Получение SSL-сертификата
Сначала вам нужно получить файлы сертификатов для вашего домена или поддомена. Для этого смотрите руководство Выпуск SSL-сертификата.
Настройка переменных окружения
После создания файлов SSL-сертификата установите следующие переменные в файле .env.
Замените YOUR_DOMAIN на желаемый домен или поддомен.
UVICORN_PORT = 443
UVICORN_SSL_CERTFILE = "/var/lib/pasarguard/certs/YOUR_DOMAIN.cer"
UVICORN_SSL_KEYFILE = "/var/lib/pasarguard/certs/YOUR_DOMAIN.cer.key"
XRAY_SUBSCRIPTION_URL_PREFIX = https://YOUR_DOMAINТеперь панель PasarGuard будет доступна по адресу вашего домена или поддомена через https.
Активация SSL с HAProxy
HAProxy - один из лучших инструментов для этой задачи. В этом методе мы запускаем PasarGuard через https с помощью HAProxy.
Получение SSL-сертификата
Сначала вам нужно получить файлы сертификатов для вашего домена или поддомена. Для этого смотрите руководство Выпуск SSL-сертификата.
Изменение docker-compose.yml
Измените файл docker-compose.yml следующим образом:
services:
pasarguard:
image: pasarguard/panel:latest
restart: always
env_file: .env
network_mode: host
volumes:
- /var/lib/pasarguard:/var/lib/pasarguard
depends_on:
- haproxy
haproxy:
image: haproxy:latest
restart: always
volumes:
- ./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg
- /var/lib/pasarguard:/var/lib/pasarguard
ports:
- 80:80
- 443:443Создание haproxy.cfg
Создайте новый файл с именем haproxy.cfg в /opt/PasarGuard и замените YOUR_DOMAIN на желаемый домен или поддомен.
defaults
mode tcp
timeout client 30s
timeout connect 4s
timeout server 30s
global
maxconn 10000000
frontend http_frontend
bind *:80
mode http
redirect scheme https code 301 if !{ ssl_fc }
frontend https_frontend
bind *:443 ssl crt /var/lib/pasarguard/certs/YOUR_DOMAIN.cer
default_backend PasarGuard_backend
backend PasarGuard_backend
server PasarGuard /var/lib/pasarguard/pasarguard.socketНастройка переменных окружения
Установите следующие переменные в файле .env.
Замените YOUR_DOMAIN на желаемый домен или поддомен.
UVICORN_UDS = /var/lib/pasarguard/pasarguard.socket
XRAY_SUBSCRIPTION_URL_PREFIX = https://YOUR_DOMAINПерезапуск PasarGuard
Перезапустите PasarGuard:
PasarGuard restartТеперь панель PasarGuard будет доступна по адресу вашего домена или поддомена через https.