您的位置:首页 > 其它

APNS推送证书生成与验证

2016-04-13 13:57 211 查看
要进行推送服务的第一件事就是获取推送证书。它用来对你通过SSL与APNS通讯进行识别。

[b]一、在Mac上生成 Apple推送通知SSL证书:[/b]

1.1.登录到 iPhone Developer Connection Portal 并点击 App IDs

1.2.创建一个不使用通配符的 App ID 。通配符 ID 不能用于推送通知服务。例如,我们的iPhone程序ID像这样: AB123346CD.com.serverdensity.iphone

1.3.点击App ID旁的“Configure”,然后按下按钮生产 推送通知许可证。根据“向导”指导的步骤生成一个签名并上传,最后下载生成的许可证。此步骤在 Apple文档中 也有谈到。

1.4.通过双击.cer文件将你的 aps_developer_identity.cer 引入Keychain中。

1.5.在Mac上启动 Keychain助手,然后在login keychain中选择 Certificates分类。你将看到一个可扩展选项“Apple Development Push Services”

1.6.扩展此选项然后右击“Apple Development Push Services” > Export “Apple Development Push Services ID123”。保存为 apns-dev-cert.p12 文件。

1.7.扩展“Apple Development Push Services” 对“Private Key”做同样操作,保存为 apns-dev-key.p12 文件。

1.8.需要通过终端命令将这些文件转换为PEM格式:

openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12

openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12

1.9.如果你想要移除密码,要么在导出/转换时不要设定或者执行:

openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem

1.10.a 最后,你需要将键和许可文件合成为apns-dev.pem文件,此文件在连接到APNS时需要使用:

cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem

1.10.b java需要使用:

openssl pkcs12 -export -in apns-dev.pem -inkey apns-dev-key.pem -certfile CertificateSigningRequest.certSigningRequest -name“aps_developer_identity” -out aps_developer_identity.p12

[b]二、使用APNS 搭建苹果推送服务器错误:unable to connect to ssl://gateway.sandbox.push.apple.com:2195 错误[/b]

2.1:检查你的服务器的端口 2195是否已经开启,是否被关闭了或是防火墙阻止了!这点很重要;如果你不确定,又出现了错误,请先向你的服务器商询问一下,并开启;

2.2:确认你的证书没有问题:

在mac下执行以下命令:

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem -debug -showcerts -CAfile “apns-dev.pem”

openssl s_client -connect gateway.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem -debug -showcerts -CAfile “apns-dev.pem”

在上面进程执行完之后;可以随便输入一些字符串,如果关闭了,这时是正常的!如果没有关闭,会有错误信息打印;说明证书有问题;

证书生成:https://blog.serverdensity.com/how-to-build-an-apple-push-notification-provider-server-tutorial/

2.3:检查你的 推送程序是否有问题; 在这里推荐几个我测试成功的 php推送程序;

APNS-Pusher

ApnsPHP

easyapns

2.4:检查你的服务器与推送程序的环境配置是否相匹配;比如我的服务器使用Apache ,程序用php 那么 就要确认服务器 支持php 的 socket连接 openSSL模块;

[b]三、证书过期处理:(不需要升级客户端)[/b]

证书过期处理:push证书过期,不需要升级客户端。 具体步骤要点:

3.1. 删除老的push 的certificate。(一定要把老的证书删掉)

3.2. 在Identifiers -> App Ids 下创建新的push certificate。

测试创建:Development SSL Certificate

正式创建:Production SSL Certificate

3.3. 创建完成后,下载certificate,双击安装。

3.4. 把证书导出,上传到自己的apns服务器上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: