tags:

views:

1535

answers:

1

i tried to run using local mac machine but go the following errors

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

I got PEM certificated generated from other machine,

SO i am totally confused what i have to do now,

Please let me know what i need to do to run it in localhost

Thanks in advance

+1  A: 

I think that you may have exported the certificate, but not the private key from the .cer file that apple supplies.

These instructions from markbates might help out:

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 covert the p12 file to a pem file:

$ openssl pkcs12 -in cert.p12 -out apple_push_notification_production.pem -nodes -clcerts
jessecurry
hi jessecurryThanks a lot for your suggestionIts working great, except one warningWarning: socket_close(): supplied resource is not a valid Socket resource.Could you please tell me what might be the problem ?
Kamal Challa
That sounds like a php error. What version of php are you using? And what are you passing to socket_close()?
jessecurry
iam using pHP version 5$apns = stream_socket_client('ssl://' . $apnsHost . ':' . $apnsPort, $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext);socket_close($apns);
Kamal Challa
I'm not really a PHP guy, but I think that you might use fclose() when you create with stream_socket_client. I *think* that socket_close() works with socket_create(), don't take it too seriously though, I may be wrong.
jessecurry