warning: stream_socket_client(): unable to set private key file
Asked Answered
C

3

21

unable to get this getting these errors when running PHP in terminal as php simplepush.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 

I created all certificates and pem file by using raywenderlich article, http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1#comments

Cacciatore answered 12/11, 2014 at 15:20 Comment(4)
Can you show us the chmod of: /users/accenture/Desktop/newAPNS/?Shull
accenture:newAPNS accenture:$ php simplepush.phpCacciatore
usage: chmod [-fhv] [-R [-H | -L | -P]] [-a | +a | =a [i][# [ n]]] mode|entry file ... chmod [-fhv] [-R [-H | -L | -P]] [-E | -C | -N | -i | -I] file ...Cacciatore
now i successfully run the php and i'm getting notification, main problem is creating p12 file, i used to create p12 file using #1481943. this is workingCacciatore
C
66

Problem is pem file wasn't correct, I created pem file using http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1 . Creation of p12 file and with p12 creating pem file are not working for me. Correct process to create p12 and with p12 creating pem file as bellow

Once you have the certificate from Apple for your application, export your key and the apple certificate as p12 files. Here is a quick walkthrough on how to do this:

  1. Click the disclosure arrow next to your certificate in Keychain Access and select the certificate and the key.
  2. Right click and choose Export 2 items….
  3. Choose the p12 format from the drop down and name it cert.p12.

Now convert the p12 file to a pem file:

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

This is working for me, now I am getting a push notification.

Cacciatore answered 15/11, 2014 at 11:24 Comment(2)
@norganik Thank you Soooo much . This was grate .. it worksEzmeralda
This saved me so much time. Thank you so much!Oculomotor
J
9

Converting the key file to pem recommend in http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1 was causing problems for me.

Running

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

instead of the

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

solved my issues.

Jughead answered 10/2, 2015 at 21:22 Comment(0)
C
0

I have followed a youtube tutorial which is nearly same as raywenderlich article. I've just forgot to add PEM pass phrase. After adding it, as described here, it worked:

stream_context_set_option($ctx, 'ssl', 'passphrase', 'MyPassPhrase');
Cautery answered 16/3, 2016 at 18:21 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.