Generieren Sie eine PEM-Datei, die zum Einrichten von Apple Push-Benachrichtigungen verwendet wird

290

Ich habe versucht, eine PEM-Datei zu generieren, jedes Mal, wenn Zertifikate aus dem Konto des Kunden generiert und dann die PEM-Datei über das Terminal generiert wurden, aber es nützt nichts. Kann jemand eine schrittweise Anleitung geben?

Harter Parikh
quelle

Antworten:

936

Um die Push-Benachrichtigung für Ihre iOS-App zu aktivieren, müssen Sie das Apple Push-Benachrichtigungszertifikat (PEM-Datei) erstellen und zu uns hochladen, damit wir in Ihrem Namen eine Verbindung zu Apple Push Server herstellen können.

( Aktualisierte Version mit aktualisierten Screenshots hier )

Schritt 1: Melden Sie sich beim iOS Provisioning Portal an und klicken Sie in der linken Navigationsleiste auf "Zertifikate". Klicken Sie dann auf die Schaltfläche "+".

Geben Sie hier die Bildbeschreibung ein

Schritt 2: Wählen Sie im Abschnitt "Verteilung" die Option "SSL (Produktion) des Apple Push Notification Service" aus und klicken Sie auf "Weiter".

Geben Sie hier die Bildbeschreibung ein

Schritt 3: Wählen Sie die App-ID aus, die Sie für Ihre BYO-App verwenden möchten (So erstellen Sie eine App-ID), und klicken Sie dann auf "Weiter", um mit dem nächsten Schritt fortzufahren.

Geben Sie hier die Bildbeschreibung ein

Schritt 4: Befolgen Sie die Schritte "Informationen zum Erstellen einer Zertifikatsignierungsanforderung (Certificate Signing Request, CSR)", um eine Zertifikatsignierungsanforderung zu erstellen.

Geben Sie hier die Bildbeschreibung ein

Ergänzend zu den Anweisungen von Apple. Hier sind einige der zusätzlichen Screenshots, die Sie beim Ausführen der erforderlichen Schritte unterstützen:

Schritt 4 Ergänzender Screenshot 1: Navigieren Sie auf Ihrem Mac zum Certificate Assistant of Keychain Access.

Geben Sie hier die Bildbeschreibung ein

Schritt 4 Ergänzender Screenshot 2: Geben Sie die Zertifikatinformationen ein. Klicken Sie auf Weiter.

Geben Sie hier die Bildbeschreibung ein

Schritt 5: Laden Sie die in Schritt 4 generierte Datei ".certSigningRequest" hoch und klicken Sie auf die Schaltfläche "Generieren".

Geben Sie hier die Bildbeschreibung ein

Schritt 6: Klicken Sie auf "Fertig", um die Registrierung abzuschließen. Die iOS Provisioning Portal-Seite wird aktualisiert und sieht wie folgt aus:

Geben Sie hier die Bildbeschreibung ein

Klicken Sie dann auf die Schaltfläche "Herunterladen", um das gerade erstellte Zertifikat (.cer-Datei) herunterzuladen. - Doppelklicken Sie auf die heruntergeladene Datei, um das Zertifikat in Keychain Access auf Ihrem Mac zu installieren.

Schritt 7: Gehen Sie auf Ihrem Mac zu "Schlüsselbund" und suchen Sie nach dem Zertifikat, das Sie gerade installiert haben. Wenn Sie sich nicht sicher sind, welches Zertifikat das richtige ist, sollte es mit "Apple Production IOS Push Services:" gefolgt von der Bundle-ID Ihrer App beginnen.

Geben Sie hier die Bildbeschreibung ein

Schritt 8: Erweitern Sie das Zertifikat. Sie sollten den privaten Schlüssel entweder mit Ihrem Namen oder Ihrem Firmennamen sehen. Wählen Sie beide Elemente mit der Taste "Auswählen" auf Ihrer Tastatur aus, klicken Sie mit der rechten Maustaste (oder klicken Sie mit der Maustaste, wenn Sie eine Maus mit einer einzigen Taste verwenden) und wählen Sie "2 Elemente exportieren", wie unten:

