使用 acme.sh 为宝塔面板配置免费 IP HTTPS 证书(面板 SSL)
长期以来,宝塔面板自身提供的 HTTPS 访问默认使用的是自签名证书。这种证书虽然可以实现加密传输,但由于并未被浏览器和操作系统的信任根所收录,在访问面板时通常会出现「证书不受信任」「连接不安全」等安全提示,需要手动确认后才能继续访问。在实际运维场景中,这类提示比较影响使用体验,随着 Let’s Encrypt 正式支持免费 IP HTTPS 证书,即使不具备域名条件,也可以为基于 IP 访问的服务签发浏览器可信的证书。这使得为宝塔面板本身配置一个受信任的 HTTPS 证书成为可能。
本文将介绍如何通过 acme.sh 为宝塔面板自动申请并部署 免费的 IP HTTPS 证书,替换默认的自签名证书,从而实现浏览器可信的面板 HTTPS 访问。
注意
- Let’s Encrypt申请的 IP 证书有效期最长仅有 160 小时,具体请参考 Let’s Encrypt 官方说明
- 面板后期也会支持从面板直接申请Let’s Encrypt IP 证书,敬请期待。如您动手能力较差,建议等待官方功能发布
操作步骤
安装 acme.sh
- 通过 SSH 或面板终端登录到您的服务器,执行以下命令安装 acme.sh:
curl https://get.acme.sh | sh -s email=my@example.com
请将 my@example.com 替换为您的真实邮箱地址。
- 安装完成后,执行以下命令使 acme.sh 生效,也可重新进入终端使其生效:
source ~/.bashrc

- 执行以下命令,确认 acme.sh 安装成功,预期可以看到版本号输出:
acme.sh --version

- 执行以下命令,切换 acme.sh 默认 的 CA 为 Let’s Encrypt:
acme.sh --set-default-ca --server letsencrypt
- 至此,acme.sh 安装完成。
申请 IP 证书
-
在宝塔面板中创建一个新的站点,域名填写服务器的公网 IP 地址,其他选项根据需要配置,完成后点击【确定】。

-
在终端中执行以下命令,使用 acme.sh 申请 IP 证书,请将
YOUR_IP_ADDRESS替换为您的服务器公网 IP 地址:
acme.sh --issue --cert-profile shortlived --days 3 -d YOUR_IP_ADDRESS --webroot /www/wwwroot/YOUR_IP_ADDRESS/
例如:
acme.sh --issue --cert-profile shortlived --days 3 -d 114.132.47.153 --webroot /www/wwwroot/114.132.47.153/

- 申请成功后,执行以下命令为面板部署SSL证书:
注意
请使用独立的 SSH 终端窗口执行以下命令,不要使用面板终端,否则面板会因重启而中断当前操作。
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 地址,例如:
acme.sh --install-cert -d 114.132.47.153 \
--key-file /www/server/panel/ssl/privateKey.pem \
--fullchain-file /www/server/panel/ssl/certificate.pem \
--reloadcmd "service bt restart"
提示
- 使用前述命令前请确保已经在面板设置中开启了面板 SSL 功能(新安装面板通常已经默认开启),如何开启宝塔面板 SSL 功能?
--reloadcmd "service bt restart"参数用于在证书更新后自动重启宝塔面板服务,使新证书生效。

- 至此,IP 证书已成功部署到宝塔面板,效果如下图所示:
