Как создать сертификат P12 для раздачи iOS

106

У нас есть приложение для iOS, срок действия сертификата push-уведомлений которого истек, и мы пытаемся создать новый. Я создал новые сертификаты на портале Provisioning Portal (ios_developer.cer, ios_distribution.cer) и загрузил их. Я следовал инструкциям здесь, в Stack Overflow, чтобы преобразовать его в файлы PEM, а затем в файлы P12, но я застрял. Когда я затем пытаюсь преобразовать PEM в P12, ему нужен какой-то закрытый ключ, и я не знаю, где его получить.

Я также пробовал загрузить их в Keychain Access. Я читал, что вы можете экспортировать их как P12 оттуда, но когда я выполняю импорт, они нигде не отображаются.

РобГ
источник

Ответы:

128

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

Picciano
источник
12
Неважно; догадаться. Неудивительно, что у людей такие проблемы с этим ... это сбивает с толку!
RobG
14
Было бы неплохо, но p12 для меня неактивен :(
Rob
14
@Rob вам нужно выбрать закрытый ключ, а не весь сертификат. В брелках вверху слева выберите «Войти», затем в разделе «Категория» выберите «сертификаты», вы увидите, что у сертификата теперь есть стрелка, щелкните ее, и закрытый ключ отобразит щелчок правой кнопкой мыши и экспортирует шляпу как .p12
tutts
6
Я тоже не получаю раскрывающийся список. Я дважды щелкнул сертификат после загрузки, и он отображается в цепочке ключей входа в систему, но не под закрытым ключом. Я вижу это только в разделе «Сертификаты», я не вижу связи между ключом и сертификатом.
setherj
6
тоже самое. Без выпадающего списка,
p12 неактивен
76

Файлы .p12 используются для публикации приложения в Apple App Store.

A. Создайте файл CSR (.certSigningRequest)

  1. Открытый доступ к связке ключей из утилит
  2. На панели инструментов Keychain Access выберите Keychain Access -> Preference
  3. Во всплывающем окне выберите вкладку Сертификаты.
  4. Установите для «Протокол состояния онлайн-сертификатов» и «Список отозванных сертификатов» значение «Выкл.»
  5. Закрыть это окно
  6. Теперь на панели инструментов откройте « Связка ключей»> «Помощник по сертификации»> «Запросить сертификат в центре сертификации».
  7. Введите адрес электронной почты и обычное имя, которые вы использовали при регистрации в программе для разработчиков iOS.
  8. Оставьте поле CA Email пустым и выберите «Сохранено на диск» и «Я могу указать информацию о паре ключей».
  9. Нажмите Продолжить
  10. Выберите имя файла и место на жестком диске
  11. Нажмите Сохранить
  12. В следующем окне установите для параметра « Размер ключа» значение «2048 бит».
  13. Установите «Алгоритм» на «RSA».
  14. Нажмите Продолжить

Это создаст и сохранит ваш файл certSigningRequest (CSR) на вашем жестком диске. Открытый и закрытый ключи также будут созданы в Keychain Access с введенным общим именем.

Б. Создайте файл ".cer" в учетной записи разработчика iOS.

  1. Войдите в учетную запись разработчика Apple Нажмите «Сертификаты, идентификаторы и профили».
  2. Нажмите «Provisioning Profiles».
  3. В разделе «Сертификаты» нажмите «Производство».
  4. Нажмите кнопку «Добавить» (+) в правом верхнем углу главной панели.
  5. Теперь выберите «App Store and Ad Hoc».
  6. Нажмите Продолжить
  7. Нажмите «Выбрать файл» и найдите файл CSR, который вы создали на жестком диске.
  8. Нажмите " Создать"
  9. Нажмите Скачать, чтобы получить файл

C. Установите .cer и сгенерируйте сертификат .p12

  1. Найдите файл .cer, который вы скачали, и дважды щелкните
  2. В раскрывающемся меню «Вход » выберите « Вход » и нажмите «Добавить».
  3. Откройте KeyChain Access, и вы найдете профиль, созданный на шаге A.
  4. Вы можете развернуть профиль «закрытый ключ» (показывает добавленный вами сертификат)
  5. Выберите только эти два элемента (не открытый ключ)
  6. Щелкните правой кнопкой мыши и выберите «Экспорт 2 элементов…» во всплывающем окне.
  7. Теперь убедитесь, что формат файла - «.p12», и выберите имя файла и место назначения на жестком диске.
  8. Щелкните Сохранить. Теперь вам будет предложено установить пароль, но оставьте оба поля пустыми.
  9. Щелкните ОК. Теперь у вас на жестком диске есть файл .p12.

Обратите внимание, что если проблема не устранена, попробуйте также следующий шаг:

Если ваша связка ключей присутствует в iCloud, удалите все содержимое связки ключей из iCloud и выполните новую настройку в iCloud. Это должно сработать.

Джайпракаш Дубей
источник
Я случайно удалил свой закрытый ключ из ke-chain. так что теперь я не вижу закрытый ключ под сертификатом. у меня есть файл CSR, как снова установить закрытый ключ из CSR?
Avijit Nagare
1
Мне было очень сложно разобраться в процессе создания файла .p12 с помощью Apple, поскольку я являюсь парнем по Windows Phone, и этот пост действительно помог мне понять это.
Мохаммед Аамир К.
1
Очень полезные инструкции. Большое спасибо. Это сэкономило много времени.
Аликс
Зачем отключать «Протокол состояния онлайн-сертификатов», а другой - отключать?
Nate
1
Я решил эту проблему. Чтобы объяснить вам, что я сделал: убедитесь, что ваша связка ключей не отображается в iCloud. Как только он появится, есть риск, что у вас возникнет проблема, указанная выше. Я все деинсталлировал, сделал новую настройку, не используя данные в моем iCloud, и все заработало.
Назар Медейрос,
32

ОК, проблема решена! кажется, что когда я дважды щелкаю сертификат, он автоматически устанавливает его в цепочку ключей SYSTEM - я не знаю почему. Вместо этого я просто перетаскиваю сертификат в связку ключей LOGIN, и тогда все хорошо. Благодаря этой статье -> Добавление сертификатов в связку ключей и создание файла формата .p12 - алон розенфельд 10 месяцев назад

Авраам Лопес
источник
1
Ух ты. Я часами пытался понять это. Я бы потратил еще неделю, если бы не этот ответ.
B Seven
1
Огромное спасибо. Я потратил часы, пытаясь понять это.
SaltedBlowfish 09
1
Ага, потраченные впустую часы времени, сэкономленные :)
Sahan
29

