无法连接到直播 'ssl://gateway.push.apple.com:2195'

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

我在 IOS 设备上遇到推送通知的 APNS php 代码问题,我有两个独立的开发和生产连接。

  1. 我已经通过添加 .pem 文件证书和 Passphares 在我的服务器上配置了开发连接,它的工作完美,我也收到了通知。看看我的开发配置:

Url: 'ssl://gateway.sandbox.push.apple.com:2195'

$push = new ApnsPHP_Push(
    ApnsPHP_Abstract::ENVIRONMENT_SANDBOX,
    'APNS_Dev_ISAS.pem'
);
$myNewLogger = new MyNewLogger();
$push->setLogger($myNewLogger);

// Set the Provider Certificate passphrase
$push->setProviderCertificatePassphrase('1234567');

$push->setRootCertificationAuthority('APNS_Dev_ISAS.pem');
$push->connect();

问题:

  1. 我通过添加以下参数配置生产连接,但出现连接错误:

Url: ssl://gateway.push.apple.com:2195

$push = new ApnsPHP_Push(
    ApnsPHP_Abstract::ENVIRONMENT_PRODUCTION,
    'APNS_PROD_ISAS.pem'
);
$myNewLogger = new MyNewLogger();
$push->setLogger($myNewLogger);

// Set the Provider Certificate passphrase
$push->setProviderCertificatePassphrase('12345678');

$push->setRootCertificationAuthority('APNS_PROD_ISAS.pem');
$push->connect();

连接错误: 信息:正在尝试 ssl://gateway.push.apple.com:2195...错误:无法连接到 'ssl://gateway.push.apple.com:2195':(0) 信息:重试连接 (1/3)...信息:尝试 ssl://gateway.push.apple.com:2195...错误:无法连接到 'ssl://gateway.push.apple.com:2195': (0) 信息:重试连接 (2/3)... 信息:正在尝试 ssl://gateway.push.apple.com:2195...错误:无法连接到 'ssl://gateway.push.apple.com:2195':(0) 信息:重试连接 (3/3)... 信息:正在尝试 ssl://gateway.push.apple.com:2195...错误:无法连接到 'ssl://gateway.push.apple.com:2195': (0)

我 google 这个问题,我找到了一些解决方案,我检查了所有,一切都很好,但没有成功。

任何帮助将不胜感激。提前致谢。

我为推送通知创建的证书 (.pem) 有问题。

解法: 在尝试解决相同问题几天后,我发现使用迷你字符密码创建证书可能是 1234,它非常适合您并成功连接到 IOS 推送通知服务器。

也许这会对其他人有所帮助。

谢谢。

我在执行 PHP 脚本时遇到了同样的问题。经过一些研究,我评论了这三个key-pair值'cafile','CN_match'和'ciphers'。

然后它开始正常工作。我希望这个回复对其他人也有用。

$contextOptions = array(
'ssl' => array(
    'verify_peer' => false, // You could skip all of the trouble by changing this to false, but it's WAY uncool for security reasons.
//    'cafile' => 'NiteVisionWebPushFile.pem',
//    'CN_match' => 'gateway.push.apple.com', // Change this to your certificates Common Name (or just comment this line out if not needed)
  //  'ciphers' => 'HIGH:!SSLv2:!SSLv3',
    'disable_compression' => true,
));