190 Stimmen

Erstellen einer .pem-Datei für APNS?

Wie erstelle ich eine .pem-Datei, die auf dem Hosting-Server für APN-Nutzdaten gespeichert wird?

1 Stimmen

Kann ich .p12 für apns anstelle von .pem verwenden?

0 Stimmen

Zu Ihrer Information: Definition von .pem: serverfault.com/a/21158/193377 PEM ist für sich genommen kein Zertifikat, sondern nur eine Art der Datenverschlüsselung. .... ist es sicher, in den Text einer E-Mail-Nachricht einzufügen, da es Ankerzeilen hat und 7-Bit sauber ist.

384voto

zaph Punkte 110105

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

Mit der aps_developer_identity.cer im Schlüsselbund:

  1. Starten Sie Keychain Access von Ihrem lokalen Mac aus und filtern Sie im Anmeldeschlüsselbund nach der Kategorie "Zertifikate". Sie werden eine erweiterbare Option namens "Apple Development Push Services" sehen.
  2. Rechtsklicken Sie auf "Apple Development Push Services" > Exportieren Sie "Apple Development Push Services ID123". Speichern Sie dies als apns-dev-cert.p12 Datei an einem Ort, an dem Sie darauf zugreifen können. Die Eingabe eines Passworts ist nicht erforderlich.
  3. Der nächste Befehl generiert das Zertifikat in Mac's Terminal für das PEM-Format (Privacy Enhanced Mail Security Certificate):

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

Setzen Sie auf dem Server die Dateiberechtigung für diesen unverschlüsselten Schlüssel mit chmod 400.

3 Stimmen

Ich habe die oben genannten Schritte befolgt und jetzt funktioniert es. Ich habe das Zertifikat und das PHP-Skript auf meinem lokalen Webserver (Xampp) gespeichert. Ich bin in der Lage, das Gerät Token zu erhalten, und ich bin es in der PHP-Skript verwenden. Das PHP-Skript ist in der Lage, eine Verbindung herzustellen und Nutzdaten zu senden. Aber trotzdem kann ich die PUSH-Benachrichtigung nicht erhalten. Was ist das Problem? Brauchen die Benachrichtigungen Zeit, bis sie ankommen?

0 Stimmen

Damit habe ich Schlüssel erstellt und auch Berechtigungen geändert. Aber trotzdem kann ich mich nicht mit dem APNS Server verbinden und der Feedback-Befehl gibt immer noch '#<APN::Feedback: Verbindung zu feedback.push.apple.com auf 2196>' zurück. Irgendwelche Anhaltspunkte...?

14 Stimmen

Unter Mavericks (10.9) Keychain Access gibt es eine Option zum Exportieren als .pem! Klicken Sie einfach mit der rechten Maustaste auf das "Apple Development/Production iOS Push Services"-Zertifikat innerhalb von Keychain Access und wählen Sie "Exportieren". Ändern Sie das Dateiformat auf .pem - fertig! Ebenfalls als Exportoptionen verfügbar: .p7b & .p12

250voto

Ashish Chhabra Punkte 2574

Entwicklungsphase:

Schritt 1: Zertifikat .pem aus Zertifikat .p12 erstellen
openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12

Schritt 2: Schlüssel .pem aus Schlüssel .p12 erzeugen
openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12

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

Schritt 4: Jetzt müssen wir den Key .pem und das Certificate .pem zusammenführen, um Development .pem zu erhalten, das für Push Notifications in der Entwicklungsphase der App benötigt wird.

Wenn der 3. Schritt durchgeführt wurde, ausführen:
cat apns-dev-cert.pem apns-dev-key-noenc.pem > apns-dev.pem

Wenn der 3. Schritt no durchgeführt, laufen:
cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem

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

Wenn der 3. Schritt durchgeführt wurde, ausführen:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key-noenc.pem

Wenn der 3. Schritt no durchgeführt, laufen:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem

Produktionsphase:

Schritt 1: Zertifikat .pem aus Zertifikat .p12 erstellen
openssl pkcs12 -clcerts -nokeys -out apns-pro-cert.pem -in apns-pro-cert.p12

Schritt 2: Schlüssel .pem aus Schlüssel .p12 erzeugen
openssl pkcs12 -nocerts -out apns-pro-key.pem -in apns-pro-key.p12

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

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

Wenn der 3. Schritt durchgeführt wurde, ausführen:
cat apns-pro-cert.pem apns-pro-key-noenc.pem > apns-pro.pem

Wenn der 3. Schritt no durchgeführt, laufen:
cat apns-pro-cert.pem apns-pro-key.pem > apns-pro.pem

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

Wenn der 3. Schritt durchgeführt wurde, ausführen:
openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key-noenc.pem

Wenn der 3. Schritt no durchgeführt, laufen:
openssl s_client -connect gateway.push.apple.com:2195 -cert apns-pro-cert.pem -key apns-pro-key.pem

5 Stimmen

Danke, das ist die einzige, die bei mir funktioniert hat.

6 Stimmen

Das habe ich in meinem kostbaren Tresor gespeichert :P Die beste Antwort aller Zeiten!

3 Stimmen

Sie sind ein Gott, das funktioniert, danke. UP VOTE. Dies sollte die Antwort sein, weil es in die Tiefe geht, wie man es Schritt für Schritt zu erstellen

65voto

sarit bahuguna Punkte 875

Schritte:

  1. Erstellen einer CSR mit Key Chain Access
  2. Erstellen eines P12 mit Schlüsselkette Zugriff mit privatem Schlüssel
  3. APNS App ID und Zertifikat

Damit erhalten Sie drei Dateien:

  • Die CSR
  • Der private Schlüssel in Form einer 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 der 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

Import-Passwort eingeben:

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

Zuerst müssen Sie die Passphrase für die .p12-Datei eingeben, damit openssl sie lesen kann. Dann müssen Sie eine neue Passphrase eingeben, die zur Verschlüsselung der PEM-Datei verwendet wird. Für dieses Tutorial habe ich wieder "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 erzeugte .pem-Datei wird den privaten Schlüssel nicht enthalten.

Abschließend kombinieren Sie das Zertifikat und den Schlüssel in einer einzigen .pem-Datei:

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

24voto

Durai Amuthan.H Punkte 30175

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

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

1 Stimmen

Nachdem Sie ein p12 erstellt haben, sollte dies die Antwort sein.

9voto

capikaw Punkte 11044

->> Apples eigene Anleitung <<- ist die einzige funktionierende Anleitung, die ich gefunden habe. 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.

Den 5-stufigen pem-Erstellungsprozess finden Sie ganz unten auf der Seite.

0 Stimmen

Ja! Befolgen Sie einfach die einfache Anleitung. Nur ein einfacher openssl-Befehl. Ich weiß nicht, ob es wichtig ist, aber ich habe den Befehl per SSH auf dem Server ausgeführt, der sich mit APNS verbindet.

1 Stimmen

@tylerl, das PEM kann von jedem beliebigen Rechner aus erstellt werden - es muss nicht der Server sein, auf dem es gespeichert wird.

0 Stimmen

Muss ich diesen Prozess auf dem Server selbst ausführen, auf dem der PHP-Code bereitgestellt wird, oder kann ich die von meinem Mac generierte .pem-Datei verwenden?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X