Reputation: 3346
while creating push notification provider for development pr we are facing the below error: I want to what is the wrong with certificate, because I have enabled the push notification then created the certificate but I am getting certificate_unknown error?
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)
//my code which I am using for push notification
/**
*
*/
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 = "password@1234";
/**
* @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();
}
}
}
Upvotes: 2
Views: 9496
Reputation: 521
I solved the issue in jdk 1.7 and using p12, just after changing the passwd length of p12 file greater than or equal 6. Otherwise, the following error happens: [[1] not transmitted to token 595d8..725bf javapns.communication.exceptions.InvalidCertificateChainException: Invalid certificate chain (Received fatal alert: certificate_unknown)! Verify that the keystore you provided was produced according to specs...]
Upvotes: 0
Reputation: 249
You should make sure to follow the procedure for preparing certificates documented on the official JavaPNS web site. Developers that follow this procedure get positive results.
Upvotes: 1
Reputation:
Try to load the public key in place of privatekey
private static String certificate = "D:/./trunk/Development/JavaPNS/src/com/applicationname/pns/privateKey.p12";
The private key is loaded by the SSL socket on the server side.
Upvotes: 2