PEM-Datei für APNS erstellen?

176

Wie erstelle ich eine PEM-Datei, die auf dem Hosting-Server für APN-Nutzdaten gespeichert werden soll?

Biranchi
quelle
1
Kann ich .p12 für apns anstelle von .pem verwenden?
Gajendra K Chauhan
Zu Ihrer Information Definition von .pem: serverfault.com/a/21158/193377 PEM allein ist kein Zertifikat, sondern nur eine Methode zum Codieren von Daten. .... es ist sicher, in den Text einer E-Mail-Nachricht einzufügen, da sie Ankerlinien enthält und 7-Bit sauber ist.
AnneTheAgile

Antworten:

364

Folgendes habe ich getan: Von: blog.boxedice.com und "iPhone Advanced Projects", Kapitel 10 von Joe Pezzillo.

Mit dem aps_developer_identity.cer im Schlüsselbund:

  1. Starten Sie den Schlüsselbundzugriff von Ihrem lokalen Mac und über den Anmeldeschlüsselbund. Filtern Sie nach der Kategorie Zertifikate. Sie sehen eine erweiterbare Option namens "Apple Development Push Services".
  2. Klicken Sie mit der rechten Maustaste auf "Apple Development Push Services"> Exportieren Sie "Apple Development Push Services ID123". Speichern Sie diese apns-dev-cert.p12Datei als Datei, auf die Sie zugreifen können. Es ist nicht erforderlich, ein Passwort einzugeben.
  3. Der nächste Befehl generiert das Zertifikat im Terminal for PEM-Format von Mac (Privacy Enhanced Mail Security Certificate):

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

Stellen Sie auf dem Server die Dateiberechtigung für diesen unverschlüsselten Schlüssel mithilfe von chmod 400 ein.

zaph
quelle
3
Ich habe die obigen Schritte befolgt und jetzt funktioniert es. Ich habe das Zertifikat und das PHP-Skript auf meinem lokalen Webserver (Xampp) gespeichert. Ich kann das Geräte-Token erhalten und verwende es im PHP-Skript. Das PHP-Skript kann Nutzdaten verbinden und senden. Trotzdem kann ich die PUSH-Benachrichtigung nicht erhalten. Was ist das Problem ? Dauert es einige Zeit, bis die Benachrichtigungen erreicht sind?
Biranchi
12
Beim Schlüsselbundzugriff von Mavericks (10.9) gibt es eine Option zum Exportieren als .pem! Klicken Sie einfach mit der rechten Maustaste auf das Zertifikat "Apple Development / Production iOS Push Services" in Keychain Access und wählen Sie "Exportieren". Ändern Sie das Dateiformat in ".pem - done! Auch als Exportoptionen verfügbar: .p7b & .p12
tylerl
4
.pem ist für mich deaktiviert, Yosemite Beta7. Ich habe einige Probleme beim Erstellen der .pem. Wenn ich sie öffne, heißt es, sie sei für die Verteilung bestimmt. Dev
Cristi Băluță
2
.pem ist für mich nicht deaktiviert, aber ich kann nicht als p12 speichern. So sieht es aus: i.imgur.com/U2M40dU.png
FooBar
2
Für macOS 10.14 Mojave mit der Keychain Access-App können Sie "Apple Push Services: com.yourBundleIdentifier-Zertifikat" in das Dateiformat "Privacy Enhanced Mail (.pem)" exportieren und speichern, wann immer Sie möchten.
5uper_0leh
225

Entwicklungsphase:

Schritt 1: Erstellen Sie das Zertifikat .pem aus dem Zertifikat .p12
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12

Schritt 2: Erstellen Sie den Schlüssel .pem aus dem Schlüssel .p12
openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12

Schritt 3 (optional): Wenn Sie die im zweiten Schritt angeforderte Passphrase entfernen möchten
openssl rsa -in apns-dev-key.pem -out apns-dev-key-noenc.pem

Schritt 4: Jetzt müssen wir das Schlüssel-PEM und das Zertifikat-PEM zusammenführen, um das Entwicklungs-PEM zu erhalten, das für Push-Benachrichtigungen in der Entwicklungsphase der App benötigt wird.

Wenn der 3. Schritt ausgeführt wurde, führen Sie Folgendes aus:
cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem

Wenn der dritte Schritt nicht ausgeführt wurde, führen Sie Folgendes aus:
cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem

Schritt 5: Überprüfen Sie die Gültigkeit des Zertifikats und die Konnektivität zu APNS

