2009-09-18 64 views
3

我遵循的指示:iPhone推送通知无法连接到SSL服务器

How To Build An Apple Push Notification Provider Server 当我在我的MacOSX或Windows上使用并行桌面运行PHP脚本,该脚本工作。但只要我在我的托管上运行它,我得到的消息:

Warning: stream_socket_client() [function.stream-socket-client]: unable to connect to ssl://gateway.sandbox.push.apple.com:2195 (Connection timed out) in provider.php on line 23 
Failed to connect 110 Connection timed out 

这是否与证书有关?如果是这样,我怎么能做一个证书,可以在我的主机所在的计算机上工作。

+0

我已经在服务器上安装了.pem证书,仍然没有工作。我遇到了与上面相同的问题。 我能够在mylocal XAMPP服务器上运行,但不能在外部托管服务器上运行。 请帮我.. – Biranchi 2009-11-24 12:56:14

回答

4

你的托管服务提供商可能不允许端口2195和2196的大多数共享主机提供商没有出站连接有这些端口打开。您可能需要获得VPS,或者您也可以尝试提供Apple Notification Service集成的UrbanAhiphip,并且每月可免费获得一定限制。

+0

有没有办法让cpanel中的这些端口? – 2013-01-16 14:36:58

+0

@RaviJethva我不知道任何方法来通过cpanel启用它们。您最好的选择是直接联系您的相应提供商,并询问他们是否拥有可以打开这些端口的托管计划。 – 2013-03-07 23:49:47

+0

@Mups在另一个答案中还指出,他可以通过利用主机提供商提供的专用IP来打开该端口。 – 2013-03-07 23:51:31

1

是的,你需要一个证书。这在Apple文档中有解释。一个问题,您可能需要将cert转换为.pem格式。 .pem证书需要包含证书和RSA私钥。

这里是一个很好的网站阅读:http://www.macoscoders.com/2009/05/17/iphone-apple-push-notification-service-apns/

我的PEM的样子:

Bag Attributes 
    friendlyName: Apple Development Push Services: <my data> 
    localKeyID: <my local key in hexascii> 
subject=/UID=com.my.push.sandbox1/CN=Apple Development Push Services: <my data>/C=US 
issuer=/C=US/O=Apple Inc./OU=Apple Worldwide Developer Relations/CN=Apple Worldwide Developer Relations Certification Authority 
-----BEGIN CERTIFICATE----- 
<my certificate data omitted> 
-----END CERTIFICATE----- 
-----BEGIN RSA PRIVATE KEY----- 
<my key data omitted> 
-----END RSA PRIVATE KEY----- 
+1

谢谢你zaph的回应。我有证书和.pem文件,否则它不会在我的本地计算机上工作,但是如果我将该证书与我的php文件一起上载到我的主机中。它给出了上述超时。我需要在主机上使用不同的证书吗?因为我只能通过FTP访问它。 – Mark 2009-09-19 21:42:12

+0

检查.pem文件是否包含两个部分。在本地Mac上,它可能会从Keychain获取私钥。我在另一台没有Keychain条目的机器上运行。 – zaph 2009-09-20 17:46:02

1

我发现最简单和最便宜的解决方案是从您的托管公司请求一个专用的IP。在Blue Host上,每个月的收入是2.50美元。有了这个专用的IP,他们愿意打开端口2195和2196.

+0

我可以免费获得吗?有没有其他解决方案? – NullData 2014-10-26 18:10:54

相关问题