Создать файл .pem, используемый для настройки push-уведомлений Apple.


290

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

Ответы:


936

Чтобы включить Push Notification для вашего приложения iOS, вам необходимо создать и загрузить нам сертификат Apple Push Notification (.pem), чтобы мы могли подключаться к Apple Push Server от вашего имени.

( Обновленная версия с обновленными снимками экрана здесь )

Шаг 1. Войдите на портал обеспечения iOS, нажмите «Сертификаты» на левой навигационной панели. Затем нажмите кнопку «+».

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

Шаг 2: Выберите опцию SSL (производство) службы Apple Push Notification в разделе «Распространение», затем нажмите кнопку «Продолжить»

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

Шаг 3: Выберите идентификатор приложения, который вы хотите использовать для своего приложения BYO (Как создать идентификатор приложения), затем нажмите «Продолжить», чтобы перейти к следующему шагу.

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

Шаг 4. Выполните шаги «О создании запроса на подпись сертификата (CSR)», чтобы создать запрос на подпись сертификата.

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

В дополнение к инструкции, предоставленной Apple. Вот некоторые дополнительные скриншоты, которые помогут вам выполнить необходимые шаги:

Шаг 4 Дополнительный снимок экрана 1: перейдите к Ассистенту Сертификатов Keychain Access на вашем Mac.

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

Шаг 4 Дополнительный снимок экрана 2: Заполните информацию о сертификате. Нажмите Продолжить.

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

Шаг 5: Загрузите файл «.certSigningRequest», созданный на шаге 4, затем нажмите кнопку «Создать».

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

Шаг 6: Нажмите «Готово», чтобы завершить регистрацию, обновится страница портала обеспечения iOS, которая выглядит следующим образом:

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

Затем нажмите кнопку «Загрузить», чтобы загрузить сертификат (файл .cer), который вы только что создали. - Дважды щелкните загруженный файл, чтобы установить сертификат в Keychain Access на вашем Mac.

Шаг 7: На вашем Mac перейдите в «Связку ключей», найдите сертификат, который вы только что установили. Если вы не уверены, какой сертификат является правильным, он должен начинаться с «Apple Production IOS Push Services:», за которым следует идентификатор пакета вашего приложения.

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

Шаг 8: Разверните сертификат, вы должны увидеть закрытый ключ с вашим именем или названием вашей компании. Выберите оба элемента с помощью клавиши «Выбрать» на клавиатуре, щелкните правой кнопкой мыши (или щелкните, удерживая нажатой клавишу cmd, если вы используете мышь с одной кнопкой), выберите «Экспорт 2 элементов», как показано ниже:

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

Затем сохраните файл p12 с именем «pushcert.p12» на рабочем столе - теперь вам будет предложено ввести пароль для его защиты, вы можете нажать Enter, чтобы пропустить пароль, или введите желаемый пароль.

Шаг 9: Теперь самая сложная часть - откройте «Терминал» на вашем Mac и выполните следующие команды:

cd
cd Desktop
openssl pkcs12 -in pushcert.p12 -out pushcert.pem -nodes -clcerts

Шаг 10: Удалите файл pushcert.p12 с рабочего стола, чтобы избежать неправильной загрузки его в «Создайте свою собственную область». Откройте «Терминал» на вашем Mac и выполните следующие команды:

cd
cd Desktop
rm pushcert.p12

Шаг 11. НОВОЕ ОБНОВЛЕНИЕ AWS. Создайте новое pushcert.p12для отправки в AWS SNS. Дважды щелкните на новом pushcert.pem, а затем экспортируйте тот, который выделен только на зеленом.

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

Теперь вы успешно создали сертификат push-уведомлений Apple (файл .p12)! Вам нужно будет загрузить этот файл в нашу область «Создайте свой собственный» позже. :)


11
Похоже, что теперь вы можете экспортировать прямо из связки ключей в файл PEM (шаги 8-10).
Кайл Клегг

10
@KyleClegg: как?
Евгений

3
Что такое область «Build Your Own» и почему мы должны загрузить в нее файл pem?
Рафи

1
почему все эти ответы в Интернете игнорируют реальный вопрос, постоянно задаваемый о том, что такое «Собери свое»? Где вы загружаете этот PEM, если используете Xcode?
RobertyBob

1
В моем случае мне нужно было создать два файла pem из сертификата p12. Просто экспортируйте сертификат и файл ключа соответственно в доступе цепочки для ключей вместо экспорта 2 элементов вместе. Но этот ответ определенно потрясающий!
Вэй