Wenn der 3. Schritt ausgeführt wurde, führen Sie Folgendes aus:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem

Wenn der dritte Schritt nicht ausgeführt wurde, führen Sie Folgendes aus:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem

Produktionsphase:

Schritt 1: Erstellen Sie das Zertifikat .pem aus dem Zertifikat .p12
openssl pkcs12 -clcerts -nokeys -out apns-pro-cert.pem -in apns-pro-cert.p12

Schritt 2: Erstellen Sie den Schlüssel .pem aus dem Schlüssel .p12
openssl pkcs12 -nocerts -out apns-pro-key.pem -in apns-pro-key.p12

Schritt 3 (optional): Wenn Sie die im zweiten Schritt angeforderte Passphrase entfernen möchten
openssl rsa -in apns-pro-key.pem -out apns-pro-key-noenc.pem

Schritt 4: Jetzt müssen wir das Schlüssel-PEM und das Zertifikat-PEM zusammenführen, um das Produktions-PEM zu erhalten, das für Push-Benachrichtigungen in der Produktionsphase der App benötigt wird.

Wenn der 3. Schritt ausgeführt wurde, führen Sie Folgendes aus:
cat apns-pro-cert.pem apns-pro-key-noenc.pem > apns-pro.pem

Wenn der dritte Schritt nicht ausgeführt wurde, führen Sie Folgendes aus:
cat apns-pro-cert.pem apns-pro-key.pem > apns-pro.pem

Schritt 5: Überprüfen Sie die Gültigkeit des Zertifikats und die Konnektivität zu APNS.

Wenn der 3. Schritt ausgeführt wurde, führen Sie Folgendes aus:
openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key-noenc.pem

Wenn der dritte Schritt nicht ausgeführt wurde, führen Sie Folgendes aus:
openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key.pem

Ashish Chhabra
quelle
5
Danke, dies ist der einzige hier, der für mich gearbeitet hat.
Erik Villegas
6
Habe das in meinem kostbaren Tresor gespeichert! : P Beste Antwort aller Zeiten !!
Schwärzen
3
Du bist ein Gott, das funktioniert, danke. UP VOTE. Dies sollte die Antwort sein, da es ausführlich beschreibt, wie man es Schritt für Schritt erstellt
MNM
2
Dies sollte sicherlich die akzeptierte Antwort sein, da die Antwort von @Rahul Sharma nicht das erwartete Ergebnis erbrachte, obwohl diese Antwort perfekt war.
Nowdeen
Vielen Dank, dass Sie meine Stunden gespart haben, um die Gültigkeit des Zertifikats zu überprüfen. Dies sollte die akzeptierte Antwort sein @Biranchi
Sourabh Sharma
59

Schritte:

  1. Erstellen Sie eine CSR mit Key Chain Access
  2. Erstellen Sie ein P12 mit Schlüsselkettenzugriff mit privatem Schlüssel
  3. APNS App ID und Zertifikat

Dies gibt Ihnen drei Dateien:

  • Die CSR
  • Der private Schlüssel als p12-Datei ( PushChatKey.p12)
  • Das SSL-Zertifikat, aps_development.cer

Gehen Sie zu dem Ordner, in den Sie die Dateien heruntergeladen haben, in meinem Fall zum Desktop:

$ cd ~/Desktop/

Konvertieren Sie die CER-Datei in eine PEM-Datei:

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

Konvertieren Sie die P12-Datei des privaten Schlüssels in eine PEM-Datei:

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

Importkennwort eingeben:

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

Sie müssen zuerst die Passphrase für die .p12-Datei eingeben, damit openssl sie lesen kann. Anschließend müssen Sie eine neue Passphrase eingeben, mit der die PEM-Datei verschlüsselt wird. Auch für dieses Tutorial habe ich "Pushchat" als PEM-Passphrase verwendet. Sie sollten etwas sichereres wählen. Hinweis: Wenn Sie keine PEM-Passphrase eingeben, gibt openssl keine Fehlermeldung aus, aber die generierte PEM-Datei enthält keinen privaten Schlüssel.

Kombinieren Sie abschließend das Zertifikat und den Schlüssel in einer einzigen PEM-Datei:

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

Sarit Bahuguna
quelle
22

Starten Sie die Terminal-Anwendung und geben Sie nach der Eingabeaufforderung den folgenden Befehl ein

  openssl pkcs12 -in CertificateName.p12 -out CertificateName.pem -nodes
