https未生效需配置ssl证书,宝塔中须确认nginx/apache已运行,再通过let’s encrypt一键申请或手动上传含中间链的证书,并启用强制https,最后验证证书链完整性和页面资源协议一致性。

PHP 7.4 环境已通过宝塔面板部署完成,但访问网站仍显示 HTTP 不安全警告,浏览器地址栏无锁图标——这意味着 HTTPS 未生效,必须为站点正确配置 SSL 证书,否则用户提交的表单、登录凭证等数据将以明文传输,存在被中间人截获风险。
确认 PHP 7.4 对应的 Web 服务器类型
宝塔面板中 PHP 7.4 本身不处理 HTTPS,真正承载加密的是其绑定的 Web 服务器(Nginx 或 Apache)。这一步不能跳过:进入「软件商店」→ 找到当前正在运行的「Nginx」或「Apache」→ 查看右侧状态。若两者都未安装,SSL 配置将无法生效;若只装了 Nginx,则后续所有操作均按 Nginx 路径执行,Apache 配置项完全无效。
注意:同一台服务器上 Nginx 和 Apache 不能同时监听 80/443 端口,宝塔默认优先启用 Nginx。如你手动切换过 Web 服务,请以实际运行的那个为准。
用 Let’s Encrypt 一键申请并启用证书
这是最简捷且自动续签的方式,适用于已解析到本服务器的域名。
第一步:确保域名 A 记录已生效 → 登录域名控制台,检查 panel.yourdomain.com 或 www.yourdomain.com 是否指向当前服务器公网 IP → 在终端执行 dig yourdomain.com +short,返回结果必须是你的服务器 IP。
第二步:放行 80 端口 → 进入宝塔「安全」页面 → 确认“80”端口在防火墙列表中状态为“放行” → 同时登录云厂商控制台(如腾讯云、阿里云),在安全组规则中添加入方向 TCP:80 规则。
第三步:在网站设置中申请证书 → 进入「网站」→ 找到目标站点 → 点击「设置」→ 切换到「SSL」选项卡 → 选择「Let’s Encrypt」→ 勾选你要加密的域名(支持多选)→ 点击「申请」。
申请成功后立即勾选「强制 HTTPS」→ 点击「保存」。此时宝塔会自动重写 Nginx 配置,插入 301 跳转规则,并监听 443 端口。这一步不做,用户仍可通过 HTTP 访问,起不到保护作用。
手动上传已有 SSL 证书(含中间链)
当你使用腾讯云、阿里云或 iTrustSSL 等商业证书时,必须手动合并证书链,否则浏览器会报“不完整证书链”,尤其在 iOS 设备和企业内网中极易触发白屏。
方法一:合并证书文件
用 VS Code 或 Notepad++ 打开你的域名证书(如 yourdomain.com.crt)→ 复制全部内容 → 新建空白文档 → 粘贴 → 换一行 → 打开中间证书文件(如 yourdomain.com_bundle.crt)→ 全选复制 → 粘贴到刚才文档末尾 → 两段之间【必须且只能有一个空行】 → 保存为 fullchain.pem。
方法二:直接填入宝塔面板
进入网站「SSL」→ 点击「当前证书」→ 将 fullchain.pem 全部内容粘贴至「证书(PEM格式)」框 → 将私钥文件(yourdomain.com.key)内容完整粘贴至「私钥(KEY)」框 → 严禁删减开头的 -----BEGIN PRIVATE KEY----- 或结尾的 -----END PRIVATE KEY----- → 点击「保存」。
这一步操作起来很简单,直接把文件拖进去就行。但如果你只粘贴了 .crt 文件而漏掉中间证书,Chrome 可能侥幸显示绿锁,但 iPhone Safari 会直接拒绝连接,且无法调试。
验证 HTTPS 是否真实生效
不要只看宝塔界面上的“已启用”提示,那只是配置写入完成,不代表握手成功。
打开浏览器,输入 https://yourdomain.com → 回车 → 点击地址栏左侧锁形图标 → 选择「连接是安全的」→ 「证书有效」→ 查看「证书路径」:必须能看到两层或三层结构(你的域名 ← 中间 CA ← 根 CA)。如果只有一层,说明证书链仍不完整。
打开开发者工具(F12)→ 切换到「Console」标签页 → 刷新页面 → 若出现 Mixed Content: The page at 'https://' was loaded over HTTPS 报错,说明网页 HTML 中仍有 http:// 开头的图片、JS 或 CSS 链接,需统一改为 https:// 或 // 协议前缀。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











