PasarGuard
教程指南

SSL 激活

在 PasarGuard 中启用 SSL 后,面板和订阅链接将可通过 https 访问。 在 PasarGuard 中启用 SSL 有不同的方法,我们将按从简单到复杂的顺序介绍这些方法。

在下面的所有示例中,docker-compose.yml.env 文件位于 /opt/pasarguardxray_config.json 位于 /var/lib/pasarguard

如果您手动安装了 PasarGuard,则需要自行进行必要的更改。

使用 Caddy 激活 SSL

使用此方法,您不需要创建 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

/opt/pasarguard 创建一个名为 Caddyfile 的新文件,并将 YOUR_DOMAIN 替换为您所需的域名或子域名。

Caddyfile 文件名中的第一个字母必须是大写的 C

YOUR_DOMAIN {
	reverse_proxy unix//var/lib/pasarguard/pasarguard.socket
}

如果您希望订阅域名或子域名与面板不同,请在 Caddyfile 中复制上述内容,并将两个域名或子域名都替换为 YOUR_DOMAIN

设置环境变量

.env 文件中设置以下变量。

UVICORN_UDS = /var/lib/pasarguard/pasarguard.socket

重启 PasarGuard

重启 PasarGuard:

PasarGuard restart

现在 PasarGuard 面板将可通过 https 在您的域名或子域名地址上访问。

使用 Uvicorn 激活 SSL

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 在您的域名或子域名地址上访问。

使用 HAProxy 激活 SSL

HAProxy 是此任务的最佳工具之一。在此方法中,我们借助 HAProxy 在 https 上运行 PasarGuard。

获取 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

/opt/pasarguard 创建一个名为 haproxy.cfg 的新文件,并将 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 在您的域名或子域名地址上访问。