SSL 激活
在 PasarGuard 中启用 SSL 后,面板和订阅链接将可通过 https 访问。 在 PasarGuard 中启用 SSL 有不同的方法,我们将按从简单到复杂的顺序介绍这些方法。
在下面的所有示例中,docker-compose.yml 和 .env 文件位于 /opt/pasarguard,xray_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 在您的域名或子域名地址上访问。