Geben Sie hier die Bildbeschreibung ein

Speichern Sie dann die p12-Datei mit dem Namen "pushcert.p12" auf Ihrem Desktop. Jetzt werden Sie aufgefordert, ein Kennwort einzugeben, um sie zu schützen. Sie können entweder auf die Eingabetaste klicken, um das Kennwort zu überspringen, oder ein gewünschtes Kennwort eingeben.

Schritt 9: Jetzt der schwierigste Teil - öffnen Sie "Terminal" auf Ihrem Mac und führen Sie die folgenden Befehle aus:

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

Schritt 10: Entfernen Sie pushcert.p12 vom Desktop, um ein falsches Hochladen in den Bereich "Erstellen Sie Ihren eigenen Bereich" zu vermeiden. Öffnen Sie "Terminal" auf Ihrem Mac und führen Sie die folgenden Befehle aus:

cd
cd Desktop
rm pushcert.p12

Schritt 11 - NEUES AWS-UPDATE: Erstellen Sie ein neues pushcert.p12, um es an AWS SNS zu senden. Doppelklicken Sie auf das Neue pushcert.pemund exportieren Sie dasjenige, das nur auf dem Grün hervorgehoben ist.

Geben Sie hier die Bildbeschreibung ein Gutschrift: AWS neues Update

Jetzt haben Sie erfolgreich ein Apple Push Notification Certificate (.p12-Datei) erstellt! Sie müssen diese Datei später in unseren Bereich "Build Your Own" hochladen. :) :)

Ravi_Parmar
quelle
11
Sieht so aus, als könnten Sie jetzt direkt aus dem Schlüsselbund in eine PEM-Datei exportieren (Schritte 8-10).
Kyle Clegg
10
@ KyleClegg: wie?
Eugene
3
Was ist der Bereich "Build Your Own" und warum müssen wir die PEM-Datei darauf hochladen?
Rafi
1
Warum ignorieren all diese Antworten im Internet die eigentliche Frage, die ständig gestellt wird, was "Build Your Own" ist? Wo lädst du diese PEM hoch, wenn du Xcode verwendest?
RobertyBob
1
In meinem Fall musste ich zwei PEM-Dateien aus p12 cert erstellen. Exportieren Sie einfach das Zertifikat bzw. die Schlüsseldatei im Schlüsselbundzugriff, anstatt zwei Elemente zusammen zu exportieren. Aber diese Antwort ist definitiv großartig!
Wei
79

Es gibt heute eine viel einfachere Lösung - pem . Dieses Tool erleichtert das Leben erheblich.

Um beispielsweise Ihr Push-Benachrichtigungszertifikat zu generieren oder zu erneuern, geben Sie einfach Folgendes ein:

fastlane pem 

und es ist in weniger als einer Minute erledigt. Wenn Sie ein Sandbox-Zertifikat benötigen, geben Sie Folgendes ein:

fastlane pem --development

Und das ist es auch.

mikejd
quelle
9
Und es gibt nicht nur PEM. Das gesamte Fastlane-Tool ist absolut brillant
Benjamin
Ist es auch für Nicht-Apple-Systeme verfügbar?
zweimal am
@KrauseFx, wenn ich es über pem generiere, wie kann ich es hier anzeigen lassen: developer.apple.com/account/ios/certificate ? Ich finde das sehr nützlich, um das letzte Ablaufdatum usw. zu sehen. Passiert das automatisch?
IonicBurger
1
@ Nikola Keine Aktion auf iTunes Connect erforderlich, Sie können diese PEM-Datei sofort verwenden
KrauseFx
1
@mikejd müssen wir nicht angeben, welches p12 für pem verwendet werden soll?
Maulik
10
$ cd Desktop
$ openssl x509 -in aps_development.cer -inform der -out PushChatCert.pem
Ahmed Abdallah
quelle
Funktioniert das? Ich habe unter Windows 10 eine PEM-Datei mit dieser Methode erstellt, aber die Meldung "Verbindung zu 'ssl: \ / \ / gateway.sandbox.push.apple.com kann nicht hergestellt werden" wurde angezeigt, wenn ich das generierte PEM zum Senden von Push-Benachrichtigungen verwende.
Arivan Bastos
3

