PasarGuard
Learn

Активация 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.