2012-07-19 36 views
7

Tôi gặp sự cố tương tự như sau: Apple Push Notification in Production Environment : Unable to get local issuer certificate nhưng trong máy tính cục bộ của tôi. Tôi đi theo hướng dẫn này: http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12 nhưng trong bước nàyXác minh mã trả lại: 20 (không thể lấy chứng chỉ nhà phát hành địa phương)

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert PushChatCert.pem -key PushChatKey.pem 

Nó nói:

(Rất nhiều số và chữ cái) Xác nhận mã trở lại: 20 (không thể nhận được giấy chứng nhận phát hành địa phương)

Vấn đề là gì? Cảm ơn bạn

Trả lời

15

Vấn đề là bạn đang sử dụng máy chủ APNS "sandbox" được sử dụng để phát triển.

Để kiểm tra chứng chỉ sản xuất bạn phải kết nối với máy chủ APNS sản xuất. Bạn có thể sử dụng địa chỉ:

gateway.push.apple.com:2195 thay vì gateway.sandbox.push.apple.com:2195

+0

Tôi có cùng sự cố này, nhưng tôi đang sử dụng chứng chỉ phát triển mặc dù @gabcas – GangstaGraham

+0

Đảm bảo bạn đã thực hiện theo [các bước chính xác] (http://www.raywenderlich.com/3443/apple-push-notification-services -tutorial-part-12) để tạo/xuất chứng chỉ phát triển. Ngoài ra, bạn có thể thử chứng chỉ sản xuất và máy chủ sản xuất. Vui lòng cho chúng tôi biết nếu bạn thấy có nguyên nhân khác gây ra lỗi. – GabCas

+0

Trong lỗi, tôi đã sử dụng mật khẩu với khóa riêng, tôi nghĩ rằng nó là cần thiết, vì Keychain Access đã yêu cầu, nhưng khi tôi tạo khóa riêng mới mà không có mật khẩu, mọi thứ đều hoạt động. :) – GangstaGraham

14

Đây không phải là một vấn đề. Điều này, trên thực tế, là xác nhận rằng chứng chỉ của bạn đang hoạt động. Nếu nó là để không làm việc bạn sẽ nhận được một cái gì đó như thế này:

unable to load client certificate private key file 
<XXXXX>:error:<XXXX>:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:539: 
<XXXXX>:error:<XXXX>:PKCS12 routines:PKCS12_pbe_crypt:pkcs12 cipherfinal error:p12_decr.c:104: 
<XXXXX>:error:<XXXX>:PKCS12 routines:PKCS12_item_decrypt_d2i:pkcs12 pbe crypt error:p12_decr.c:130: 
<XXXXX>:error:<XXXX>:PEM routines:PEM_READ_BIO_PRIVATEKEY:ASN1 lib:pem_pkey.c:132: 

Xem hướng dẫn này cho một ví dụ http://lessons.runrev.com/s/lessons/m/4069/l/53405-how-do-i-use-push-notifications-with-ios

Hoặc nếu bạn muốn nghe nó từ ray http://www.raywenderlich.com/forums/viewtopic.php?t=380&p=7734

Có một giải thích về những gì đang diễn ra ở đây: OpenSSL: unable to verify the first certificate for Experian URL

Mặc dù vậy, chứng chỉ sẽ hoạt động nếu bạn đang sử dụng ứng dụng khách hỗ trợ chứng chỉ di scovery, và bạn không cần openssl để làm việc, chỉ để xác nhận rằng bạn đã thực hiện quyền cert của bạn, và bạn đã làm điều đó.

0

Có lẽ bạn đang sử dụng chứng chỉ phát triển, bạn cần sử dụng chứng chỉ dịch vụ đẩy phát triển iOS của iOS và bạn cũng cần tạo .p12 từ chứng chỉ này chứ không phải từ chứng chỉ phát triển.

Các vấn đề liên quan