You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

服务器端如何更新AAACertificateServices根证书 保障PHP脚本正常发送APNS推送

自研PHP脚本适配APNS AAACertificateServices根证书的配置方案

异常根因说明

当前出现的「接口返回成功但设备无法接收推送」的状态,是两类问题叠加导致:

  • 服务端SSL信任库未新增2020年5月12日版本的AAACertificateServices根证书,不满足苹果APNS HTTP/2连接的接入规则
  • 脚本为规避前期SSL报错,关闭了curl的证书校验逻辑,绕过了证书不匹配的连接异常,最终出现请求发送的假成功状态

核心配置要求

  • 无需重新申请或替换你自行向苹果签发的APNS SSL Provider证书、推送鉴权Key,本次更新仅涉及服务端SSL信任库的根证书配置
  • 信任库必须同时保留原有GeoTrust Global CA、新增AAACertificateServices两套根证书,禁止直接移除旧根证书,满足苹果的平滑过渡兼容要求
  • 必须开启PHP侧的SSL校验逻辑,禁止通过关闭校验的方式规避报错,否则会持续出现假成功的异常

分场景落地步骤

场景1:PHP脚本中手动指定了自定义CA信任文件

这类情况一般是curl配置中显式设置了CURLOPT_CAINFO参数,指向自定义的PEM格式根证书文件

  • 打开该自定义根证书PEM文件,完整保留原有所有证书内容(包含旧GeoTrust Global CA的证书块)
  • 将AAACertificateServices根证书的PEM内容追加到该文件末尾
  • 保存文件后无需调整脚本其他参数,配置即可生效

场景2:PHP脚本未手动指定CA路径,使用系统默认信任库

根据操作系统差异执行对应操作:

  • Debian/Ubuntu 系服务器:
    • 将AAACertificateServices根证书的PEM文件放置到/usr/local/share/ca-certificates/目录,设置文件权限为644
    • 执行update-ca-certificates命令刷新系统全局信任库
  • CentOS/RHEL 系服务器:
    • 将AAACertificateServices根证书的PEM文件放置到/etc/pki/ca-trust/source/anchors/目录
    • 执行update-ca-trust extract命令刷新系统全局信任库

配置校验流程

  1. 核查PHP curl基础配置,确认两项参数符合规则:
    • CURLOPT_SSL_VERIFYPEER 设置为 true
    • CURLOPT_SSL_VERIFYHOST 设置为 2
      若此前为跳过校验将两项设为false/0,必须修正为开启状态
  2. 执行基础连通性校验:在服务器终端发起对APNS生产接口https://api.push.apple.com的TLS握手请求,确认无SSL证书报错
  3. 运行自研PHP推送脚本发送测试通知,确认目标设备可正常接收推送

内容的提问来源于stack exchange,提问作者Crazy Developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 14:24:06