Apple hat den Namen des ausgestellten Zertifikats geändert. Sie können jetzt dasselbe Zertifikat für Entwicklung und Produktion verwenden. Während Sie weiterhin nur ein Entwicklungszertifikat anfordern können, können Sie kein Produktionszertifikat mehr anfordern.

siehe unten screnshot

Hardik Bar
quelle
1

Nach dem Exportieren von Cert.p12 und key.p12 ist dies sehr einfach. Den folgenden Befehl finden Sie für die Generierung der PEM-Datei '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

Der obige Befehl ist sowohl für Sandbox als auch für die Produktion nützlich.

Ilesh P.
quelle
1

Gemäß Fehlerbehebung bei Push-Zertifikat-Problemen

Das in Ihrem Apple Developer Program-Konto verfügbare SSL-Zertifikat enthält einen öffentlichen Schlüssel, jedoch keinen privaten Schlüssel. Der private Schlüssel ist nur auf dem Mac vorhanden, auf dem die auf Apple hochgeladene Zertifikatsignierungsanforderung erstellt wurde. Zum Exportieren der PEM-Datei (Privacy Enhanced Mail) sind sowohl der öffentliche als auch der private Schlüssel erforderlich.

Möglicherweise können Sie eine funktionierende PEM nicht aus dem vom Client bereitgestellten Zertifikat exportieren, weil Sie nicht über den privaten Schlüssel verfügen. Das Zertifikat enthält den öffentlichen Schlüssel, während der private Schlüssel wahrscheinlich nur auf dem Mac vorhanden ist, der die ursprüngliche CSR erstellt hat.

Du kannst entweder:

  1. Versuchen Sie, den privaten Schlüssel von dem Mac abzurufen, der ursprünglich die CSR erstellt hat. Das Exportieren der PEM kann von diesem Mac aus erfolgen oder Sie können den privaten Schlüssel auf einen anderen Mac kopieren.

oder

  1. Erstellen Sie eine neue CSR, ein neues SSL-Zertifikat und sichern Sie diesmal den privaten Schlüssel.
quellish
quelle
0

Vielen Dank! zu allen oben genannten Antworten. Ich hoffe du hast eine .p12 Datei. Öffnen Sie nun den folgenden Befehl zum Schreiben des Terminals. Stellen Sie das Terminal auf den Pfad ein, in dem Sie die .12-Datei abgelegt haben.

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

Jetzt wird Ihre .pem- Datei generiert.

PEM-Datei überprüfen Öffnen Sie zunächst die PEM-Datei in einem Texteditor, um deren Inhalt anzuzeigen. Der Zertifikatinhalt sollte das unten gezeigte Format haben. Stellen Sie sicher, dass die PEM-Datei sowohl Zertifikatinhalte (von BEGIN CERTIFICATE bis END CERTIFICATE) als auch Certificate Private Key (von BEGIN PRIVATE KEY bis END PRIVATE KEY) enthält:

> 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-----

Sie überprüfen auch die Gültigkeit des Zertifikats, indem Sie zu SSLShopper Certificate Decoder gehen und den Zertifikatinhalt (von BEGIN CERTIFICATE bis END CERTIFICATE) einfügen, um alle Informationen zum Zertifikat wie unten gezeigt zu erhalten:

Geben Sie hier die Bildbeschreibung ein

Gurjinder Singh
quelle