Lỗi chứng chỉ SSL: cert_unknown


11

Tôi muốn tạo máy chủ thông báo đẩy và trong khi cài đặt chứng chỉ SSL và tệp .p12 trong máy chủ, chúng tôi đang gặp phải lỗi dưới đây: Tôi muốn biết lỗi gì với chứng chỉ ssl vì tôi đang gặp lỗi cert_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)

//mã nguồn

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

        }


}

Tôi chỉ cố gắng để biết nếu có ai khác cũng tạo máy chủ phát triển thông báo đẩy, anh ấy có thể giúp tôi nếu tôi thiếu thứ gì đó không.
Người dùng97693321

Tôi đã trao cùng một chứng chỉ cho "đô thị", nhà cung cấp dịch vụ thông báo đẩy để nhận thông báo đẩy cho môi trường phát triển mà nó hoạt động. Vì vậy, tôi muốn những gì tôi đang làm sai để tạo máy chủ thông báo đẩy của chúng ta?
User97693321

Câu trả lời:


9

Việc tải khóa riêng dưới dạng yêu cầu của khách hàng vào ổ cắm SSL là điều bất thường. Cá nhân tôi nghĩ rằng bạn nên tải khóa công khai. Khóa riêng được tải bởi ổ cắm SSL ở phía máy chủ. Lý do duy nhất bạn cần có khóa riêng là hoạt động như một máy chủ và chấp nhận các kết nối từ đầu bên kia, nhưng dường như bạn không làm điều đó.

Điều này có thể giải thích thông báo "cert in format format".

Trong tài liệu tham khảo để:

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

6

Tôi nghĩ rằng lỗi này khá rõ ràng, chuỗi chứng chỉ của bạn không thực sự xác minh chứng chỉ của bạn đúng cách. Có lẽ bạn đang thiếu một hoặc nhiều chuỗi xâu chuỗi cần thiết để xác minh chứng chỉ cuối cùng của bạn?

Dù là gì đi nữa, lỗi cung cấp cho bạn hướng dẫn rất rõ ràng để "Xác minh rằng kho khóa bạn cung cấp được sản xuất theo thông số kỹ thuật ...".

Không có bất cứ ai trên trang web này có thể thêm vào ngoài việc đọc thông báo lỗi của bạn nói gì và thực hiện nó - không ai trong chúng ta có quả cầu pha lê, chúng tôi cũng không thể khắc phục vấn đề của bạn một cách kỳ diệu.

Tôi không thấy vấn đề trong việc đăng câu hỏi mà bạn không cung cấp cho chúng tôi nhiều thông tin nào ngoài thông báo lỗi RẤT rõ ràng cho bạn biết chính xác phải làm gì. Tất cả những gì chúng ta có thể nói là "làm những gì thông báo lỗi nói!"

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.