个推证书
- 行业动态
- 2025-04-29
- 3742
功能、申请与配置全指南
个推证书的核心作用
个推(第三方推送服务商)证书是用于保障客户端与服务器之间通信安全的数字凭证,主要解决以下问题:
| 功能场景 | 说明 |
|—————-|———————————————————————-|
| 数据加密 | 通过SSL/TLS协议对推送消息进行加密,防止数据被中间人窃取或改动 |
| 身份验证 | 验证服务端真实性,避免客户端连接到伪造的推送服务器 |
| 完整性校验 | 使用证书签名机制确保消息在传输过程中未被改动 |
证书类型与适用场景
个推支持两类主流证书,需根据业务需求选择:
| 证书类型 | 特点 | 适用场景 |
|—————-|———————————————————————-|—————————|
| 单一域名证书 | 仅绑定单个主域名(如api.example.com
) | 中小型项目/单域名服务 |
| 通配符证书 | 支持主域名及所有子域名(如.example.com
) | 多产品线/动态子域名场景 |
注意:个推要求证书必须包含客户端SDK调用的API域名,且仅支持PEM/PFX格式。
证书申请流程(以通配符证书为例)
材料准备
- 企业营业执照扫描件
- 域名所有权证明(DNS解析记录/邮箱验证)
- CSR文件(证书签名请求)
申请步骤
| 步骤 | 操作说明 |
|———–|————————————————————————–|
| 选择CA | 推荐DigiCert、GlobalSign等支持OV通配符证书的权威机构 |
| 生成CSR | 使用OpenSSL命令生成:openssl req -newkey rsa:2048 -nodes -keyout key.pem -out csr.pem
|
| 提交审核 | 通过CA官网上传CSR及企业资料,完成域名验证(DNS/HTTP/Email方式) |
| 获取证书 | 下载包含私钥的PFX文件或PEM格式证书链 |上传至个推控制台
- 登录个推开发者后台,进入【证书管理】模块
- 填写证书名称、选择环境(生产/测试)
- 上传PFX文件并设置密码(建议强度:大写+小写+数字+符号,≥12位)
证书配置关键点
客户端集成
- iOS:将证书添加到Xcode的
Embedded Mobile App Extension
配置中 - Android:在
AndroidManifest.xml
的<application>
标签下配置android:networkSecurityConfig
<network-security-config> <domain-config cleartextTrafficPermitted="false"> <domain>api.example.com</domain> <trust-anchors> <certificates src="@raw/push_cert"/> </trust-anchors> </domain-config> </network-security-config>
- iOS:将证书添加到Xcode的
服务端部署
- Nginx配置示例:
server { listen 443 ssl; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; }
- Nginx配置示例:
证书生命周期管理
阶段 | 操作要点 |
---|---|
有效期监控 | 提前30天续订(个推强制要求证书剩余有效期>90天) |
更新流程 | 新证书下发后需重新上传至个推控制台,旧证书自动失效 |
备份策略 | 存储CSR、私钥(加密)、中间证书链,建议使用硬件安全模块(HSM)保管私钥 |
常见问题诊断
症状1:客户端报SSLHandshakeException
解决方案:
- 检查证书是否包含完整中间证书链
- 确认私钥算法与公钥匹配(RSA2048+SHA256)
- 通过SSL Labs工具检测服务器兼容性
症状2:推送成功率骤降
可能原因:
- 证书过期导致部分机型拒绝连接
- ATS/CTS策略拦截非合规证书
- 证书CN字段与API域名不匹配
FAQs
Q1:个推证书过期会影响哪些功能?
A1:证书过期后,客户端将无法建立安全连接,导致:
- 推送消息无法送达
- 设备注册失败(返回错误码403/404)
- 统计看板数据中断
需在到期前完成续期并重新部署。
Q2:通配符证书是否支持多级子域名?
A2:支持二级子域名(如api.test.example.com
),但需注意:
- CA机构需明确授权通配符域名段
- 部分老旧Android系统(<5.0)可能不支持通配符验证
建议在预发布