Skip to content

APNs USERTrust RSA证书更新处理

问题陈述

苹果官方宣布将更新 APNs 推送服务的 TLS 证书,采用新签发的 USERTrust RSA 认证机构证书,时间点为:

  • 沙盒环境:2025年1月20日
  • 生产环境:2025年2月24日

企业分发应用(Enterprise Program)若使用 push token 方式发送推送通知,需进行兼容性验证:

  • 客户端 App 是否需要更新?
  • 推送服务器是否需要调整证书配置?

如未及时处理,2025年苹果更新证书后,推送服务器与 APNs 的 HTTPS 连接可能失败,导致推送功能中断。

解决方案及操作步骤

✅ 客户端应用(App 侧)

TIP

无需任何操作
使用 APNs token 认证(auth tokens)的 iOS 应用本身无需修改。新证书影响的是服务端与苹果服务器间通信,App 安装包无需更新。

✅ 推送服务器(服务端解决方案)

根据服务器环境选择操作方式:

方案1:使用托管推送服务(推荐)

WARNING

若使用 AWS SNS、Firebase Cloud Messaging 等第三方服务:

  • 服务商通常自动管理证书
  • 仍需联系服务商确认兼容性

例如 AWS SNS 官方文档确认会自动处理 APNs 证书变更

bash
# 托管服务无需手动更新证书
方案2:自建Linux推送服务器

需将新证书添加到系统信任库:

bash
# 1. 下载新证书放入锚定目录
sudo cp USERTrust_RSACert.crt /etc/pki/ca-trust/source/anchors/

# 2. 更新信任库
sudo update-ca-trust

# 3. 重启推送服务(如PHP-FPM/Nginx)
sudo systemctl restart php-fpm.service
bash
# 1. 下载新证书放入指定目录
sudo cp USERTrust_RSACert.crt /usr/local/share/ca-certificates/

# 2. 更新信任库
sudo update-ca-certificates

# 3. 重启相关服务
sudo systemctl restart apache2

提示:

  1. 新证书需从苹果开发者网站下载
  2. 操作需在 2025年1月20日(沙盒)前 完成测试验证
  3. 生产环境需在 2025年2月24日前 完成部署

验证方法

执行以下命令检查系统是否已信任新证书:

bash
# 使用 curl 测试 APNs 连接(示例)
curl -vI https://api.sandbox.push.apple.com

# 输出中查找信任链信息
*  CAfile: /etc/ssl/certs/ca-certificates.crt
*  CApath: none

关键注意事项

  1. 开发语言无关性
    无论使用 PHP(curl)、Node.js、Python 还是其他语言,只要调用 Linux 系统级的 HTTPS 库,均依赖系统的信任库证书配置。

  2. 证书双重验证
    需验证沙盒和生产环境证书是否均支持:

bash
# 检查沙盒证书
openssl s_client -connect api.sandbox.push.apple.com:443 -servername api.sandbox.push.apple.com

# 检查生产证书
openssl s_client -connect api.push.apple.com:443 -servername api.push.apple.com
  1. 企业开发特殊要求
    苹果工程师强调

证书安装方式因操作系统和推送框架而异,需服务器管理员配合排查。
建议提前进行兼容性测试,避免业务中断。

总结操作清单

角色任务紧急度
客户端开发确认使用 token 认证无需改动
后端运维更新 Linux 信任库(非托管方案)
架构师验证第三方推送服务兼容性
测试团队沙盒环境推送全链路测试