プッシュ通知に問題があります。チームメンバーによって作成されたp.12証明書があり、プッシュするデバイスのデバイストークンがあります。私はプッシュを行うにはjavapnsライブラリを使用しています(これも同じ結果とjavaapns libにを試してみました)が、私はこのエラーを取得しておいてください。Javapns/Javaapnsを使用してプッシュ通知を送信できないSSLハンドシェイクのエラー
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:136)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1720)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:632)
at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
at java.io.OutputStream.write(OutputStream.java:58)
at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:402)
at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:350)
at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:320)
at javapns.Push.sendPayload(Push.java:177)
at javapns.Push.combined(Push.java:100)
at PushTest.push(PushTest.java:43)
at PushTest.main(PushTest.java:25)
を、これは私が
try {
List<PushedNotification> n = Push.combined(text, 20, null, file, "********", false, token);
for (PushedNotification notification : n) {
if (notification.isSuccessful())
System.out.println("Push notification sent successfully to: " + notification.getDevice().getToken());
else {
String invalidToken = notification.getDevice().getToken();
Exception theProblem = notification.getException();
theProblem.printStackTrace();
ResponsePacket theErrorResponse = notification.getResponse();
if (theErrorResponse != null)
System.out.println(theErrorResponse.getMessage());
}
}
}
catch (CommunicationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (KeystoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
をテストするために使用していたコードです
私はcacertsキーストアに証明書をインポートすることを含め、いくつかの他の投稿から提案を読み込んで試しましたが、インポートにも失敗します。私は、Windowsマシン上でEclipseを使用して開発しています。
誰もがこの問題に精通していますか?私はsslを使用することに新しいので、おそらく私は何か間違っているか、別のマシンで生成された証明書を使用できないのでしょうか?
私の人生を保存してください。 – aybars
ちょうどうわー!キーチェーンからp12として驚いたことに証明書と秘密鍵をエクスポートできませんでした。しかし、あなたのソリューションはそうでした。 – Elendir