вы не получите вариант развертывания, если не отфильтруете, выбрав (Сертификаты) в левом нижнем углу цепочки ключей

Albaiti
источник
5

Чтобы получить файл p12 таким образом ..

Шаг 1. В XCode > Перейти к настройкам проекта > Общие > Подписание раздела> Подписание сертификата

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

введите описание изображения здесь

Шаг 2. Откройте Связку ключей > в левом нижнем разделе Категория > Сертификаты.

Найдите сертификат и откройте дочерний элемент, щелкнув стрелку вниз, как показано на изображении.

введите описание изображения здесь

Шаг 3. Щелкните правой кнопкой мыши и экспортируйте как «Certificates.p12», указав свой пароль, например. «123456»

быстрый мальчик
источник
У меня нет этой стрелки, чтобы развернуться
Назар Медейрос
3

Для тех, у кого все еще есть эта проблема, решение для меня заключалось в том, чтобы НЕ выбирать и «Экспортировать 2 элемента» (ключ и сертификат), а просто экспортировать сертификат, который УЖЕ включает ключ. С 2016 года я думаю, что это способ сделать это, потому что предыдущие загрузки, которые работали с элементами экспорта 2, больше не работают.

Джессикардо
источник
Я не могу экспортировать только сертификат как p12 - вы уверены, что это правильный способ?
Сесил Родригес
Тоже самое. Это очень важно.
Gautam Jain