SSL 证书
为 3x-ui 面板和入站获取并续期 TLS 证书——可使用 x-ui 的 ACME 菜单(域名或裸 IP)、Cloudflare DNS-01 通配符,或手动 Certbot。
TLS 证书让你能够通过 HTTPS 提供面板服务(这样你的登录和 API 流量都会被加密),并在入站上终止 TLS(VLESS-TLS、Trojan、 Shadowsocks-TLS 等等)。获取证书有三种方式:
x-ui菜单——内置的 ACME 客户端。对于单个域名或裸 IP 来说最为简单。- Cloudflare DNS-01——同样在菜单中提供;适用于通配符证书,或者 当 80 端口被封锁 / 服务器位于 Cloudflare 代理之后时。
- 手动 Certbot——如果你更愿意自己管理
acme.sh/Certbot。
x-ui SSL 菜单(Let's Encrypt)
运行 x-ui 并选择 20 — SSL Certificate Management。它会调用
acme.sh,并提供以下功能:
| 选项 | 作用 |
|---|---|
| Get SSL (Domain) | 通过 HTTP 验证为域名签发证书。 |
| Get SSL for IP Address | 为裸 IP 签发短期(6 天、自动续期)证书。 |
| Revoke | 吊销现有证书。 |
| Force Renew | 在到期前立即续期。 |
| Show Existing Domains | 列出服务器上已有的证书。 |
| Set Cert paths for the panel | 将面板的 TLS 指向已签发的证书(自动为你填写相关字段)。 |
为域名签发证书
将域名指向服务器
为你的域名创建一条 A(和/或 AAAA)记录,解析到该
服务器的公网 IP。在 DNS 完成传播之前,验证将会失败。
运行签发程序
x-ui → 20 → Get SSL (Domain),然后输入域名。acme.sh 会请求
证书,并将其保存在 /root/cert/<domain>/ 目录下,文件名为 fullchain.pem
(证书链)和 privkey.pem(私钥)。
为裸 IP 签发证书
没有域名?选择 Get SSL for IP Address 来获取一个绑定到服务器 IP 的 短期证书(有效期约 6 天,自动续期)。 在你设置好域名之前,这对于通过 HTTPS 访问面板很有用。
Cloudflare(DNS-01 通配符)
DNS 验证通过创建 TXT 记录来证明你对域名的控制权,而无需在 80 端口上
作出应答——因此它能在 Cloudflare 代理之后、在 80 端口被封锁的
服务器上,以及为通配符证书(*.example.com)正常工作。
你的域名 DNS 必须由 Cloudflare 托管,并且你需要具备以下两者之一:
- 一个具有
Zone:DNS:Edit权限的受限范围 API 令牌(推荐),或 - 你的账户邮箱 + Global API Key。
创建受限范围 API 令牌
在 Cloudflare 控制台中进入 My Profile → API Tokens → Create Token,选择 Edit zone DNS 模板,将其范围限定到你要签发证书的区域,然后创建 它。复制该令牌——它只会显示一次。
运行 Cloudflare 签发程序
x-ui → 21 — Cloudflare SSL Certificate。当提示时,选择 t 使用
API 令牌(默认),或选择 g 使用 Global API Key,然后输入你的
域名(如果使用 Global API Key,还需输入你的账户邮箱和密钥)。acme.sh 会创建
TXT 记录、完成验证,并在之后将其清理。
请优先使用受限范围令牌而非 Global API Key——它只授予对你所选区域的 DNS 编辑权限,因此即使泄露也无法波及你 Cloudflare 账户的其余部分。
手动(Certbot)
如果你不想使用菜单,可以用 Certbot 的 standalone 插件来签发证书 (同样需要 80 端口空闲,且域名已解析到服务器):
apt-get install certbot -y
certbot certonly --standalone --agree-tos --register-unsafely-without-email -d yourdomain.com
certbot renew --dry-runCertbot 会将证书写入 /etc/letsencrypt/live/yourdomain.com/
(fullchain.pem 和 privkey.pem)。在面板设置中
将面板指向这两个文件,并设置好续期——certbot renew
默认会在 systemd 定时器上运行。
使用证书
- 面板——在面板设置中设置
webCertFile(完整证书链) 和webKeyFile(私钥)。两项都必须设置,面板才会 切换到 HTTPS。菜单选项11— View Current Settings 会打印 当前正在使用的路径。 - 入站——当你在某个入站上启用 TLS 时,在该入站的 TLS 设置中引用相同的证书和密钥文件(或粘贴其内容)。参见 入站和 传输。
证书会过期(Let's Encrypt:90 天;IP 证书:约 6 天)。菜单和
Certbot 都会自动续期,但面板始终读取固定路径下的文件——
因此请原地续期,而不要移动文件,这样面板会在下次重启时
自动加载新证书。Force Renew(菜单 20)可
按需触发一次续期。

3x-ui