2

asp.net、C#を使用して通知をiphoneにプッシュしようとしています。このコード行で、「リモート パーティがトランスポート ストリームを閉じたため、認証に失敗しました」というエラーが表示されます。

sslStream.AuthenticateAsClient("gateway.sandbox.push.apple.com", clientCertificateCollection, SslProtocols.Ssl3, false);

誰でもこれで私を助けてくれますか。

前もって感謝します。

4

6 に答える 6

2

X509Certificate を X509Certificate2 に、X509CertificateCollection を X509Certificate2Collection に変更して試すことができます。

于 2011-07-19T16:00:54.330 に答える
0

個人的に私はこれを使用します:

sslStream.AuthenticateAsClient( "gateway.sandbox.push.apple.com"、clientCertificateCollection、SslProtocols.Default、false);

            using (TcpClient client = new TcpClient())
            {


                client.Connect("gateway.sandbox.push.apple.com", 2195);


                using (NetworkStream networkStream = client.GetStream())
                {
                    try
                    {

                        SslStream sslStream = new SslStream(client.GetStream(), false);


                        try
                        {
                            sslStream.AuthenticateAsClient("gateway.sandbox.push.apple.com", "gateway.sandbox.push.apple.com", SslProtocols.Default, false);
                          //building messages
                          sslStream.Write(msg);
                          sslStream.close();
于 2011-01-10T15:23:01.060 に答える
0

ここでの問題は、証明書をAppleからサーバー開発の証明書に変換していることだと思います.opensslで次のコマンドを使用してそれを行うことができます:

  • command1: openssl x509 -in "apn_developer_identity.cer" -inform DER -out "apn_developer_identity.pem" -outform PEM
  • コマンド 2: openssl pkcs12 -nocerts -in "pushkey1.p12" -out "pushkey1.pem" -passin pass:yourpass -passout pass:yourpass
  • コマンド 3: openssl pkcs12 -export -inkey "pushkey1.pem" -in "apn_developer_identity.pem" -out "apn_developer_identity.p12" -passin pass:yourpass -passout pass:yourpass
于 2015-07-27T08:13:20.120 に答える
0

以下のコードを試してください。

于 2016-04-28T04:32:14.103 に答える