Подтвердить что ты не робот

Ошибка терминала между подключением SSL-сертификата и закрытым ключом для настройки безопасного соединения:

Я пытаюсь сделать push-уведомление в своем приложении и после этой ссылки http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

моя система была успешно связана с telnet, но когда я ввожу запрос для подключения сертификата ssl и закрытого ключа, то обнаружил ошибку

$ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem
unable to load client certificate private key file
1301:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/OpenSSL098-44/src/crypto/pem/pem_lib.c:648:Expecting: ANY PRIVATE KEY

любой может сказать мне, какой тип ошибки и какое решение?

Заранее спасибо

4b9b3361

Ответ 1

Следующая команда достаточно хороша, чтобы проверить ключ /cert:

openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert push_development.pem

Ключевой частью является выбор как сертификата, так и закрытого ключа при экспорте .p12 из Keychain Access (вам будет предложено ввести 3 пароля, один для .p12, один для сертификата, один для закрытого ключа).

Чтобы преобразовать .p12 в .pem, следуйте инструкциям из Apple:

openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes

Ответ 2

Сначала я столкнулся с этой проблемой.

У нас есть два файла

1) один из aps_development.cer из яблока 2) Другой 1 из keychain access с общим именем, которое мы только что создали.

После этого оба конвертируют его в файлы .pem. Например, cert.pem и key.pem. После этого объедините эти два файла, используя команду

cat cert.pem key.pem > ck.pem

Сначала я открываю с помощью команды ниже.

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

Который возвращает мне указанную вами ошибку. После этого я пытаюсь использовать

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

Затем уже работает. Надеюсь это поможет.

Ответ 3

Я столкнулся с той же проблемой, когда я создавал файл PEM для Enterprise Distribution, но позже выяснил, что я создал файл p12 против ключа iPhone Distribution Certificate, хотя я должен был создать p12 против Apple IOS Push Servies. Надеюсь, это может решить проблему, если кто-то использовал ключ распространения.

Ответ 4

Здравствуйте, пожалуйста, следуйте нижеприведенным командам. шаг 1 openssl pkcs12 -clcerts -nokeys -out developer_key.pem -in developer_key.p12

Примечание: просто перетащите путь к файлу на терминал...

step2 openssl pkcs12 -nocerts -out apns_key.pem -in apns_key.p12

step3 openssl pkcs12 -in developer_key.p12 -out developer_key.pem -nodes -clcerts

step4 openssl pkcs12 -in apns_key.p12 -out apns_key.pem -nodes -clcerts

шаг 5 cat apns_key.pem developer_ket.pem > developer.pem

Сделайте тот же шаг для сертификатов распространения

После создания developer.pem и distribution.pem

Пожалуйста, проверьте оба файла ниже.

Step6 openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert developer.pem -debug -showcerts -CAfile "Entrust.net.Certification Authority (2048).pem

Ответ 5

Уведомление . Фраза Pass должна содержать более 3 символов.

Я только что исправил с помощью фразы 1234: D