Творящий.файл pem для APNS?

Как создать .файл pem, который будет храниться на хост-сервере для данных полезной нагрузки APN?

11 ответов


вот что я сделал с:blog.boxedice.com и "iPhone" продвинутые "проекты" Глава 10 byJoe Pezzillo.

С aps_developer_identity.cer в брелке:

  1. запустите Keychain Access с вашего локального Mac и из Связки ключей входа, фильтруйте по категории сертификатов. Вы увидите расширяемую опцию под названием "Apple Development Push Services"
  2. щелкните правой кнопкой мыши на "Apple Development Push Services" > экспорт " Apple Разработка Push-сервисов ID123". Сохраните это как apns-dev-cert.p12 файл, где вы можете получить к нему доступ. Нет необходимости вводить пароль.
  3. следующая команда генерирует сертификат в терминале Mac для формата PEM (сертификат конфиденциальности Enhanced Mail Security):

    openssl pkcs12 -in apns-dev-cert.p12 -out apns-dev-cert.pem -nodes -clcerts
    

на сервере установите разрешение файла этого незашифрованного ключа с помощью chmod 400.


Фазы Развития:

Шаг 1: Создать Сертификат .pem из сертификата .Р12
: openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12

Шаг 2: Создать Ключ .pem от Key .Р12
: openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12

Шаг 3: необязательно (если вы хотите удалить фразу пароля, заданную на втором шаге)
: openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem

шаг 4: теперь мы должны объединить ключ .pem и сертификат .Пэм, чтобы получить развитие .pem необходим для Push-уведомлений на этапе разработки приложения
: cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem (If 3rd step is performed )

: cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem (if not)

Шаг 5: Проверьте действительность сертификата и подключение к APNS
: openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem (If 3rd step is not performed )
: openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem (If performed )

производство Фаза:

Шаг 1: Создать Сертификат .pem из сертификата .Р12
: openssl pkcs12 -clcerts -nokeys -out apns-pro-cert.pem -in apns-pro-cert.p12

Шаг 2: Создать Ключ .pem от Key .Р12
: openssl pkcs12 -nocerts -out apns-pro-key.pem -in apns-pro-key.p12

Шаг 3: необязательно (если вы хотите удалить фразу пароля, заданную на втором шаге)
: openssl rsa -in apns-pro-key.pem -out apns-pro-key-noenc.pem

Шаг 4: теперь мы должны объединить Ключ.pem и сертификат .pem, чтобы получить производство .pem необходим для Push-уведомлений на этапе производства приложения
: cat apns-pro-cert.pem apns-pro-key-noenc.pem > apns-pro.pem (If 3rd step is performed ) : cat apns-pro-cert.pem apns-pro-key.pem > apns-pro.pem (if not)

Шаг 5: Проверьте действительность сертификата и подключение к APNS
: openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key.pem (If 3rd step is not performed )
: openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key-noenc.pem (Если выполняется )


действия:

  1. создайте CSR с помощью доступа к цепочке ключей
  2. создайте P12 с помощью доступа к цепочке Ключей с помощью закрытого ключа
  3. APNS App ID и сертификат

это дает вам три файла:

  • ЦСР
  • закрытый ключ в виде файла p12 (PushChatKey.p12)
  • сертификат SSL,aps_development.cer

перейдите в папку, в которую вы загрузили файлы, в моем случае Стол:

$ cd ~/Desktop/

преобразования .файл cer в a .файл pem:

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

преобразование закрытого ключа .файл p12 в a .файл pem:

$ openssl pkcs12 -nocerts -out PushChatKey.pem -in PushChatKey.p12

Импорт Введите Пароль:

MAC verified OK Enter PEM pass phrase: Verifying - Enter PEM pass phrase:

сначала вам нужно ввести парольную фразу для .P12 файл, чтобы openssl мог его прочитать. Затем вам нужно ввести новую парольную фразу, которая будет использоваться для шифрования файла PEM. Снова для этого урока я использовал "pushchat" как парольная фраза PEM. Вы должны выбрать что-то более надежное. Примечание. Если вы не введете парольную фразу PEM, openssl не выдаст сообщение об ошибке, а сгенерированное .в PEM-файле не будет закрытого ключа.

наконец, объедините сертификат и ключ в один.файл pem:

$ cat PushChatCert.pem PushChatKey.pem > ck.pem


запустить терминал и введите следующую команду после строки

  openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes

->> собственный учебник Apple

вы можете найти их 5-шаговый процесс создания pem прямо в нижней части страницы.


вы можете посмотреть здесь. У меня есть подробный процесс, описанный с изображениями, прямо от создания сертификата, до ключа приложения к профилю подготовки, в конечном итоге pem. http://docs.moengage.com/docs/apns-certificate-pem-file


Я бы предложил гораздо более простое решение. Просто используйте Certifire.
Certifire Это приложение macOS, которое генерирует сертификаты Apple Push Notification всего одним щелчком мыши за пару секунд.

вот шаги:
1. Скачать приложение.
2. Войдите в систему, используя учетные данные учетной записи разработчика Apple.
3. Выберите App-ID
4. Нажмите кнопку "Создать"
5. Ты молодец!

вы получите APN сертификаты .формат pem, а также В.формат p12. Более того, вы также будете объединены .Пем и .Р12 тоже (ключ+сертификат)!
Более того, вы также получите версии без парольных фраз всех этих сертификатов!

enter image description here

enter image description here


вот как я это сделал в Windows 7, после установки OpenSSL (ссылка идет к установщику Win32, выберите последнюю версию, а не легкую версию).

С помощью этого метода вам нужно только .cer файл, загруженный из Apple.

c:\OpenSSL-Win32\bin\openssl.exe x509 -in aps_development.cer -inform DER -out developer_identity.pem -outform PEM

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

- - - - - - НАЧАТЬ ЗАКРЫТЫЙ КЛЮЧ - - - - -
MIIEuwIBADANBgkqhk....и т. д.
MIIEuwIBADANBgkqhk....и т. д.
MIIEuwIBADANBgkqhk....и т. д.
MIIEuwIBADANBgkqhk....и т. д.
----- END ЗАКРЫТЫЙ КЛЮЧ - - - - -
----- НАЧАТЬ СЕРТИФИКАТ - - - - -
Авибагвибадавибада....и т. д.
Авибагвибадавибада....и т. д.
Авибагвибадавибада....и т. д.
----- СЕРТИФИКАТ КОНЦА - - - - -

вот именно.


Я не помню openssl команда, необходимая для создания .pem файл, поэтому я сделал этот скрипт bash для упрощения процесса:

#!/bin/bash
if [ $# -eq 2 ]
then
    echo "Signing ..."

    if ! openssl pkcs12 -in  -out  -nodes -clcerts; then
        echo "Error signing certificate."
    else
        echo "Certificate created successfully: "
    fi
else
    if [ $# -gt 2 ]
    then
        echo "Too many arguments"
        echo "Syntax:  <input.p12> <output.pem>"
    else
        echo "Missing arguments"
        echo "Syntax:  <input.p12> <output.pem>"
    fi
fi

назовите его, например, signpem.sh и сохраните его в папке пользователя (/Users/<username>?). После создания файла сделайте chmod +x signpem.sh чтобы сделать его исполняемым и запустите:

~/signpem myCertificate.p12 myCertificate.pem

и myCertificate.pem будет создан.


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

открыть терминал и введите следующую команду:

На Развитие openssl pkcs12-in apns-div-cert.P12-out apns-div-cert.pem-nodes-clcerts

Для Производства openssl pkcs12 - in apns-dist-cert.P12-out apns-dist-cert.pem-nodes-clcerts

переименуйте файл P12 с таким именем: apns-div-cert.Р12 в противном случае вместо этого вам нужно ввести свое имя файла. Спасибо!!


Примечание: для выполнения любой из этих задач необходимо иметь роль Team Agent или Admin В App Store Connect. Если вы не являетесь частью команды в App Store Connect, это, вероятно, не влияет на вас.

отправка push-уведомлений в приложение iOS требует создания ключей шифрования. В прошлом это был трудоемкий процесс, который использовал ключи и сертификаты. Каждый сертификат SSL был специфичен для одного приложения iOS. В 2016 Году Apple введен новый механизм ключа аутентификации, который является более надежным и простым в использовании. Новые ключи аутентификации являются более гибкими, простыми в обслуживании и применении больше, чем в приложении iOS.

хотя прошло много лет с тех пор, как были введены ключи аутентификации, не каждая служба поддерживает их. FireBase и Amazon Pinpoint поддерживают ключи аутентификации. Amazon SNS, Urban Airship, Twilio и LeanPlum-нет. Многие пакеты программ с открытым исходным кодом еще не поддерживают аутентификацию ключи.

чтобы создать необходимый сертификат SSL и экспортировать его в PEM-файл, содержащий открытый и закрытый ключи:

  1. перейдите к сертификатам, идентификаторам и профилям
  2. создать или изменить идентификатор приложения.
  3. включить Push-уведомления для App ID
  4. добавить сертификат SSL в идентификатор приложения
  5. преобразование сертификата в формат PEM

Если у вас уже есть сертификат SSL, созданная для приложение на веб-сайте Apple Developer Center вы можете пропустить вперед, чтобы преобразовать сертификат в формат PEM. имейте в виду, что вы столкнетесь с проблемами, если вы не и имейте закрытый ключ, который был создан на Mac, который создал запрос подписи, который был загружен в Apple.

читайте дальше, чтобы узнать, как избежать потери этого закрытого ключа.

перейдите к сертификатам, идентификаторам и профилям

Xcode, совсем не контрольные сертификаты или ключи для push-уведомлений. Чтобы создать ключи и включить push-уведомления для приложения, вы должны перейти на веб-сайт Apple Developer Center. Раздел сертификаты, идентификаторы и профили вашей учетной записи управляет идентификаторами приложений и сертификатами.

чтобы получить доступ к сертификатам и профилям, вы должны иметь платное членство в программе Apple Developer или быть частью команды, которая это делает.

  1. войдите в Разработчик Apple сайт enter image description here
  2. на счета, потом Сертификаты, Идентификаторы И Профили enter image description here

создать идентификатор приложения

приложения, использующие push-уведомления, не могут использовать идентификаторы подстановочных знаков или профили подготовки. Для каждого приложения необходимо настроить запись идентификатора приложения на портале Apple Developer Center, чтобы включить push-уведомления.

  1. на App IDs под коды
  2. поиск приложения с помощью идентификатора пакета. Возможно, она уже существует.
  3. если нет существующего идентификатора приложения для приложения нажмите кнопку ( + ), чтобы создать его.
  4. выберите явное приложение ID на идентификатор меню выберите Новый Брелок...
  5. дайте вашему keychain описательное имя, как "общая разработка" или имя вашего применение

создать запрос подписи сертификата (CSR)

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

  1. откройте Keychain Access на вашем Mac.
  2. Control-нажмите на брелок разработки в списке брелки
  3. выберите сделать брелок "общая разработка" по умолчанию enter image description here
  4. С Keychain Access меню выберите Помощник Удостоверение, потом запросить сертификат у Центра сертификации... из подменю. enter image description here
  5. когда помощник сертификат проверки Сохранено На Диске. enter image description here
  6. введите адрес электронной почты, связанный с вашим членством в Программе разработчиков Apple, в Адрес Электронной Почты Пользователя меню выберите Предметы Импорта... enter image description here
  7. импорт файла сертификата, загруженного из Apple

ваш брелок разработки теперь должен показывать сертификат push с закрытым ключом под Сертификаты в Keychain Access:

enter image description here

на этом этапе необходимо создать резервную копию связки ключей разработки. Много команды хранят свои push-сертификаты на защищенных USB-накопителях, выполняют внутренний контроль версий или используют резервное решение, например Time Machine. Связка ключей разработки может совместно использоваться различными членами команды, поскольку она не содержит личных учетных данных для подписи кода.

Keychain файлы расположены в ~/Library/Keychains.

некоторым сторонним службам push требуются сертификаты в формате Privacy Enhanced Mail (PEM), в то время как другим требуется открытый ключ Стандарты криптографии #12 (PKCS12 или P12). Сертификат, загруженный из Apple, можно использовать для экспорта сертификатов в этих форматах, но только если вы сохранили закрытый ключ.

преобразование сертификата в формат PEM

  1. в Keychain Access выберите связку ключей разработки, созданную ранее.
  2. выберите сертификат push в Сертификаты. Там должен быть закрытый ключ. ![Скачать CER push сертификат](брелок/импорт завершен.png)
  3. С меню выберите Экспорт Товаров... enter image description here
  4. в открывшейся панели выберите Конфиденциальность Расширенной Почты (.pem) как формат файла.
  5. сохраните файл