Durai Amuthan.H
quelle
1
Nachdem Sie ein p12 generiert haben, sollte dies die Antwort sein.
Stein
10

- >> Apples eigenes Tutorial << - ist die einzige funktionierende Anleitung, auf die ich gestoßen bin. Es ist einfach und ich kann bestätigen, dass es sowohl auf einem Linux-PHP-Server als auch auf einem Windows-PHP-Server hervorragend funktioniert.

Sie finden den 5-stufigen Pem-Erstellungsprozess ganz unten auf der Seite.

Capikaw
quelle
Ja! Folgen Sie einfach dem einfachen Tutorial. Nur ein einfacher Befehl openssl. Ich weiß nicht, ob es wichtig ist, aber ich habe den Befehl durch SSH auf dem Server ausgeführt, der eine Verbindung zu APNS herstellt.
Tylerl
1
@tylerl, die PEM kann von jedem Computer aus generiert werden - muss nicht der Server sein, auf dem sie sich befindet.
Capikaw
Muss ich diesen Prozess auf dem Server selbst ausführen, auf dem PHP-Code bereitgestellt wird? oder kann ich die von meinem Mac generierte PEM-Datei verwenden?
Jatin
4
Link ist ab September 2015 unterbrochen
Nicolas Miari
4

Hier können Sie einen Blick darauf werfen. Ich habe den detaillierten Prozess mit Bildern beschrieben, angefangen beim Erstellen des Zertifikats über den App-Schlüssel bis hin zum Bereitstellungsprofil und schließlich zum PEM. http://docs.moengage.com/docs/apns-certificate-pem-file

Gautam Jain
quelle
3

Ich würde eine viel einfachere Lösung vorschlagen. Verwenden Sie einfach Certifire .
Certifire ist eine macOS-Anwendung, die Apple Push Notification Certificates mit nur einem Klick in wenigen Sekunden generiert.

Hier sind die Schritte:
1. Laden Sie die App herunter.
2. Melden Sie sich mit Ihren Anmeldeinformationen für das Apple Developer Account an.
3. Wählen Sie die App-ID.
4. Klicken Sie auf die Schaltfläche "Generieren".
5. Fertig!

Sie erhalten APN-Zertifikate sowohl im PEM-Format als auch im P12-Format. Darüber hinaus erhalten Sie auch .pem und .p12 (Schlüssel + Zertifikat)!
Viel mehr erhalten Sie auch No-Passphrase-Versionen all dieser Zertifikate!

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

arturdev
quelle
3

ANMERKUNG: Sie müssen über die Team Agent- oder Administratorrolle in App Store Connect verfügen, um eine dieser Aufgaben ausführen zu können. Wenn Sie nicht Teil eines Teams im App Store Connect sind, hat dies wahrscheinlich keine Auswirkungen auf Sie.

Für das Senden von Push-Benachrichtigungen an eine iOS-Anwendung müssen Encyption Keys erstellt werden. In der Vergangenheit war dies ein umständlicher Prozess, bei dem SSL-Schlüssel und -Zertifikate verwendet wurden. Jedes SSL-Zertifikat war spezifisch für eine einzelne iOS-Anwendung. Im Jahr 2016 hat Apple einen neuen Authentifizierungsschlüsselmechanismus eingeführt, der zuverlässiger und benutzerfreundlicher ist. Die neuen Authentifizierungsschlüssel sind flexibler, einfacher zu warten und gelten für mehr als für iOS-Apps.

Obwohl es Jahre her ist, dass Authentifizierungsschlüssel eingeführt wurden, werden sie nicht von jedem Dienst unterstützt. FireBase und Amazon Pinpoint unterstützen Authentifizierungsschlüssel. Amazon SNS, Urban Airship, Twilio und LeanPlum nicht. Viele Open Source-Softwarepakete unterstützen noch keine Authentifizierungsschlüssel.

So erstellen Sie das erforderliche SSL-Zertifikat und exportieren es als PEM-Datei mit öffentlichen und privaten Schlüsseln:

  1. Navigieren Sie zu Zertifikaten, Kennungen und Profilen
  2. Erstellen oder bearbeiten Sie Ihre App-ID.
  3. Aktivieren Sie Push-Benachrichtigungen für die App-ID
  4. Fügen Sie der App-ID ein SSL-Zertifikat hinzu
  5. Konvertieren Sie das Zertifikat in das PEM-Format

