无法连接到'ssl://gateway.sandbox.push.apple.com:2195'。

8

我在我的Macbook Air上成功运行了APNS代码,但是在另一台电脑上无法运行:

我检查了以下内容: 1. .pem文件(具体而言) 2. 程序

不能工作的计算机是:

Windows 7,XAMPP,支持OpenSSL,无防火墙

EC2 Linux服务器,已开放2195和2196端口。

还可能有其他问题导致我在php代码中得到这个错误?

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

我知道可能是由于没有打开SSL,但我检查了phpInfo(),应该是正确的。

openssl 

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

我在EC2服务器上尝试使用telnet,它给出了以下提示:

telnet gateway.push.apple.com 2195
Trying 17.149.36.239...
Connected to gateway.push-apple.com.akadns.net.
Escape character is '^]'.
3个回答

2

如果您使用的是MAC,(在终端中内置服务器可以正常工作,但无法通过浏览器访问,所以我安装了MAMP。)

1.前往--->/Library/WebServer/Documents/----将phpckdev.pem文件一起复制到此处。

2.前往终端-->$open /private/etc-->前往--->apache2>originals>httpd.config文件--> **“#LoadModule php5_module libexec/apache2/libphp5.so”,删除“#”..(也许您还需要更改权限..!)

然后前往浏览器检查--> localhost/yourPhpFile.php

如果您使用的是Windows系统

1.安装WAMP

2.前往php.ini文件--->搜索这个“;extension=php_openssl.dll”行并删除分号“;”。

3.从右下角点击WAMP图标,前往PHP>PHP Extensions>选择php_openssl..

就这样..希望这可以帮助更多的寻求者。


我在我的 Mac 上没有网页服务器文件夹。 - inVINCEable

1
如果你遇到这样的错误:"无法找到套接字传输“ssl” - 你在配置PHP时是否忘记启用它?",那么请按照以下步骤操作: 1. 如果php没有启用ssl,则转到php.ini并将其更改为";extension=php_openssl.dll" "extension=php_openssl.dll"(删除分号),保存并运行程序。

我已经更新了我的描述,".pem"文件还是一样的,这会引起问题吗? - Rico Chan
在php信息中,有:opensslOpenSSL支持已启用 OpenSSL库版本为OpenSSL 1.0.1c 2012年5月10日 OpenSSL头文件版本为OpenSSL 0.9.8x 2012年5月10日 - Rico Chan
那么有什么方法吗?如果您需要更多信息,请让我去找~ 我真的想解决这个问题。 - Rico Chan

1
感谢您的帮助,到目前为止,我已经解决了这个问题。
问题在于我使用了相同的pem文件作为我的证书和根证书。
苹果推送通知需要使用不同于我的证书的根证书,在连接时需要同时使用两个证书,因此我需要获取苹果推送通知的根证书。
谢谢!

我遇到了同样的问题。您能否分享有关“根证书”和“我的证书”的更多信息?我上传了推送通知的生产和开发PEM文件。 - Mickey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接