Ответ 1
Моя проблема заключалась в том, что в случае some различные сертификаты добавлялись в цепочку ключей System, а не в "login".
Выбрав "login", а затем добавив их с маленьким "+" (рядом с i), они были добавлены в нужное место.
Я консультировался со многими источниками и до сих пор не могу понять этого.
http://code.google.com/p/apns-php/wiki/CertificateCreation
В основном после того, как я загрузил SSL-сертификат разработки Push-сервера из iOS Provisioning Portal > App IDS (с включенной услугой "Включить службу Apple Push Notification" ), и я дважды кликаю по сертификату (имя файла aps_development.cer), чтобы открыть его, откроется Keychain. Затем я выбираю "login" и "Certificates" на левых панелях. На правой панели я вижу "Apple Development IOS Push Services:...", и все инструкции, с которыми я консультировался до сих пор, сказали мне "расширить" эту опцию, щелкнув стрелку рядом с именем, чтобы открыть закрытый ключ, но для этого сертификата не существует опции расширения. Может ли кто-нибудь помочь мне найти этот закрытый ключ? Я загрузил неправильный сертификат?
Спасибо
Моя проблема заключалась в том, что в случае some различные сертификаты добавлялись в цепочку ключей System, а не в "login".
Выбрав "login", а затем добавив их с маленьким "+" (рядом с i), они были добавлены в нужное место.
Я заметил, что значок расширения фактически отображается при нажатии "Мои сертификаты" в меню слева ( "Брелок" ).
С чем я столкнулся, когда я создавал CSR файл, я помещал Common Name в пробел. И сертификаты, созданные этим CSR файлом, не отображали стрелку expand
в Keychain Access
После того, как я создал новый CDR файл с коротким общим именем и обновленными сертификатами, он хорошо установился и имеет закрытый ключ.
на машине, к которой вы пытаетесь получить доступ к этому сертификату, есть ли у вас ключ, с которым вы подписали запрос подписи сертификата (на основе которого яблоко создало этот сертификат для вас)?
Вы должны спросить того, кто создал этот сертификат. Это, вероятно, единственный способ получить секретный ключ.
У меня была такая же проблема. Двойной щелчок по файлу .cer поместил сертификат в цепочку ключей, но не отобразил личный ключ (и эта запись не была расширена).
Я исправил проблему с помощью следующих шагов:
... и voila, теперь он появляется с закрытым ключом. Это довольно странно, так как в любом случае он открывает доступ к Keychain.
Откройте доступ к цепочке ключей и выполните шаги, указанные ниже...
Удалить сертификат, который не имеет закрытого ключа. Откройте Вход в Keychain, затем перетащите файл из Finder в Login и ваш сертификат теперь имеет закрытый ключ!
Я просто дважды щелкнул по сертификату. В итоге мне помогло перетащить сертификат в соответствующий раздел.
Более подробную информацию можно найти в этом блоге: Как экспортировать сертификат Push Push в файл p12?
Моя проблема заключалась в том, что я не смотрел "Сертификаты", но в разделе "Все элементы":
Оставив это здесь, надеясь, что это поможет кому-то с похожими симптомами. Когда вы нажмете aps.cer
, чтобы открыть его с помощью Keychain Assistant, он предложит вам выбрать диалог для импорта сертификата. Для меня закрытый ключ не отображался в складном для любого другого ключа, чем login
(то есть другие, такие как System
или System Roots
, казалось, отображали только сертификат).
Еще один ответ на этот вопрос...
После того, как вы создадите свой CSR, прежде чем загружать его на сайт Apple, вы можете посмотреть в Keychain Access под logins → и увидеть, что вы уже иметь новые общедоступные и закрытые ключи с тем же именем, что и в новом CSR CommonName.
Поэтому, когда вы загружаете CSR в Apple, затем загружайте сертификат, затем дважды щелкните сертификат, доступ к Keychain просто соответствует этому загруженному сертификату с открытым ключом, который уже был в вашем списке Keychain Access, и он присоединяет закрытый ключ.
Итак, если вы не сможете получить закрытый ключ после всего этого, попробуйте воссоздать свой CSR.
Странная вещь для меня в том, что я читал, что вы можете использовать один и тот же CSR каждый раз, когда вы воссоздаете свой сертификат, но по какой-то причине это не работает для меня. Возможно, из-за того, что старый устаревший сертификат, который я заменил, больше не был в моем списке доступа к ключам и поэтому поэтому не было пары открытых/закрытых ключей, которая соответствовала новому сгенерированному сертификату.
Файл .cer не содержит закрытый ключ, только открытый. Таким образом, все эти решения актуальны только с компьютера, выпустившего исходный CSR, или с компьютера, на котором исходная пара ключей сертификата была импортирована в связку ключей.
Если у вас нет доступа к закрытому ключу, вам нужно будет сгенерировать новый сертификат. Однако вам не нужно аннулировать старый сертификат на портале сертификатов Apple, так как вы можете использовать несколько сертификатов APNS для одного и того же идентификатора приложения.
Удалите сертификат, у которого нет закрытого ключа. Открыть логин в связке ключей
Перетащите эти два сертификата в связку ключей
Ух ты есть личный ключ в вашей цепочке для ключей.