在我的服务器上(Debian 3.2.54-2 x86_64 GNU / Linux),我使用此命令检查与APNS(Apple推送通知服务器)的连接:
telnet gateway.sandbox.push.apple.com 2195 Trying 17.172.232.46... Trying 17.172.232.45... Trying 17.172.232.18... telnet: Unable to connect to remote host: Connection timed out
ping gateway.sandbox.push.apple.com PING gateway.sandbox.push-apple.com.akadns.net (17.172.232.46) 56(84) bytes of data.
telnet无法帮助我连接。这是什么原因?
1)我是否需要请求管理员配置防火墙让telnet通过端口2195?
2)当我们使用telnet到具有给定端口的服务器时,我们这边的哪个端口将被打开?
telnet gateway.sandbox.push.apple.com 2195表示APNS上的端口2195将被打开,那么我们计算机上的哪个端口将打开以建立连接?
答案 0 :(得分:0)
使用OpenSSL并传递有效证书,出于测试目的,您可以使用自签名证书,例如,创建货币对key
和crt
:
$ openssl req -x509 -newkey rsa:2048 -sha256 -nodes -keyout example.key -out example.crt -subj "/CN=example.com" -days 10
然后创建cert.pem
$ cat example.key example.crt > cert.pem
稍后您可以测试:
$ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert cert.pem
这将连接并进行握手,但您将收到类似的验证错误:
CONNECTED(00000006)
...
verify error:num=20:unable to get local issuer certificate
答案 1 :(得分:-1)
我发现我的所有telnet命令行都失败了。 brew安装telnet,然后就可以了......
如下,
尝试17.188.166.24 ...
连接到gateway.sandbox.push-apple.com.akadns.net。
逃脱角色是'^]'。
连接被外国主机关闭。
现在,问题是。
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert MyPushChat.pem -key MyPushChatKey.pem
无法加载客户端证书私钥文件
140735947195336:错误:0906D06C:PEM例程:PEM_read_bio:无起始行:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-22.50.2/libressl/crypto/pem/pem_lib.c :704:期待:任何私人密钥
现在好了!!!
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert PushChatCert.pem -key PushChatKey.pem
请注意,这里有两行,两行,两行。