错误连接APNS服务器

时间:2015-09-06 07:42:59

标签: ios apple-push-notifications

我已启用推送通知服务的应用程序,直到现在都没有问题。但昨天我犯了一个错误,撤销了证书,通知也没有用。 然后我创建了一个新的apns推送生产证书(.p12文件),然后我将其放入我的服务器。但是现在我发现了以下错误:

  

System.IO.IOException:身份验证失败,因为远程端关闭了传输流。

在论坛中阅读我注意到不支持ssl3安全性,然后我尝试更改为tls。但是当我尝试这个时,我有这个错误:

  

远程端关闭传输流

我尝试使用带有2048位RSA的私钥生成.p12文件但没有结果。

这个mi服务器代码。我使用的是MoonApns。

certificate = If(String.IsNullOrEmpty(p12FilePassword), New X509Certificate2(File.ReadAllBytes(P12File)), New X509Certificate2(File.ReadAllBytes(P12File), p12FilePassword, X509KeyStorageFlags.MachineKeySet))
    _certificates = New X509Certificate2Collection()
    _certificates.Add(_certificate)

    Dim _apnsClient As TcpClientapnsClient = New TcpClient()
    _apnsClient.Connect(ProductionHost, NotificationPort)

    Dim _apnsStream As SslStream = New SslStream(_apnsClient.GetStream(), False, AddressOf validateServerCertificate, AddressOf SelectLocalCertificate)

    Try

        _apnsStream.AuthenticateAsClient(ProductionHost, _certificates, System.Security.Authentication.SslProtocols.Tls, False)

Catch ex As System.Security.Authentication.AuthenticationException
            Throw ex
        End Try

谢谢你的帮助。

此致

1 个答案:

答案 0 :(得分:1)

我找到了自己的解决方案!

如果您使用带有.p12证书的Moon APNS并且您需要使用tls安全性,则必须在apns服务器中安装apns_production.cer。如果你没有这个,你的系统可能会有套接字异常。

由于