我试图在我的应用程序中实现推送通知,为此我尝试使用easyApns,我按照步骤,并在我的linux上实现类。但不幸的是,我仍然打赌一些与证书有关的错误。
my error is:
警告:stream_socket_client() [function。stream-socket-client]: SSL操作失败,代码1。OpenSSL错误信息:错误:14094416:SSL例程:SSL3_READ_BYTES:sslv3警报证书/var/www/html/apns/classes/class_apns .php on line 401
警告: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
Notice: Failed to connect to APNS: 0。1) APNS::__construct -> File:2) APNS::_fetchMessages -> File: class_APNS.phpAPNS::_pushMessage -> File: class_APNS.php(第376行)APNS::_triggerError -> File: class_APNS.php(第405行)in/var/www/html/apns/classes/class_apns .php第509行
我猜这是一个与证书(.pem文件)有关的错误
我的.pem文件是使用以下命令
生成的openssl pkcs12 -in apns-dev-cert。P12 -out apns-dev-cert。Pem -nodes -clcerts
,它被放置在服务器上(基于linux),并赋予chmod 644权限
我还需要做些什么吗.....
您是否能够使用您的证书连接到apns ?试试下面的命令来检查:
$ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert YourSSLCertAndPrivateKey。. pem -debug -showcerts -CAfile server-ca-cert. pempem
如果命令终止,则无法连接。如果它继续运行并允许您在套接字中输入,则表示您已成功连接。
我已经发现,要使命令工作,必须:
- 创建一个证书签名请求(.csr)并将其上传到apple dev portal
- 下载提供的。p12许可证
- 使用证书+您的机器私钥将其转换为pem文件
- 从Entrust 下载并安装证书
参考:https://developer.apple.com/library/ios/技术说明/tn2265 _index.html
我有同样的问题。然后下载。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。-showcerts -CAfile server-ca-cert.pem然后我得到这个错误
无法加载客户端证书私钥文件140405386606400:错误:0906D06C:PEM例程:PEM_read_bio:no start line:pem_lib.c:696: expected: ANY PRIVATE KEY
谢谢
在生成.pem之前,请仔细检查。你正确地从Keychain导出了"2"项:
Apple Development IOS Push Services +用户名key。
然后导出2项