Створення .pem-файлу, який використовується для налаштування повідомлень Apple Push


290

Я намагався генерувати .pem-файл, кожного разу генеруючи сертифікати з облікового запису клієнта, а потім генеруючи файл .pem за допомогою терміналу, але це не приносить користі. Чи може хтось дати покрокову процедуру?

Відповіді:


936

Щоб увімкнути Push Notification для вашої програми iOS, вам потрібно буде створити та завантажити нам сертифікат Apple Push Notification (.pem файл), щоб ми змогли підключитися до Apple Push Server від вашого імені.

(Тут оновлена ​​версія з оновленими знімками екрана )

Крок 1: Увійдіть на портал надання iOS, натисніть "Сертифікати" на лівій панелі навігації. Потім натисніть кнопку "+".

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

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

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

Крок 3. Виберіть ідентифікатор додатка, який ви хочете використовувати для своєї програми BYO (Як створити ідентифікатор додатка), а потім натисніть «Продовжити», щоб перейти до наступного кроку.

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

Крок 4: Виконайте вказівки "Про створення запиту на підписання сертифіката (CSR)", щоб створити запит на підпис сертифіката.

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

Щоб доповнити інструкцію, надану компанією Apple. Ось кілька додаткових знімків екрана, які допоможуть вам виконати необхідні кроки:

Крок 4 Додатковий знімок екрана 1: Перейдіть до помічника сертифікатів доступу до брелка на вашому Mac.

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

Крок 4 Додатковий знімок екрана 2: Заповніть інформацію про сертифікат. Клацніть Продовжити.

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

Крок 5: Завантажте файл ".certSigningRequest", який генерується на кроці 4, потім натисніть кнопку "Створити".

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

Крок 6. Натисніть "Готово", щоб закінчити реєстрацію, сторінка порталу iOS Provisioning Portal буде оновлена, схожа на наступний екран:

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

Потім натисніть кнопку "Завантажити", щоб завантажити сертифікат (файл .cer), який ви створили саме зараз. - Двічі клацніть завантажений файл, щоб встановити сертифікат у Keychain Access на вашому Mac.

Крок 7: На вашому Mac перейдіть до «Брелок», шукайте щойно встановлений сертифікат. Якщо ви не впевнені, який сертифікат є правильним, його слід починати з "Apple Production IOS Push Services:" з подальшим ідентифікатором пакета вашої програми.

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

Крок 8: Розгорніть сертифікат, ви повинні побачити приватний ключ із своїм ім'ям або назвою компанії. Виберіть обидва елементи за допомогою клавіші "Вибрати" на клавіатурі, клацніть правою кнопкою миші (або натисніть cmd, якщо ви використовуєте мишу однією кнопкою), виберіть "Експортувати 2 елементи", наприклад, нижче:

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

Потім збережіть файл p12 з ім'ям "pushcert.p12" на робочому столі - тепер вам буде запропоновано ввести пароль, щоб захистити його, ви можете або натиснути клавішу Enter, щоб пропустити пароль, або ввести потрібний пароль.

Крок 9: Тепер найскладніша частина - відкрийте "Terminal" на вашому Mac і запустіть такі команди:

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

Крок 10: Видаліть pushcert.p12 з Desktop, щоб уникнути неправильного завантаження його для створення власної області. Відкрийте "Термінал" на своєму Mac та виконайте такі команди:

cd
cd Desktop
rm pushcert.p12

Крок 11 - НОВЕ ОНОВЛЕННЯ AWS: Створіть нову pushcert.p12для подання в AWS SNS. Двічі клацніть на новій pushcert.pem, а потім експортуйте ту, що має високу мету, лише на зеленому.

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

Тепер ви успішно створили сертифікат Apple Push Notification (файл .p12)! Пізніше вам потрібно буде завантажити цей файл у наш Збудувати власну область. :)


11
Виглядає так, що тепер ви можете експортувати прямо з брелка в файл PEM (кроки 8-10).
Кайл Клегг

10
@KyleClegg: як?
Євген

3
Що таке область "Створіть свій" і чому нам потрібно завантажувати в неї файл pem?
Рафі

1
чому всі ці відповіді в Інтернеті ігнорують справжнє запитання, яке постійно задають про те, що таке "Створіть своє"? Куди ви завантажуєте цей PEM, якщо використовуєте Xcode?
RobertyBob

1
У моєму випадку мені потрібно було створити два файли pem з p12 cert. Просто експортуйте файл cert та key key відповідно у доступ до брелоків, а не експортуйте 2 елементи разом. Але ця відповідь, безумовно, приголомшлива!
вет

79

Сьогодні набагато простіше рішення - пем . Цей інструмент значно полегшує життя.

Наприклад, щоб створити або поновити сертифікат push-повідомлення, просто введіть:

fastlane pem 

і це робиться за менше хвилини. Якщо вам потрібен сертифікат пісочниці, введіть:

fastlane pem --development

І це дуже.


9
І існує не тільки ПЕМ. Весь інструмент Fastlane абсолютно геніальний
Бенджамін

Чи він також доступний для не-яблучних систем?
twojr

@KrauseFx, якщо я генерую його через pem, як я можу це показати тут: developer.apple.com/account/ios/certificate ? Я вважаю це досить корисним, щоб побачити останній термін придатності тощо? Це щось відбувається автоматично?
IonicBurger

1
@Nikola Не потрібно діяти на iTunes Connect, ви можете скористатися цим файлом pem відразу
KrauseFx

1
@mikejd нам не потрібно вказувати, який p12 слід використовувати для pem?
Maulik

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, будь ласка, знайдіть нижче команду для генерації .pem-файлу 'apns'.

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

Наведена вище команда корисна як для Sandbox, так і для виробництва.


1

Відповідно до усунення неполадок Push Certificate

Сертифікат SSL, наявний у вашому обліковому записі Програми розробника Apple, містить відкритий ключ, але не приватний ключ. Приватний ключ існує лише на Mac, який створив Запит на підпис сертифіката, завантажений в Apple. І державний, і приватний ключі необхідні для експорту файла посиленої конфіденційності пошти (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 to 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 і вставивши вміст сертифіката (від НАЧАЛЬНОГО СЕРТИФІКАТУ до КІНЦЬОГО СЕРТИФІКАТУ), щоб отримати всю інформацію про сертифікат, як показано нижче:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.