我正在尝试在我的应用程序中实现推送通知,为此我尝试使用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权限
我应该做其他任何事情.....
答案 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)
我发现要使命令工作,有必要:
参考: 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个项目