Невозможно преобразовать apple developer_identity.cer в формат .p12. Сертификат не соответствует закрытому ключу - PullRequest
6 голосов
/ 20 января 2012

У меня следующая проблема:

У меня есть эти файлы

developer_identity.cer

Team_Provisioning_Profile_.mobileprovision

Чтобы упаковать мобильное приложение Adobe Flex для iOS, мне нужно конвертировать сертификат .cer в формат .p12. После этого урока на help.adobe.com я всегда получаю эту проблему при выполнении последней команды openssl:

"сертификат не соответствует закрытому ключу
ошибка в pkcs12 "

Из того, что я понимаю, мне нужно как-то получить закрытый ключ, который использовался для создания сертификата (хорошо ли я понимаю ??). Как получить закрытый ключ mykey.key, если у меня есть только файлы .cer и .mobileprovision, упомянутые выше?

Ответы [ 4 ]

6 голосов
/ 20 января 2012

.cer не содержит ваш закрытый ключ, и вы не можете сгенерировать из него файл .p12. Вы должны экспортировать их обоих одновременно из цепочки для ключей. Если у вас есть только файл .cer, он бесполезен, и вам придется создать новый закрытый ключ и пару сертификатов.

5 голосов
/ 20 января 2012

Не уверен, что вы можете получить свой закрытый ключ, если вы его потеряли.

Ключ создается при запросе сертификата, чтобы вы могли запросить новый сертификат, который должен предоставить вам закрытый ключ.

3 голосов
/ 13 октября 2016

OpenSSL сообщает , что сертификат не соответствует закрытому ключу , когда сертификат закодирован в DER.Просто измените его на кодировку PEM, прежде чем создавать PKCS # 12.

  1. Создать пару ключей : openssl genrsa -out aps_development.key 2048

  2. Создать CSR : openssl req -new -sha256 -key aps_development.key -out aps_development.csr

  3. Загрузить CSR на портал разработчика, чтобы получить сертификат aps_development.cer

  4. Преобразовать сертификат : openssl x509 -inform DER -outform PEM -in aps_development.cer -out aps_development.pem

  5. Построить PKCS # 12 : openssl pkcs12 -inkey aps_development.key -in aps_development.pem -export -out aps_development.p12

0 голосов
/ 26 января 2016

Вы открываете программу Keychain Access, найденную в разделе Приложения / Утилиты. Под списком категорий справа вы выбираете «Мои сертификаты».

Это дает вам список всех сертификатов, установленных в вашей цепочке для ключей. Если вы не знаете, что такое брелок. В основном это защищенная база данных, содержащая ваши пароли для входа в систему, сертификаты, закрытые ключи и т. Д.

Когда вы загружаете сертификат, вы должны дважды щелкнуть по нему, чтобы импортировать его в цепочку для ключей.

Тогда вы можете найти свой сертификат в списке «Мои сертификаты». Если вы расширяете сертификат, для которого вы хотите найти закрытый ключ, он должен отображаться прямо под сертификатом.

Могу поспорить, что вы просто следовали руководству и выполнили шаги, и не совсем уверены, что именно вы сделали. Мы все делаем правильно; -)

Как это работает, вы сначала создаете открытый и закрытый ключи в программе доступа цепочки для ключей. Как правило, при использовании шифрования вы предоставляете кому-то свой открытый ключ, а затем он может зашифровать сообщение и отправить его вам. Только человек с закрытым ключом, который был создан вместе с этим открытым ключом, может расшифровать сообщение.

Но тот, кто получает ваш открытый ключ, не может знать наверняка, действительно ли он от вас. Именно здесь приходят сертификаты. Третья сторона, такая как Apple, которой доверяет большинство людей, подпишет ваш открытый ключ, который создает сертификат. Итак, что вы, вероятно, сделали ранее, отправили ваш открытый ключ в Apple, который подписал его, и, таким образом, создали сертификат, который вы можете загрузить.

Позвольте дать вам краткую версию:

  1. Key Chain Access используется для создания открытого / закрытого ключа
  2. Вы создаете запрос на подпись сертификата с помощью вашего открытого ключа. По сути, это файл, содержащий ваш открытый ключ, который просит Apple создать сертификат из этого открытого ключа.
  3. Apple добавляет кучу информации о вас и назначении открытого ключа, а также добавляет сам открытый ключ в файл, который становится сертификатом. Тогда яблоко подписывает это.
  4. Вы скачиваете сертификат.
  5. Дважды щелкните и импортируйте сертификат в свою цепочку для ключей.
...