Wenn Sie das SSL-Zertifikat bereits für die App auf der Apple Developer Center-Website eingerichtet haben, können Sie mit dem Konvertieren des Zertifikats in das PEM-Format fortfahren. Beachten Sie, dass Sie auf Probleme stoßen, wenn Sie nicht auch den privaten Schlüssel haben , die auf dem Mac erstellt wurde, die die Signaturanforderung erstellt , die an Apple hochgeladen wurde.

Lesen Sie weiter, um zu vermeiden, dass Sie den Überblick über diesen privaten Schlüssel verlieren.

Navigieren Sie zu Zertifikaten, Kennungen und Profilen

Xcode kontrolliert keine Zertifikate oder Schlüssel für Push-Benachrichtigungen. Um Schlüssel zu erstellen und Push-Benachrichtigungen für eine App zu aktivieren, müssen Sie die Apple Developer Center-Website aufrufen. Der Abschnitt Zertifikate, Kennungen und Profile Ihres Kontos steuert App-IDs und -Zertifikate.

Um auf Zertifikate und Profile zugreifen zu können, müssen Sie entweder über eine kostenpflichtige Apple Developer Program-Mitgliedschaft verfügen oder Teil eines Teams sein, das dies tut.

  1. Melden Sie sich auf der Apple Developer-Website an Geben Sie hier die Bildbeschreibung ein
  2. Gehen Sie zu Konto und dann zu Zertifikaten, Kennungen und Profilen Geben Sie hier die Bildbeschreibung ein

Erstellen Sie eine App-ID

Apps, die Push-Benachrichtigungen verwenden, können keine Platzhalter-App-IDs oder Bereitstellungsprofile verwenden. Für jede App müssen Sie einen App-ID-Eintrag im Apple Developer Center-Portal einrichten, um Push-Benachrichtigungen zu aktivieren.

  1. Gehen Sie zu App-IDs unter Bezeichner
  2. Suchen Sie mit der Bundle-ID nach Ihrer App. Es kann bereits existieren.
  3. Wenn für die App keine App-ID vorhanden ist, klicken Sie auf die Schaltfläche (+), um sie zu erstellen.
  4. Wählen Sie im Abschnitt App-ID- Suffix die Option Explizite App-ID aus . Geben Sie hier die Bildbeschreibung ein
  5. Geben Sie die Bundle-ID für die App ein.
  6. Scrollen Sie nach unten und aktivieren Sie Push-Benachrichtigungen . Geben Sie hier die Bildbeschreibung ein
  7. Klicken Sie auf Weiter .
  8. Klicken Sie im nächsten Bildschirm auf Registrieren , um die Erstellung der App-ID abzuschließen. Geben Sie hier die Bildbeschreibung ein

Aktivieren Sie Push-Benachrichtigungen für die App-ID

  1. Gehen Sie zu App-IDs unter Bezeichner
  2. Klicken Sie auf die App-ID, um Details anzuzeigen, und scrollen Sie nach unten. Geben Sie hier die Bildbeschreibung ein
  3. Klicken Sie auf Bearbeiten Geben Sie hier die Bildbeschreibung ein
  4. Scrollen Sie im Bildschirm App ID-Einstellungen nach unten zu Push-Benachrichtigungen Geben Sie hier die Bildbeschreibung ein
  5. Aktivieren Sie das Kontrollkästchen, um Push-Benachrichtigungen zu aktivieren. Geben Sie hier die Bildbeschreibung ein

Das Erstellen von SSL-Zertifikaten für Push-Benachrichtigungen besteht aus mehreren Aufgaben. Jede Aufgabe besteht aus mehreren Schritten. All dies ist erforderlich, um die Schlüssel im P12- oder PEM-Format zu exportieren. Überprüfen Sie die Schritte, bevor Sie fortfahren.

Fügen Sie der App-ID ein SSL-Zertifikat hinzu

  1. Klicken Sie unter Entwicklungs-SSL-Zertifikat auf Zertifikat erstellen . Sie müssen dies später auch für die Produktion tun.
  2. Apple fordert Sie auf, eine Zertifikatsignierungsanforderung zu erstellen Geben Sie hier die Bildbeschreibung ein

Um ein Zertifikat zu erstellen, müssen Sie eine Zertifikatsignierungsanforderung (Certificate Signing Request, CSR) auf einem Mac erstellen und auf Apple hochladen.

