宝塔面板 HTTPS 提示证书不受信任?用 acme.sh 免费给面板配 IP 证书(无需域名)
访问宝塔面板的 HTTPS 地址时如果浏览器提示「证书不受信任」「连接不安全」,原因多半是面板还在用默认的自签名证书。没有域名也能解决:Let’s Encrypt 已支持签发免费的 IP 证书,用 acme.sh 就能给面板换上一个浏览器可信的证书。
为什么面板 HTTPS 会提示「证书不受信任」?
宝塔面板自身提供的 HTTPS 访问默认使用自签名证书。这种证书虽然能实现加密传输,但没被浏览器和操作系统的信任根收录,所以访问面板时通常会出现「证书不受信任」「连接不安全」等提示,需要手动确认才能继续访问。
随着 Let’s Encrypt 正式支持免费 IP HTTPS 证书,即使没有域名,也能给基于 IP 访问的面板签发浏览器可信的证书。下面按四步把面板默认的自签名证书替换成免费的 IP 证书。
注意:Let’s Encrypt 签发的 IP 证书有效期最长只有 160 小时(约 7 天),具体以 Let’s Encrypt 官方说明为准。acme.sh 安装后会自动处理续签,续签后通过部署命令里的 reload 参数重启面板使新证书生效。
第一步:安装 acme.sh 并切换默认 CA
通过 SSH 或面板终端登录服务器,执行下面命令安装 acme.sh:
curl https://get.acme.sh | sh -s email=my@example.com
把 my@example.com 换成你的真实邮箱。安装完成后执行 source ~/.bashrc 让 acme.sh 命令生效(或重新进入终端),再用 acme.sh --version 确认安装成功——能看到版本号输出就说明装好了。
接着把 acme.sh 的默认 CA 切换为 Let’s Encrypt:
acme.sh --set-default-ca --server letsencrypt
第二步:在面板里创建 IP 站点
在宝塔面板中新建一个站点,域名一栏填写服务器的公网 IP 地址,其他选项按需配置,完成后点「确定」。后续签发证书时,--webroot 目录要指向这个 IP 站点对应的目录(例如 /www/wwwroot/114.132.47.153/)。

第三步:签发 IP 证书
在终端执行下面的命令申请 IP 证书,把 YOUR_IP_ADDRESS 换成你的服务器公网 IP:
acme.sh --issue --cert-profile shortlived --days 3 -d YOUR_IP_ADDRESS --webroot /www/wwwroot/YOUR_IP_ADDRESS/
例如公网 IP 是 114.132.47.153 时,命令写成:
acme.sh --issue --cert-profile shortlived --days 3 -d 114.132.47.153 --webroot /www/wwwroot/114.132.47.153/

第四步:把证书部署到面板
证书签发成功后,执行下面的命令把证书写入面板 SSL 配置:
acme.sh --install-cert -d YOUR_IP_ADDRESS \
--key-file /www/server/panel/ssl/privateKey.pem \
--fullchain-file /www/server/panel/ssl/certificate.pem \
--reloadcmd "service bt restart"
同样把 YOUR_IP_ADDRESS 换成你的公网 IP。命令里的 --reloadcmd "service bt restart" 会在证书更新后自动重启宝塔面板服务,让新证书生效。
执行这条部署命令时,请用独立的 SSH 终端窗口,不要用面板终端——因为命令会重启面板服务,面板终端会随之断开,导致操作中断。
部署前先确认面板已经开启「面板 SSL」功能(新安装的面板通常已默认开启),开启位置见宝塔面板 SSL 配置。
部署完成后,面板就换上了浏览器可信的 IP 证书:

常见问题
为什么访问宝塔面板的 HTTPS 会提示「证书不受信任」?
因为面板默认使用的是宝塔自签名证书。这种证书能加密传输,但没被浏览器和操作系统的信任根收录,所以浏览器会提示「证书不受信任」「连接不安全」。
没有域名,能给面板配上受信任的 HTTPS 证书吗?
可以。Let's Encrypt 已经支持签发基于 IP 地址(无需域名)的免费 HTTPS 证书,用 acme.sh 即可申请并部署到宝塔面板。
这个 IP 证书有效期多久?会过期吗?
Let's Encrypt 签发的 IP 证书有效期最长只有 160 小时(约 7 天),有效期较短。acme.sh 安装后会自动处理续签,并在证书更新后通过部署命令里的 reload 参数重启面板使新证书生效。
部署证书时为什么不能用面板终端执行?
部署命令带 `--reloadcmd "service bt restart"`,会重启宝塔面板服务。如果在面板终端里执行,面板一重启当前终端连接就会被中断,所以要改用独立的 SSH 终端窗口。
签发 IP 证书前要确认哪些前置条件?
先确认面板已经开启「面板 SSL」功能(新安装的面板通常已默认开启),再在面板里创建一个域名填公网 IP 的站点,签发命令里的 `--webroot` 目录要指向这个站点目录。
以后官方会支持直接在面板里申请 IP 证书吗?
官方文档提到面板后续会支持从面板直接申请 Let's Encrypt IP 证书;在此之前如果动手能力一般,也可以等官方功能发布。