2010-12-29 6 views
24

По эстетическим соображениям я хотел бы использовать тот же секретный ключ, что и раньше, чтобы создать свой сертификат распространения, чтобы создать новый сертификат разработки (мой старый истек). Но «Как создать сертификат разработки» на портале инициализации iOS требуется, чтобы вы использовали Keychain Access для создания нового ключа. Когда я пытаюсь выполнить Keychain Access> Certificate Assistant> Запрос сертификата из центра сертификации с помощью «(мое имя ключа)», помощник сертификата фактически не создает файл CSR.Как я могу использовать существующий закрытый ключ для нового сертификата разработки iOS?

Кто-нибудь знает, можно ли это сделать, и если да, то как?

+0

Рассмотрите мой ответ ниже, который на самом деле предоставляет необходимые команды openssl –

+0

@simon ... У меня есть CSR со мной .. я прошу сертификат с этим же сейчас? – Saty

ответ

47

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

  1. Открыть брелка и выберите ваш личный ключ
  2. правой кнопкой мыши и выберите «Экспорт»
  3. Используйте тип p12 файла.

Запустите следующую команду openssl, чтобы преобразовать файл p12, защищенный паролем, в пем. openssl запросит пароль.

openssl pkcs12 -in your-newly-exported-p12-file.p12 -out your-newly-exported-p12-file-as-a-pem.pem -nodes 

Запустите следующую команду в файле pem, чтобы сгенерировать csr.

openssl req -new -key your-newly-exported-p12-file-as-a-pem.pem -out your-csr-to-submit-to-apple.csr 
+1

Отлично работает. Openssl запросит у вас кучу метаданных. Я поставил свой адрес электронной почты, но ничего больше. Кроме того, профили предоставления по-прежнему показывают «истек» после генерации нового сертификата.Чтобы обновить их, нажмите «Изменить», откройте «Идентификатор приложения» и выберите то же самое, что уже выбрано (красивый дизайн Apple), и нажмите «Сохранить». – DougW

+0

Спасибо ... Я пытался получить Push Notifications, работающий над iPhone, и как только я создал сертификат в профиле Provisioning Profile и загрузил его, я добавил его в Keychain Access. Затем я выбираю BOTH только что добавленный сертификат И закрытый ключ, используемый для создания сертификатов CSR, а затем щелкните правой кнопкой мыши и выберите Export 2-Items as p12. Затем я использовал строку «openssl pkcs12» выше, чтобы преобразовать из p12 в pem, который можно использовать для отправки push-уведомлений. – jsherk

+0

спасибо человеку, большое спасибо, что вы сэкономите свое время :) Thumbs up –

2

Вам комфортно работать с OpenSSL и командной строкой? Есть discussion в списке рассылки о создании CSR вручную. FWIW, я не смог создать CSR, используя выбранный ключ в Keychain Access/Certificate Assistant.

+0

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

+0

Рассмотрим мой ответ ниже, который фактически предоставляет команды openssl. –

4

Для создания CSR из существующего частного ключа в Keychain Access, нажмите правой кнопкой мыши (два пальца мыши) по закрытым ключом вы хотите использовать, и выберите запрос на сертификат из сертификата автортетных " (My Key Name) "

Затем введите адрес электронной почты пользователя и адрес электронной почты CA (я просто использую тот же адрес электронной почты для обоих), а затем выберите« Сохранено на диск ».

+0

Кажется, я кое-что вспомнил, что это не работает с порталом обеспечения Apple. –

+0

Работает для меня! :) – jsherk

+0

Я пробовал это много раз, и это не работает. Но, по-видимому, это для некоторых. (отмечено на всякий случай, если другие имеют такую ​​же неприятную проблему) – sandstrom

0

Сегодня я прошел через этот ад. Я хотел автоматизировать экспорт ключа для создания CSR через командную строку. Я нашел инструмент, написанный в c, который обещал, что я хотел: keychain_access. Я скомпилировал и играл с ним, но не смог экспортировать свой ключ распространения. Я снова создал инструмент с нуля с новейшей печатью атрибутов атрибутов Apple и keychain, но все еще не смог найти ключ по метке. Я смог перечислить его без поиска меток. В отчаянной попытке я переименовал ключ в инструмент доступа к keychain и переименовал его обратно в старое имя. После этого мой инструмент, наконец, пикетирует ключ по метке. А также правый щелчок REQUEST A CERTIFICATE FROM A CERTIFICATE AUTHORITY WITH "(My Key Name)" снова начал работать. Кажется, что имя было сохранено в другой кодировке или что-то в этом роде. Небезопасные яблоки, имеющие доступ к инструменту для доступа к цепочке ключей, смогли найти ключ!