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

Перезапуск 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"

Теперь панель 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

Перезапуск PasarGuard

Перезапустите PasarGuard:

PasarGuard restart

Теперь панель PasarGuard будет доступна по адресу вашего домена или поддомена через https.