0

0

php怎么部署线上小程序后端_ssl证书装不上怎么排查【指导】

星夢妙者

星夢妙者

发布时间:2026-02-11 12:56:40

|

290人浏览过

|

来源于php中文网

原创

HTTPS不生效的四大主因:Web服务器未监听443端口、证书链不完整、PHP代码硬编码HTTP协议、Let’s Encrypt续期后未重载服务。需逐项排查监听状态、证书路径与完整性、URL生成逻辑及Nginx重载与权限。

php怎么部署线上小程序后端_ssl证书装不上怎么排查【指导】

PHP 小程序后端部署后 HTTPS 不生效,先确认 Nginx/Apache 是否真在监听 443

很多「证书装不上」的问题,本质是 Web 服务器压根没启用 SSL 监听。小程序强制要求 https:// 接口,但你可能只配了 http:// 的 80 端口,或 443 端口被防火墙/安全组拦了。

  • 运行 netstat -tuln | grep :443,看是否有进程在监听 443(如 nginxapache2
  • 检查 Nginx 配置里是否真有 listen 443 ssl;,且 ssl_certificatessl_certificate_key 指向的路径存在、权限可读(ls -l /path/to/cert.pem
  • 云服务器(如阿里云、腾讯云)必须在安全组里放行 TCP 443 端口——光配对证书没用,流量进不来

证书链不完整导致微信校验失败

小程序后台填写的「request 合法域名」会触发微信服务端主动发起 HTTPS 请求校验。如果证书链缺失(比如只传了站点证书,没传中间 CA),微信会握手失败,报错类似 SSL routines:tls_process_server_certificate:certificate verify failed

  • openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 查看输出末尾是否有 Verify return code: 0 (ok);若为 21(unable to verify the first certificate),就是链不全
  • 从证书提供商下载完整证书包,通常含 fullchain.pem(证书+中间 CA)和 privkey.pem;Nginx 中应使用 ssl_certificate fullchain.pem,而非单独的 domain.crt
  • 别手动拼接证书——顺序必须是:站点证书在最前,中间 CA 在后,根证书不放进去

PHP 后端代码里硬编码了 http:// 导致跳转或请求降级

即使 Nginx 已正确启用 HTTPS,PHP 代码中若用 $_SERVER['HTTP_HOST'] 拼 URL,或直接写死 http:// 前缀,会导致接口返回的图片地址、跳转链接、签名用的原始 URL 仍是 HTTP,小程序拒绝加载。

SolidPoint
SolidPoint

Youtube视频总结器,快速将Youtube长视频压缩成文字摘要

下载
  • 检查所有生成 URL 的地方,尤其是 get_site_url()api_url() 类函数,确保协议由 $_SERVER['HTTPS'] === 'on'$_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' 判断(注意:反向代理场景下,真实协议常在 X-Forwarded-Proto 头里)
  • Nginx 配置中需透传该头:proxy_set_header X-Forwarded-Proto $scheme;
  • 微信开发者工具「调试器 → Network」里点开任意请求,看 Request URL 是不是 https:// 开头;如果不是,问题一定出在 PHP 输出层

Let’s Encrypt 证书自动续期后没重载 Nginx,或文件权限变更

certbot 自动续期很常见,但续期成功 ≠ 服务已加载新证书。尤其当脚本用 root 续期,而 Nginx worker 进程以 www-datanginx 用户运行时,新证书文件可能因属主/权限不对导致无法读取。

立即学习PHP免费学习笔记(深入)”;

  • 续期后务必执行 nginx -t && systemctl reload nginx(Apache 对应 apachectl configtest && systemctl reload apache2
  • 检查证书文件权限:cert.pemprivkey.pem 应至少对 Nginx worker 用户可读(如 chmod 644 cert.pemchown root:www-data cert.pem
  • 查看 Nginx 错误日志:tail -f /var/log/nginx/error.log,搜索 SSL_CTX_use_certificate_chain_filePermission denied 关键词
证书本身没问题,但链、权限、协议判断、服务重载这四个环节只要漏一个,小程序就卡在「request domain not valid」或白屏。尤其注意微信服务端校验走的是标准 OpenSSL 行为,不认自签名、不认缺链、不认过期时间偏差超过 5 分钟的证书。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
nginx 重启
nginx 重启

nginx重启对于网站的运维来说是非常重要的,根据不同的需求,可以选择简单重启、平滑重启或定时重启等方式。本专题为大家提供nginx重启的相关的文章、下载、课程内容,供大家免费下载体验。

237

2023.07.27

nginx 配置详解
nginx 配置详解

Nginx的配置是指设置和调整Nginx服务器的行为和功能的过程。通过配置文件,可以定义虚拟主机、HTTP请求处理、反向代理、缓存和负载均衡等功能。Nginx的配置语法简洁而强大,允许管理员根据自己的需要进行灵活的调整。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

513

2023.08.04

nginx配置详解
nginx配置详解

NGINX与其他服务类似,因为它具有以特定格式编写的基于文本的配置文件。本专题为大家提供nginx配置相关的文章,大家可以免费学习。

543

2023.08.04

tomcat和nginx有哪些区别
tomcat和nginx有哪些区别

tomcat和nginx的区别:1、应用领域;2、性能;3、功能;4、配置;5、安全性;6、扩展性;7、部署复杂性;8、社区支持;9、成本;10、日志管理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

237

2024.02.23

nginx报404怎么解决
nginx报404怎么解决

当访问 nginx 网页服务器时遇到 404 错误,表明服务器无法找到请求资源,可以通过以下步骤解决:1. 检查文件是否存在且路径正确;2. 检查文件权限并更改为 644 或 755;3. 检查 nginx 配置,确保根目录设置正确、没有冲突配置等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

433

2024.07.09

Nginx报404错误解决方法
Nginx报404错误解决方法

解决方法:只需要加上这段配置:try_files $uri $uri/ /index.html;即可。想了解更多Nginx的相关内容,可以阅读本专题下面的文章。

3585

2024.08.07

nginx部署php项目教程汇总
nginx部署php项目教程汇总

本专题整合了nginx部署php项目教程汇总,阅读专题下面的文章了解更多详细内容。

44

2026.01.13

nginx配置文件详细教程
nginx配置文件详细教程

本专题整合了nginx配置文件相关教程详细汇总,阅读专题下面的文章了解更多详细内容。

60

2026.01.13

Rust异步编程与Tokio运行时实战
Rust异步编程与Tokio运行时实战

本专题聚焦 Rust 语言的异步编程模型,深入讲解 async/await 机制与 Tokio 运行时的核心原理。内容包括异步任务调度、Future 执行模型、并发安全、网络 IO 编程以及高并发场景下的性能优化。通过实战示例,帮助开发者使用 Rust 构建高性能、低延迟的后端服务与网络应用。

1

2026.02.11

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 11.5万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 11.2万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号