Apple推送通知服务

时间:2009-09-26 15:21:42

标签: php macos openssl apple-push-notifications

我尝试使用本地mac机器运行,但出现以下错误

Warning: stream_socket_client() [function.stream-socket-client]: Unable to set private key file `/Applications/XAMPP/xamppfiles/htdocs/apns/apns-dev.pem’ in /Applications/XAMPP/xamppfiles/htdocs/apns/apns.php on line 9

Warning: stream_socket_client() [function.stream-socket-client]: failed to create an SSL handle in /Applications/XAMPP/xamppfiles/htdocs/apns/apns.php on line 9

Warning: stream_socket_client() [function.stream-socket-client]: Failed to enable crypto in /Applications/XAMPP/xamppfiles/htdocs/apns/apns.php on line 9

Warning: stream_socket_client() [function.stream-socket-client]: unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in /Applications/XAMPP/xamppfiles/htdocs/apns/apns.php on line 9

Warning: socket_close() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/apns/apns.php on line 11

Warning: fclose() expects parameter 1 to be resource, boolean given in /Applications/XAMPP/xamppfiles/htdocs/apns/apns.php on line 12

我从其他机器获得了PEM认证,

所以我完全不知道我现在要做什么。

请告诉我在localhost中运行它需要做什么

1 个答案:

答案 0 :(得分:60)

我认为您可能已导出证书,但未导出Apple提供的.cer文件中的私钥。

来自markbates的这些说明可能会有所帮助:

  

获得证书后   Apple为您的应用程序,导出   你的钥匙和苹果证书   p12文件。这是一个快速的演练   如何做到这一点:

     
      
  1. 单击Keychain Access中证书旁边的显示箭头   并选择证书和   键。
  2.   
  3. 右键单击并选择Export 2 items…
  4.   
  5. 从下拉列表中选择p12格式,并将其命名为cert.p12
  6.         

    现在将p12文件转换为pem文件:

$ openssl pkcs12 -in cert.p12 -out apple_push_notification_production.pem -nodes -clcerts