Home » Php » php – Unable to connect to 'ssl://gateway.sandbox.push.apple.com:2195'

php – Unable to connect to 'ssl://gateway.sandbox.push.apple.com:2195'

Posted by: admin July 12, 2020 Leave a comment


I sucessfully run the APNS code in my macbook air, but it turns out that I can not run it in my other computer:

I checked that these are the same:
1. .pem file ( to be specific )
2. Program

The computers can not work are:

Windows 7,XAMPP,OpenSSL supported,No firewall


EC2 Linux server with 2195 and 2196 opened

What might be other issues causing that I got this error in my php code?

Unable to connect to 'ssl://gateway.sandbox.push.apple.com:2195'

I know there might be cause by not opening SSL, but I checked the phpInfo(), it should be correct.


OpenSSL support enabled 
OpenSSL Library Version OpenSSL 1.0.1c 10 May 2012 
OpenSSL Header Version  OpenSSL 0.9.8x

I tried telnet in EC2 server, it gives:

telnet gateway.push.apple.com 2195
Connected to gateway.push-apple.com.akadns.net.
Escape character is '^]'.
How to&Answers:

In case of MAC,
(built-in server was working fine using terminal but not through browser, for me, so i installed MAMP.)

1.Go to—> /Library/WebServer/Documents/—-copy both php and ckdev.pem file here.

2 go to terminal–>$open /private/etc–>go to—>apache2>originals>httpd.config file–>
**”#LoadModule php5_module libexec/apache2/libphp5.so”
, remove “#“..(perhaps, you would have to change the permission also..!)

then goto browser and check–> localhost/yourPhpFile.php

In Case of Windows system,

1.Install WAMP,

2.goto php.ini file—>search for this “;extension=php_openssl.dll” line and remove semicolon “;“.

3.click WAMP icon from right-bottom goto PHP>PHP Extensions>select php_openssl..

That’s it..hope this may help further seekers.


  1. if you are getting an error like this “Unable to find the socket transport “ssl” – did you forget to enable it
    when you configured PHP?” then follow the next step

  2. if php has not got ssl enabled then goto php.ini and change this to “;extension=php_openssl.dll”
    “extension=php_openssl.dll” (remove the semicolon) and save it and run the program.


Thanks for help, so far I solved the solution.

The problem is that I used the same pem file for both my cert and the root cert.

There is a root cert that is different from my own cert, during connection, both cert is used so I have to get the root cert of apple push notification.