79

Сегодня существует гораздо более простое решение - pem . Этот инструмент делает жизнь намного проще.

Например, чтобы создать или обновить сертификат push-уведомлений, просто введите:

fastlane pem 

и это сделано менее чем за минуту. Если вам нужен сертификат песочницы, введите:

fastlane pem --development

И это мило.


9
И там не только PEM. Весь инструмент fastlane совершенно блестящий
Бенджамин

Это также доступно для не яблочных систем?
дважды

@KrauseFx, если я сгенерирую его через pem, как мне показать его здесь: developer.apple.com/account/ios/certificate ? Я считаю это очень полезным, чтобы увидеть последнюю дату истечения срока действия и т. Д.? Это происходит автоматически?
IonicBurger

1
@Nikola Никаких действий в iTunes Connect не требуется, вы можете использовать этот pem-файл прямо сейчас
KrauseFx

1
@mikejd нам не нужно указывать, какой p12 следует использовать для pem?
Маулик

10
$ cd Desktop
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem

Это работает? Я сделал файл PEM в Windows 10, используя этот метод, но я получил «Невозможно подключиться к ssl: \ / \ / gateway.sandbox.push.apple.com», когда я использую сгенерированный pem для отправки push-уведомлений.
Ариван Бастос

3

Apple изменила название выданного сертификата. Теперь вы можете использовать один и тот же сертификат для разработки и производства. Хотя вы все еще можете запросить сертификат только для разработки, вы больше не можете запрашивать сертификат только для разработки.

пожалуйста, смотрите ниже скриншот


1

это очень просто после экспорта Cert.p12 и key.p12, пожалуйста, найдите ниже команду для создания файла apns .pem.

https://www.sslshopper.com/ssl-converter.html

command to create apns-dev.pem from Cert.pem and Key.pem

openssl rsa -in Key.pem -out apns-dev-key-noenc.pem

cat Cert.pem apns-dev-key-noenc.pem > apns-dev.pem

Вышеприведенная команда полезна как для Песочницы, так и для Производства.


1

В соответствии с решением проблем с Push-сертификатом

Сертификат SSL, доступный в вашей учетной записи Apple Developer Program, содержит открытый ключ, но не закрытый ключ. Закрытый ключ существует только на Mac, который создал запрос на подпись сертификата, загруженный в Apple. И открытый, и закрытый ключи необходимы для экспорта файла Privacy Enhanced Mail (PEM).

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

Вы также можете:

  1. Попробуйте получить закрытый ключ от Mac, который изначально создал CSR. Экспортировать PEM можно с этого Mac или скопировать закрытый ключ на другой Mac.

или

  1. Создайте новый CSR, новый сертификат SSL и на этот раз создайте резервную копию закрытого ключа.

0

Спасибо! на все вышеперечисленные ответы. Я надеюсь, у вас есть файл .p12. Теперь откройте терминал и напишите следующую команду. Установите терминал в путь, куда вы положили .12 файл.

$ openssl pkcs12 -in yourCertifcate.p12 -out pemAPNSCert.pem -nodes
Enter Import Password: <Just enter your certificate password>
MAC verified OK

Теперь ваш .pem файл создан.

Проверка файла .pem Сначала откройте файл .pem в текстовом редакторе, чтобы просмотреть его содержимое. Содержание сертификата должно быть в формате, как показано ниже. Убедитесь, что файл pem содержит как содержимое сертификата (от BEGIN CERTIFICATE до END CERTIFICATE), так и закрытый ключ сертификата (от BEGIN PRIVATE KEY до END PRIVATE KEY):

> Bag Attributes
>     friendlyName: Apple Push Services:<Bundle ID>
>     localKeyID: <> subject=<>
> -----BEGIN CERTIFICATE-----
> 
> <Certificate Content>
> 
> -----END CERTIFICATE----- Bag Attributes
>     friendlyName: <>
>     localKeyID: <> Key Attributes: <No Attributes>
> -----BEGIN PRIVATE KEY-----
> 
> <Certificate Private Key>
> 
> -----END PRIVATE KEY-----

Кроме того, вы проверяете действительность сертификата, перейдя в SSLShopper Certificate Decoder и вставьте содержимое сертификата (от BEGIN CERTIFICATE до END CERTIFICATE), чтобы получить всю информацию о сертификате, как показано ниже:

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.