宝塔拨测博客拨测技术博客
宝塔面板

宝塔面板登录提示「证书不受信任」怎么办?用 acme.sh 配免费 IP HTTPS 证书

宝塔面板的 HTTPS 访问默认用的是自签名证书:它虽然能加密传输,但没被浏览器和操作系统信任根收录,所以登录面板时经常跳出「证书不受信任」「连接不安全」的提示,得手动确认才能继续。想换成浏览器直接可信的证书,又没域名怎么办?用 acme.sh 申请 Let’s Encrypt 的免费 IP HTTPS 证书,部署到面板即可(见使用 acme.sh 为宝塔面板配置免费 IP HTTPS 证书)。

为什么面板会提示「证书不受信任」

因为默认的自签名证书不在浏览器信任列表里。而 Let’s Encrypt 现已正式支持免费 IP HTTPS 证书,即使没有域名,也能用服务器公网 IP 申请到浏览器可信的证书,替换掉默认的自签名证书。

注意:Let’s Encrypt 申请的 IP 证书有效期最长仅有 160 小时,具体以 Let’s Encrypt 官方说明 为准。

第一步:安装 acme.sh 并切换默认 CA

用 SSH 或面板终端登录服务器,执行以下命令安装 acme.sh(把 my@example.com 换成你的真实邮箱):

curl https://get.acme.sh | sh -s email=my@example.com

安装完成后执行以下命令使 acme.sh 生效(或重新进一次终端):

source ~/.bashrc

执行 acme.sh --version 确认安装成功(预期看到版本号输出),再把 acme.sh 默认 CA 切换为 Let’s Encrypt:

acme.sh --set-default-ca --server letsencrypt

第二步:创建用公网 IP 访问的站点

在宝塔面板新建一个站点,域名填服务器的公网 IP 地址,其他选项按需配置后点「确定」。

创建 IP 站点

第三步:申请 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/

申请 IP 证书

第四步:把证书部署到面板

申请成功后,执行以下命令把证书写进面板的 SSL 目录(把 YOUR_IP_ADDRESS 换成你的公网 IP):

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"

请用独立的 SSH 终端窗口执行,不要用面板终端,否则面板会因重启而中断当前操作。

命令里的 --reloadcmd "service bt restart" 用于在证书更新后自动重启宝塔面板服务,让新证书生效。执行前还要确认已在面板设置中开启了面板 SSL 功能(新安装的面板通常已默认开启)。

部署完成后,面板的 HTTPS 访问就换成了浏览器可信的 IP 证书:

面板 SSL 证书部署成功

常见问题

为什么宝塔面板登录会提示「证书不受信任」?

因为面板默认用自签名证书做 HTTPS 加密,它没有被浏览器和操作系统信任根收录,所以访问时会提示「证书不受信任」「连接不安全」,需要手动确认才能继续。

没有域名,能用 acme.sh 给宝塔面板配 HTTPS 证书吗?

可以。Let's Encrypt 已支持免费 IP HTTPS 证书,无需域名,直接用服务器公网 IP 申请并部署到面板即可。

用 acme.sh 申请的 IP 证书有效期多长?

Let's Encrypt 申请的 IP 证书有效期最长仅 160 小时,具体以 Let's Encrypt 官方说明为准。

部署面板证书时为什么要在独立 SSH 终端执行?

因为部署命令里的 --reloadcmd 会重启面板服务,用面板终端执行会因面板重启而中断当前操作,所以要用独立的 SSH 终端窗口。

面板 SSL 功能要提前开启吗?

要。执行部署命令前需确认已在面板设置中开启面板 SSL 功能(新安装的面板通常已默认开启)。