2

私はこれに不慣れです。ここのように証明書署名要求を生成しました。次に、.p12形式の証明書ファイルを使用して、java-apnsを介してAppleプッシュ通知サーバーへの接続を確立しました。これが私が使用したコードです。

ApnsService service =
            APNS.newService()
                    .withCert("/home/ApplePush/apple.p12", "abc")
                    .withProductionDestination()
                    .build();
    service.testConnection();

しかし、私がこのコードを実行すると、次のような感覚が得られます。

「スレッド「メイン」の例外com.notnoop.exceptions.NetworkIOException:javax.net.ssl.SSLHandshakeException:致命的なアラートを受信しました:handshake_failure」。

私がした間違ったことは何ですか?

4

2 に答える 2

5

こんにちは私はまったく同じ問題を抱えています。あなたと同じように、私はraywenderlinchチュートリアルに従い、バックエンドでjava-apnsライブラリを使用してAPNSと通信しました。チュートリアルの証明書はphpに焦点を当てており、java-apnsの呼び出しには必要のない.pemファイルを使用して何かを行っています。

チュートリアルの最初に作成した最初の.p12証明書をjava-apnsにフィードしていました。そしてそれは私の間違いでした。あなたがする必要があるのは、アップル(aps_developer_identity.cer)によって生成された証明書から.p12を生成することです。それをダブルクリックし、キーストアマネージャーのmacアプリで.p12としてエクスポートします。パスワードを使用し、この.p12とパスワードを使用してjava-apnsに接続してみます。

もちろん、rayチュートリアルで説明されているポータルのプロビジョニングに関連するすべてが正しく行われている必要があります。

それが私のsslHandShakeExceptionを解決したものです。まったく同じ問題が発生しているかどうかはわかりませんが、問題が発生していることを願っています。この情報がお役に立てば幸いです。

于 2012-10-16T07:39:47.183 に答える
2

これは、間違った証明書を使用した場合に発生する可能性があります。つまり、特定のアプリの通知に対して特別に要求した証明書ではなく、プロビジョニングポータルの[証明書]の下にある証明書です。[アプリID]->(必要な特定のアプリ)-> [構成]で、[Appleプッシュ通知サービスを有効にする]をオンにし、[開発]または[製品]の[構成]ボタンをクリックします。これにより、この特定のアプリのプッシュ通知の証明書を要求するプロセスが実行されます。

于 2012-10-26T23:17:19.847 に答える