警告:stream_socket_client():无法设置私钥文件

2022-08-30 19:25:41

无法在终端中将PHP作为php简单推送运行时获得这些错误.php

Warning: stream_socket_client(): Unable to set private key file `/users/accenture/Desktop/newAPNS/ck.pem' in /users/accenture/Desktop/newAPNS/simplepush.php on line 22

Warning: stream_socket_client(): failed to create an SSL handle in /users/accenture/Desktop/newAPNS/simplepush.php on line 22

Warning: stream_socket_client(): Failed to enable crypto in /users/accenture/Desktop/newAPNS/simplepush.php on line 22

Warning: stream_socket_client(): unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Unknown error) in /users/accenture/Desktop/newAPNS/simplepush.php on line 22

Failed to connect: 0 

我使用raywenderlich文章创建了所有证书和pem文件,http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1#comments


答案 1

问题是pem文件不正确,我使用 http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1 创建了pem文件。创建p12文件和与p12创建pem文件对我来说不起作用。创建p12的正确过程,并使用p12创建pem文件作为波纹管

从 Apple 获得应用程序的证书后,将密钥和 Apple 证书导出为 p12 文件。下面是有关如何执行此操作的快速演练:

  1. 在“钥匙串访问”中点按证书旁边的显示箭头,然后选择证书和密钥。
  2. 右键单击并选择“导出 2 个项目...”。
  3. 从下拉列表中选择 p12 格式,并将其命名为 cert.p12。

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

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

这对我有用,现在我收到推送通知。


答案 2

http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1 将密钥文件转换为pem推荐的文件给我带来了问题。

运行

openssl pkcs12 -in keyname.p12 -out keyname.pem -nodes -clcerts

而不是

openssl pkcs12 -nocerts -out keyname.pem -in keyname.p12

解决了我的问题。


推荐