SSL Sertifika Hatası: certificate_unknown


11

Push bildirim sunucusu oluşturmak istiyorum ve SSL sertifikası ve .p12 dosyasını sunucuya yüklerken aşağıdaki hatayla karşı karşıyayız: Ssl sertifikası ile ilgili sorunun ne olduğunu bilmek istiyorum çünkü certificate_unknown hatası alıyorum.

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)

//kaynak kodu

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

        }


}

Ben sadece başka biri de bir şey eksik varsa bana yardımcı olabilir push bildirim geliştirme sunucusu oluşturdu bilmek için çalışıyor.
Kullanıcı97693321

Ben çalıştım geliştirme ortamı için push bildirim almak için push bildirim servis sağlayıcı "urbanairship" için aynı sertifikalar verdim. Bu yüzden, kendi push bildirim sunucumuzu oluşturmak için yanlış yaptığım şeyi mi istiyorum?
Kullanıcı97693321

Yanıtlar:


9

Özel anahtarın bir SSL soketine istemci isteği olarak yüklenmesi olağandışıdır. Kişisel olarak açık anahtarı yüklemeniz gerektiğini düşünüyorum. Özel anahtar sunucu tarafındaki SSL soketi tarafından yüklenir. Özel anahtara ihtiyacınız olmasının tek nedeni, sunucu gibi davranmak ve diğer uçtan bağlantıları kabul etmektir, ancak bunu yapmıyorsunuz.

Bu, "yanlış biçimde sertifika" mesajını açıklayabilir.

Referans olarak:

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

6

Hatanın oldukça belirgin olduğunu düşünüyorum, sertifika zinciriniz aslında sertifikanızı doğru bir şekilde doğrulamıyor. Belki de nihai son sertifikanızı doğrulamak için gerekli zincirleme sertifikalarından birini veya daha fazlasını kaçırıyorsunuz?

Ne olursa olsun, hata size "Sağladığınız anahtar deposunun özelliklere göre üretildiğini doğrulayın ..." için çok net talimat verir.

Bu sitede kimsenin hata mesajınızın söylediklerini okumak ve bunu yapmaktan başka ekleyebileceği hiçbir şey yok - hiçbirimizin kristal topları yok, ne de sihirli bir şekilde sorununuzu çözemeyiz.

Bize tam olarak ne yapacağınızı söyleyen ÇOK açık bir hata mesajı dışında daha fazla bilgi vermediğiniz bir soru yayınlama noktasını görmüyorum. Tek söyleyebileceğimiz, "hata mesajının söylediklerini yapın!"

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.