Wenn Sie dieses Zertifikat später als pkcs12-Datei (auch bekannt als p12-Datei) exportieren müssen, müssen Sie den Schlüsselbund von demselben Mac verwenden . Wenn die Signaturanforderung erstellt wird, generiert Keychain Access einen Satz von Schlüsseln im Standardschlüsselbund. Diese Schlüssel sind für die Arbeit mit dem Zertifikat erforderlich, das Apple aus der Signaturanforderung erstellt.

Es wird empfohlen, einen separaten Schlüsselbund speziell für die für die Entwicklung verwendeten Anmeldeinformationen zu verwenden. Wenn Sie dies tun, stellen Sie sicher, dass dieser Schlüsselbund als Standard festgelegt ist, bevor Sie Certificate Assistant verwenden.

Erstellen Sie einen Schlüsselbund für Entwicklungsanmeldeinformationen

  1. Öffnen Sie den Schlüsselbundzugriff auf Ihrem Mac
  2. Wählen Sie im Menü Datei die Option Neuer Schlüsselbund ...
  3. Geben Sie Ihrem Schlüsselbund einen aussagekräftigen Namen wie "Shared Development" oder den Namen Ihrer Anwendung

Erstellen Sie eine Zertifikatsignierungsanforderung (Certificate Signing Request, CSR).

Beim Erstellen der Zertifikatsignierungsanforderung generiert der Zertifikatassistent zwei Verschlüsselungsschlüssel im Standardschlüsselbund. Es ist wichtig, den Entwicklungsschlüsselbund als Standard festzulegen, damit sich die Schlüssel im richtigen Schlüsselbund befinden.

  1. Öffnen Sie den Schlüsselbundzugriff auf Ihrem Mac.
  2. Klicken Sie bei gedrückter Ctrl-Taste auf den Entwicklungsschlüsselbund in der Liste der Schlüsselanhänger
  3. Wählen Sie "Schlüsselbund" "Gemeinsame Entwicklung" als Standard festlegen Geben Sie hier die Bildbeschreibung ein
  4. Wählen Sie im Menü Schlüsselbundzugriff die Option Zertifikatassistent und dann im Untermenü Zertifikat von einer Zertifizierungsstelle anfordern . Geben Sie hier die Bildbeschreibung ein
  5. Wenn der Zertifikatassistent angezeigt wird, aktivieren Sie die Option Auf Festplatte gespeichert . Geben Sie hier die Bildbeschreibung ein
  6. Geben Sie die E-Mail-Adresse Ihrer Apple Developer Program-Mitgliedschaft in das Feld Benutzer-E-Mail-Adresse ein.
  7. Geben Sie im Feld Common Name einen Namen für den Schlüssel ein . Es ist eine gute Idee, die Bundle-ID der App als Teil des allgemeinen Namens zu verwenden. Auf diese Weise können Sie leicht erkennen, welche Zertifikate und Schlüssel zu welcher App gehören.
  8. Klicken Sie auf Weiter. Der Zertifikatassistent fordert Sie auf, die Signaturanforderung in einer Datei zu speichern.
  9. Machen Sie im Schlüsselbundzugriff den Schlüsselbund "Anmelden" wieder zum Standard.

Beim Erstellen der Signaturanforderung wurde ein Schlüsselpaar generiert. Vergewissern Sie sich vor dem Hochladen der Signaturanforderung, dass der Entwicklungsschlüsselbund über die Schlüssel verfügt. Ihre Namen stimmen mit dem allgemeinen Namen überein, der in der Signaturanforderung verwendet wird.

Geben Sie hier die Bildbeschreibung ein

Laden Sie die Certificate Signing Request (CSR) hoch.

Sobald die Zertifikatsignierungsanforderung erstellt wurde, laden Sie sie in das Apple Developer Center hoch. Apple erstellt das Push-Benachrichtigungszertifikat aus der Signaturanforderung.

  1. Laden Sie die Zertifikatsignierungsanforderung hoch
  2. Laden Sie das Zertifikat herunter, das Apple aus der Zertifikatsignierungsanforderung erstellt hat Geben Sie hier die Bildbeschreibung ein
  3. Wählen Sie unter Schlüsselbundzugriff den Entwicklungsschlüsselbund aus der Liste der Schlüsselanhänger aus
  4. Aus dem Datei - Menü wählen Sie Import Artikel ... Geben Sie hier die Bildbeschreibung ein
  5. Importieren Sie die von Apple heruntergeladene Zertifikatdatei

