全站HTTPS需四步:进「网站」→选站点「设置」→左选「SSL」→开「强制HTTPS」并保存;前提为SSL证书已成功部署且域名匹配,否则开关灰色不可用,开启后HTTP请求自动301跳转至HTTPS。

宝塔面板里装 SSL 证书本身不难,但“全站 HTTPS”真正卡住人的地方从来不是点几下保存,而是证书没配对、跳转漏规则、资源混用 HTTP、CDN 没同步——这些都会让浏览器报 NET::ERR_CERT_COMMON_NAME_INVALID 或显示“不安全”。直接上手前先确认:你用的是域名访问(不是 IP),且该域名已解析到服务器并生效。
用 Let’s Encrypt 一键申请并自动续期(推荐新手)
宝塔内置的 Let’s Encrypt 申请是最省事的路径,但有几个硬性前提必须满足:
- 站点已添加,且域名在「网站」列表中可查(不能是纯 IP 站点)
- 域名 DNS 解析已生效(
ping yourdomain.com能通,且返回的是你的服务器 IP) - 服务器 80 端口未被占用(否则验证失败,错误提示常为
Verify error:Invalid response from http://...)
操作路径:网站 → 选择站点 → SSL → Let's Encrypt → 勾选域名 → 输入邮箱 → 点击「申请」。成功后立即勾选「强制 HTTPS」。注意:申请时若提示「无法验证域名」,大概率是防火墙或安全组没放行 80 端口,或宝塔面板的「网站」设置里该站点的「域名」填错了(比如少写了 www)。
手动上传证书文件时 KEY 和 PEM 内容怎么填才不报错
很多用户粘贴证书后点保存就报错,根本原因是格式错位或内容缺失。关键不是“有没有”,而是“顺序和拼接是否正确”:
-
证书(PEM 格式)文本框里必须包含:服务器证书 + 中间证书(如有),中间用换行隔开,不能有空行,不能带-----BEGIN CERTIFICATE-----以外的注释 -
私钥(KEY 格式)文本框里只粘贴私钥内容,开头必须是-----BEGIN PRIVATE KEY-----或-----BEGIN RSA PRIVATE KEY-----,结尾对应闭合,不能多空格、不能换行错位 - 常见错误:
SSL_CTX_use_PrivateKey_file() failed表示 KEY 格式不对;SSL_CTX_use_certificate_chain_file() failed表示 PEM 里缺中间证书或拼接错
示例正确 PEM 拼接(两段合并,无空行):
-----BEGIN CERTIFICATE----- MIIFazCCBFOgAwIBAgIQA... -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIEsjCCA5qgAwIBAgIQ... -----END CERTIFICATE-----
为什么开了强制 HTTPS,页面仍有 HTTP 资源被拦截
浏览器控制台报 Mixed Content: The page at 'https://...' was loaded over HTTPS, but requested an insecure resource 'http://...',这不是证书问题,是前端硬编码导致的。必须检查三处:
- 网站后台的「站点地址」设置(如 WordPress 的
siteurl和home,Discuz 的$_config['cookie']['domain'])是否已改为https://开头 - 数据库里文章正文、附件链接、模板 HTML 中的
http://yourdomain.com/xxx是否批量替换为https://(用 phpMyAdmin 执行UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://yourdomain.com', 'https://yourdomain.com');) - CDN 控制台是否也启用了 HTTPS 回源,并把 CDN 的证书配置同步更新(腾讯云/阿里云 CDN 需单独开启「HTTPS 安全加速」并上传证书)
漏掉任意一处,小绿锁都出不来。
acme.sh 申请 IP 地址证书(仅限面板自身 HTTPS,非网站)
如果你要给宝塔面板后台(https://your-ip:8888)加 HTTPS,不能用网站证书,得走 acme.sh 申请 IP 证书。注意:Let’s Encrypt 官方不签发纯 IP 证书,必须用 --standalone 或 --webroot 模式配合公网 IP 验证:
- 先在宝塔「网站」里新建一个站点,域名填你的公网 IP(如
114.132.47.153),根目录设为/www/wwwroot/114.132.47.153 - SSH 连入服务器,执行:
acme.sh --issue -d 114.132.47.153 --webroot /www/wwwroot/114.132.47.153 - 部署到面板:
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
执行完需重启面板:bt restart。这步做完,面板登录地址才能以 HTTPS 访问——但注意:大多数浏览器会因 IP 证书不被信任而弹警告,这是正常现象,和网站证书无关。











