2

開発のプッシュ通知プロバイダを作成する際に、以下のエラーが発生しました: 私はプッシュ通知を有効にして証明書を作成したが、証明書を取得していますエラー?SSL証明書のエラー:certificate_unknown

main, RECV TLSv1 ALERT: fatal, certificate_unknown 
main, called closeSocket() 
main, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: certificate_unknown 
Error pushing notification(s): 
Invalid certificate chain (Received fatal alert: certificate_unknown)! Verify that the keystore you provided was produced according to specs... 
     at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:359) 
     at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:301) 
     at javapns.notification.PushNotificationManager.sendNotification(PushNotificationManager.java:258) 
     at javapns.Push.payload(Push.java:122) 
     at javapns.Push.alert(Push.java:36) 
     at com.applicationname.pns.PushNotification.main(PushNotification.java:31) 

//私はプッシュ通知のため

/** 
* 
*/ 
package com.applicationname.pns; 

import org.json.JSONException; 

import javapns.Push; 
import javapns.devices.Device; 
import javapns.notification.Payload; 
import javapns.notification.PushNotificationManager; 
import javapns.notification.PushNotificationPayload; 


public class PushNotification 
{ 
    private static final String HOST = "gateway.sandbox.push.apple.com"; 
    private static final int PORT = 2195; 
    private static final int BADGE = 66; 
    private static String iPhoneId = "5696ee2fa44c61fd21a7987d2b1bcf57faa1603e63cb57ff204b158fb90d28a3"; 
    private static String certificate = "D:/./trunk/Development/JavaPNS/src/com/applicationname/pns/privateKey.p12"; 
    private static String passwd = "[email protected]"; 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) 
    { 
     Push.alert("Hello World!", certificate, passwd, false,iPhoneId); 

     PushNotificationPayload payLoad = new PushNotificationPayload(); 

     try 
     { 
      payLoad.addAlert("Hello World!"); 
      payLoad.addBadge(10); 
     } 
     catch (JSONException e) 
     { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

    } 


} 
+0

いくつかのコードを表示できますか? –

+0

私はソースコードを追加しました。 – User97693321

+0

あなたは 'javax.net.ssl.SSLHandshakeException'を取得しますが、あなたのコードはネットワークを含んでいないようです。例外は貼り付けたコードとまったく同じですか? –

答えて

2

を使用しています私のコードは、秘密鍵がSSLによってロードされるのPrivateKey

private static String certificate = "D:/./trunk/Development/JavaPNS/src/com/applicationname/pns/privateKey.p12"; 

の代わりに公開鍵をロードするようにしてくださいサーバー側のソケット。

1

正式なJavaPNS Webサイトに記載されている証明書を準備する場合は、必ずprocedureに従ってください。この手順に従う開発者は肯定的な結果を得ます。

0

p12ファイルのパスワードの長さを6以上に変更した直後に、jdk 1.7とp12を使用して問題を解決しました。それ以外の場合、次のエラーが発生します。 [[1]はトークン595d8..725bf javapns.communication.exceptions.InvalidCertificateChainException:無効な証明書チェーン(受信致命的なアラート:certificate_unknown)!指定したキーストアが仕様に従って生成されたことを確認してください]]