Ihr Entwicklungsschlüsselbund sollte jetzt das Push-Zertifikat mit einem privaten Schlüssel unter Meine Zertifikate im Schlüsselbundzugriff anzeigen:

Geben Sie hier die Bildbeschreibung ein

Zu diesem Zeitpunkt sollte der Entwicklungsschlüsselbund gesichert werden. Viele Teams bewahren ihre Push-Zertifikate auf sicheren USB-Laufwerken auf, verpflichten sich zur internen Versionskontrolle oder verwenden eine Backup-Lösung wie Time Machine. Der Entwicklungsschlüsselbund kann von verschiedenen Teammitgliedern gemeinsam genutzt werden, da er keine Anmeldeinformationen für die persönliche Codesignatur enthält.

Schlüsselbunddateien befinden sich in ~/Library/Keychains.

Einige Push-Dienste von Drittanbietern erfordern Zertifikate im PEM-Format (Privacy Enhanced Mail), während andere Kryptografiestandards Nr. 12 für öffentliche Schlüssel (PKCS12 oder P12) erfordern. Das von Apple heruntergeladene Zertifikat kann zum Exportieren von Zertifikaten in diesen Formaten verwendet werden - jedoch nur, wenn Sie den privaten Schlüssel behalten haben.

Konvertieren Sie das Zertifikat in das PEM-Format

  1. Wählen Sie unter Schlüsselbundzugriff den zuvor erstellten Entwicklungsschlüsselbund aus.
  2. Wählen Sie das Push-Zertifikat unter Meine Zertifikate aus . Es sollte einen privaten Schlüssel geben. ! [CER-Push-Zertifikat herunterladen] (Schlüsselbund / Import complete.png)
  3. Aus dem Datei - Menü wählen Sie Export Artikel ... Geben Sie hier die Bildbeschreibung ein
  4. Wählen Sie im daraufhin angezeigten Speicherfenster Privacy Enhanced Mail (.pem) als Dateiformat aus.
  5. Speicher die Datei
quellish
quelle
2

So habe ich es unter Windows 7 gemacht, nachdem ich OpenSSL installiert habe (Link geht zum Win32-Installationsprogramm, wählen Sie die neueste Version und nicht die Light-Version).

Bei dieser Methode benötigen Sie nur die .cervon Apple heruntergeladene Datei.

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

Dadurch wird eine Datei erstellt, in die Sie dann auch Ihren privaten Schlüssel einfügen müssen.

----- BEGIN PRIVATE KEY -----
MIIEuwIBADANBgkqhk .... etc
MIIEuwIBADANBgkqhk .... etc
MIIEuwIBADANBgkqhk .... etc
MIIEuwIBADANBgkqhk .... etc
----- END PRIVATE KEY -----
----- BEGIN CERTIFICATE -----
AwIBAgwIBADAwIBADA .... etc
AwIBAgwIBADAwIBADA .... etc
AwIBAgwIBADAwIBADA .... etc
----- END CERTIFICATE -----

Das ist es.

Fäulnis
quelle
1

Ich erinnere mich nie an den opensslBefehl, der zum Erstellen einer .pemDatei benötigt wird. Deshalb habe ich dieses Bash-Skript erstellt, um den Vorgang zu vereinfachen:

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

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

Benennen Sie es beispielsweise signpem.shund speichern Sie es im Ordner Ihres Benutzers ( /Users/<username>?). chmod +x signpem.shFühren Sie nach dem Erstellen der Datei a aus , um sie ausführbar zu machen, und führen Sie dann Folgendes aus:

~/signpem myCertificate.p12 myCertificate.pem

Und myCertificate.pemwird erstellt.

Alejandro Iván
quelle
1

Es gibt eine einfachste Möglichkeit, eine .Pem-Datei zu erstellen, wenn Sie bereits eine apns p12-Datei in Ihrem Schlüsselbundzugriff haben.

Öffnen Sie das Terminal und geben Sie den folgenden Befehl ein:

Für die Entwicklung öffnetsl pkcs12 -in apns-div-cert.p12 -out apns-div-cert.pem -nodes -clcerts

Für die Produktion öffnet sich pkcs12 -in apns-dist-cert.p12 -out apns-dist-cert.pem -nodes -clcerts

Benennen Sie Ihre P12-Datei mit diesem Namen um: apns-div-cert.p12. Andernfalls müssen Sie stattdessen Ihren Dateinamen eingeben. Vielen Dank!!

Yash
quelle