无法连接到 ssl://gateway.push.apple.com:2195(连接超时)
Posted
技术标签:
【中文标题】无法连接到 ssl://gateway.push.apple.com:2195(连接超时)【英文标题】:Unable to connect to ssl://gateway.push.apple.com:2195 (Connection timed out) 【发布时间】:2012-03-28 15:48:06 【问题描述】:Apple 推送通知让我快疯了! 我按照Ray Wanderlich 教程开发了我的应用程序和测试通知,一切正常,直到我将文件 .pem 更改为发行版,并将连接字符串从 gateway.sandbox.push-apple.com 更改为 gateway.push-apple .com。
现在,如果我尝试发送消息,服务器会返回
Warning: stream_socket_client() [function.stream-socket-client]: unable to connect to ssl://gateway.push.apple.com:2195 (Connection timed out)
Failed to connect: 110 Connection timed out
php 文件和 .pem 文件位于 TMDHosting 上:我尝试询问他们端口号 2195 是否已关闭,因为谷歌搜索我发现错误意味着端口已关闭。
不过,我无法理解错误是与证书相关还是与服务器相关。
奇怪的是,如果我按照终端程序测试 .pem 文件,一切似乎都正常
CONNECTED(00000003)
depth=1 /C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
0 s:/C=US/ST=California/L=Cupertino/O=Apple Inc/OU=Internet Services/CN=gateway.push.apple.com
i:/C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C
1 s:/C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C
i:/O=Entrust.net/OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/OU=(c) 1999 Entrust.net Limited/CN=Entrust.net Certification Authority (2048)
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIEXTCC..........
-----END CERTIFICATE-----
subject=/C=US/ST=California/L=Cupertino/O=Apple Inc/OU=Internet Services/CN=gateway.push.apple.com
issuer=/C=US/O=Entrust, Inc./OU=www.entrust.net/rpa is incorporated by reference/OU=(c) 2009 Entrust, Inc./CN=Entrust Certification Authority - L1C
---
No client certificate CA names sent
---
SSL handshake has read 2541 bytes and written 2039 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 1024 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : AES256-SHA
Session-ID:
Session-ID-ctx:
Master-Key: CBA98981BB512ED2FDF0C003F4556FDDA564BEBBEFC6528C37D8E0336BC141AEC6D7E014568B334B8330FFFE266E8CB4
Key-Arg : None
Start Time: 1332945845
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
这让我觉得这不是 .pem 问题...
我错了吗?
我已经在这里阅读了所有类似的问题,并尝试将端口号从 2195 更改为 30,但没有任何变化。 提示?
编辑:我找到了that,似乎与我的问题相同:TMDHosting 告诉我
...您位于共享主机环境下并打开一个 为您提供端口将是不可能的。但是请注意,地址 您在端口 2195 上建立的连接与它不相关 我们的服务器。换句话说,您正在尝试与 远程服务器上的端口 2195。为了建立这个连接到 上面指定的端口,您应该确保该端口已打开 远程服务器上的传入连接,而不是服务器上的传入连接 您在我们这里的帐户所依赖的。
我需要 VPS 吗?
EDIT2:
在我遵循的教程中我发现
.. 你需要一个连接到互联网的服务器。推 通知总是由服务器发送。对于开发,您可以使用 您的 Mac 作为服务器(我们将在本教程中这样做),但对于 生产使用,您至少需要像 VPS(虚拟 私人服务器)。便宜的共享主机帐户还不够好。 您需要能够在服务器上运行后台进程,安装 SSL 证书,并且能够在 某些端口。大多数共享托管服务提供商不允许您这样做, 虽然如果你问他们可能会。但是,我真的建议使用 VPS 主机,如 Linode。
最后我想我确实需要一个 VPS。你能确定吗? 但为什么如果我使用沙盒服务器发送推送通知,它在没有 VPS 的情况下也能正常工作?
最后更新:(希望对某人有所帮助)似乎有一个错误,因为正确的是我不能将推送通知发送到沙箱也不发送到我的主机(TMDHosting)的生产服务器:我的共享主机没有打开 2195 端口。更换供应商:一切正常。
【问题讨论】:
最后,你用的是什么Provider?,我也有同样的问题:( 【参考方案1】:米维,
感谢这篇详细的文章。
我们遇到了类似的问题,这让我们发疯了。
当我们测试证书时,它似乎可以工作,除了: “验证错误:num=20:无法获取本地颁发者证书”
不管怎样,我们通过 openssl 的命令行测试得到一个有效的握手,就像你做的那样。
我们也可以让沙盒/开发证书正常工作。
您能否告诉我们您切换到哪个提供商,以防我们需要进行切换?
谢谢。
【讨论】:
我是意大利人:我问过他们:devise.it/en 的域(具有专用 IP 地址)。我不知道他们是否可以帮助您,无论如何我通过谷歌搜索找到了许多提供商,您可以在其中注册一个开放 2195 端口的域。也见这里“***.com/questions/1593820/…”。希望有帮助!以上是关于无法连接到 ssl://gateway.push.apple.com:2195(连接超时)的主要内容,如果未能解决你的问题,请参考以下文章