在LINUX下使用PHP从推送通知创建.pem文件

时间:2011-08-24 10:07:50

标签: php iphone apple-push-notifications

我正在尝试在我的应用程序中实现推送通知,为此我尝试使用easyApns,我按照步骤,并在我的Linux上实现类。但不幸的是,我还打赌一些与证书相关的错误。

我的错误是:

  

警告:stream_socket_client()[function.stream-socket-client]:SSL   代码1操作失败.OpenSSL错误消息:   错误:14094416:SSL例程:SSL3_READ_BYTES:sslv3警报证书   第401行/var/www/html/apns/classes/class_APNS.php中未知

     

警告:stream_socket_client()[function.stream-socket-client]:   无法在/var/www/html/apns/classes/class_APNS.php中启用加密   在第401行

     

警告:stream_socket_client()[function.stream-socket-client]:   无法连接到ssl://gateway.sandbox.push.apple.com:2195   /var/www/html/apns/classes/class_APNS.php上的(未知错误)在线   401

     

注意:无法连接到APNS:0。 1)APNS :: __ construct - >文件:   apns.php(第50行)2)APNS :: _ fetchMessages - >文件:class_APNS.php   (第217行)3)APNS :: _ pushMessage - >文件:class_APNS.php(第376行)4)   APNS :: _ triggerError - >文件:class_APNS.php(第405行)in   第509行/var/www/html/apns/classes/class_APNS.php

我认为这是与证书(.pem文件)相关的错误

使用以下命令生成我的.pem文件

  

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

它被放置在服务器(基于linux)上,并给予chmod 644权限

我应该做其他任何事情.....

4 个答案:

答案 0 :(得分:6)

您是否可以使用证书连接到apns?尝试以下命令检查:

  

$ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert YourSSLCertAndPrivateKey.pem -debug -showcerts -CAfile server-ca-cert.pem

如果命令终止,则无法连接。如果它继续运行并允许您键入套接字,则表示已成功连接。

答案 1 :(得分:1)

我发现要使命令工作,有必要:

  1. 创建证书签名请求(.csr)并将其上传到apple dev门户
  2. 下载提供的.p12许可证
  3. 使用证书+您的计算机私钥将其转换为pem文件
  4. 从Entrust下载并安装证书
  5. 参考: https://developer.apple.com/library/ios/#technotes/tn2265/_index.html

答案 2 :(得分:0)

我有同样的问题。 然后下载.p12文件 $ openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts 然后使用Nilesh命令: $ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert YourSSLCertAndPrivateKey.pem -debug -showcerts -CAfile server-ca-cert.pem 然后我得到这个错误

无法加载客户端证书私钥文件 140405386606400:错误:0906D06C:PEM例程:PEM_read_bio:无起始行:pem_lib.c:696:期望:任何私钥

感谢

答案 3 :(得分:0)

仔细检查之前生成.pem, 你正确导出" 2" Keychain中的商品:

Apple Development IOS推送服务+用户名密钥。

然后导出2个项目