Kesalahan Sertifikat SSL: Certificate_unknown

11

Saya ingin membuat server pemberitahuan push dan saat menginstal sertifikat SSL dan file .p12 di server kita menghadapi kesalahan di bawah ini: Saya ingin tahu apa yang salah dengan sertifikat ssl karena saya mendapatkan kesalahan 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)

//Kode sumber

    /**
     * 
     */
    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();
            }

        }


}
Pengguna97693321
sumber
Saya hanya mencoba untuk mengetahui apakah ada orang lain yang juga membuat server pengembangan push notification dia dapat membantu saya jika saya kehilangan sesuatu.
Pengguna97693321
Saya telah memberikan sertifikat yang sama kepada "urbanairship" penyedia layanan push notification untuk mendapatkan notifikasi push untuk lingkungan pengembangan yang berfungsi. Jadi saya ingin apa yang saya lakukan salah untuk membuat server push notification kami sendiri?
User97693321

Jawaban:

9

Tidak biasa memuat kunci pribadi sebagai permintaan klien ke soket SSL. Saya pribadi berpikir Anda harus memuat kunci publik. Kunci pribadi dimuat oleh soket SSL di sisi server. Satu-satunya alasan Anda memerlukan kunci pribadi adalah untuk bertindak seperti server dan menerima koneksi dari ujung yang lain, tetapi Anda tampaknya tidak melakukan itu.

Ini mungkin menjelaskan pesan "cert dalam format yang salah".

Mengacu pada:

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

Saya pikir kesalahannya cukup jelas, rantai sertifikat Anda tidak benar-benar memverifikasi sertifikat Anda dengan benar. Mungkin Anda kehilangan satu atau lebih sertifikat rantai yang diperlukan untuk memverifikasi sertifikat akhir Anda?

Apa pun itu, kesalahan memberi Anda instruksi yang sangat jelas untuk "Verifikasi bahwa keystore yang Anda berikan diproduksi sesuai dengan spesifikasi ...".

Tidak ada orang di situs ini yang dapat menambahkan selain untuk membaca apa yang dikatakan pesan kesalahan Anda dan melakukannya - tidak ada dari kita yang memiliki bola kristal, juga tidak dapat secara ajaib kita memperbaiki masalah Anda.

Saya tidak melihat gunanya memposting pertanyaan di mana Anda tidak memberi kami informasi lebih lanjut selain pesan kesalahan SANGAT jelas yang memberi tahu Anda apa yang harus dilakukan. Yang bisa kita katakan adalah "lakukan apa yang dikatakan pesan kesalahan!"

Bart B
sumber