Genera file .pem utilizzato per configurare le notifiche push di Apple


290

Ho provato e provato a generare un file .pem, ogni volta generando certificati dall'account del cliente e quindi generando il file .pem usando il terminale, ma è inutile. Qualcuno può dare una procedura dettagliata?

Risposte:


936

Per abilitare la notifica push per la tua app iOS, dovrai creare e caricare il certificato di notifica push Apple (file .pem) per consentirci di connetterci al server push Apple per tuo conto.

( Versione aggiornata con schermate aggiornate qui )

Passaggio 1: Accedi al portale di provisioning iOS, fai clic su "Certificati" nella barra di navigazione a sinistra. Quindi, fai clic sul pulsante "+".

inserisci qui la descrizione dell'immagine

Passaggio 2: selezionare l'opzione SSL (Produzione) del servizio di notifica push di Apple nella sezione Distribuzione, quindi fare clic sul pulsante "Continua".

inserisci qui la descrizione dell'immagine

Passaggio 3: selezionare l'ID app che si desidera utilizzare per l'app BYO (come creare un ID app), quindi fare clic su "Continua" per passare al passaggio successivo.

inserisci qui la descrizione dell'immagine

Passaggio 4: seguire i passaggi "Informazioni sulla creazione di una richiesta di firma certificato (CSR)" per creare una richiesta di firma certificato.

inserisci qui la descrizione dell'immagine

Per integrare le istruzioni fornite da Apple. Ecco alcuni degli screenshot aggiuntivi per aiutarti a completare i passaggi richiesti:

Passaggio 4 Schermata supplementare 1: vai all'Assistente certificato di accesso al portachiavi sul tuo Mac.

inserisci qui la descrizione dell'immagine

Passaggio 4 Schermata supplementare 2: compilare le informazioni sul certificato. Fai clic su Continua.

inserisci qui la descrizione dell'immagine

Passaggio 5: carica il file ".certSigningRequest" che viene generato nel passaggio 4, quindi fai clic sul pulsante "Genera".

inserisci qui la descrizione dell'immagine

Passaggio 6: fare clic su "Fine" per terminare la registrazione, la pagina del portale di provisioning di iOS verrà aggiornata come la seguente schermata:

inserisci qui la descrizione dell'immagine

Quindi fare clic sul pulsante "Download" per scaricare il certificato (file .cer) che hai creato proprio ora. - Fai doppio clic sul file scaricato per installare il certificato in Keychain Access sul tuo Mac.

Passaggio 7: sul Mac, vai su "Portachiavi", cerca il certificato che hai appena installato. Se non sei sicuro di quale certificato sia quello corretto, dovrebbe iniziare con "Servizi di produzione IOS Push di Apple:" seguito dall'ID bundle dell'app.

inserisci qui la descrizione dell'immagine

Passaggio 8: espandi il certificato, dovresti vedere la chiave privata con il tuo nome o il nome della tua azienda. Seleziona entrambi gli elementi utilizzando il tasto "Seleziona" sulla tastiera, fai clic con il pulsante destro del mouse (o fai clic su cmd se usi un mouse a pulsante singolo), scegli "Esporta 2 elementi", come di seguito:

inserisci qui la descrizione dell'immagine

Quindi salva il file p12 con il nome "pushcert.p12" sul desktop: ora ti verrà chiesto di inserire una password per proteggerla, puoi fare clic su Invio per saltare la password o inserire una password che desideri.

Passaggio 9: ora la parte più difficile: apri "Terminale" sul tuo Mac ed esegui i seguenti comandi:

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

Passaggio 10: rimuovere pushcert.p12 dal desktop per evitare di caricarlo erroneamente nell'area Build Your Own. Apri "Terminale" sul tuo Mac ed esegui i seguenti comandi:

cd
cd Desktop
rm pushcert.p12

Passaggio 11: NUOVO AGGIORNAMENTO AWS: crea nuovo pushcert.p12per l'invio a AWS SNS. Fai doppio clic sul nuovo pushcert.pem, quindi esporta quello evidenziato solo sul verde.

inserisci qui la descrizione dell'immagine Credito: nuovo aggiornamento AWS

Ora hai creato con successo un certificato di notifica push Apple (file .p12)! In seguito dovrai caricare questo file nella nostra area Build Your Own. :)


11
Sembra che ora puoi esportare direttamente dal portachiavi in ​​un file PEM (passaggi 8-10).
Kyle Clegg,

10
@KyleClegg: come?
Eugene,

3
Cos'è l'area "Crea il tuo" e perché dobbiamo caricare il file pem su di esso?
Rafi,

1
perché tutte queste risposte su Internet ignorano la vera domanda continuamente posta su cosa sia il "Costruisci il tuo"? Dove carichi questo PEM se usi Xcode?
RobertyBob,

1
Nel mio caso, dovevo creare due file pem da p12 cert. Esporta semplicemente i file cert e key rispettivamente nell'accesso al portachiavi invece di esportare 2 elementi insieme. Ma questa risposta è decisamente fantastica!
wei

79

Oggi esiste una soluzione molto più semplice: pem . Questo strumento semplifica la vita.

Ad esempio, per generare o rinnovare il certificato di notifica push basta inserire:

fastlane pem 

ed è fatto in meno di un minuto. Se hai bisogno di un certificato sandbox, inserisci:

fastlane pem --development

E questo è tutto.


9
E non c'è solo PEM. L'intero strumento Fastlane è assolutamente geniale
Benjamin

È disponibile anche per sistemi non Apple?
volte il

@KrauseFx, se lo generi tramite pem, come posso farlo mostrare qui: developer.apple.com/account/ios/certificate ? Lo trovo abbastanza utile per vedere l'ultima data di scadenza ecc.? È qualcosa che succede automaticamente?
IonicBurger,

1
@Nikola Non è richiesta alcuna azione su iTunes Connect, puoi utilizzare subito quel file pem
KrauseFx

1
@mikejd non è necessario specificare quale p12 deve essere usato per pem?
Maulik,

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

funziona? Ho creato un file PEM su Windows 10 usando questo metodo, ma ho ottenuto un "Impossibile connettermi a 'ssl: \ / \ / gateway.sandbox.push.apple.com" quando uso il pem generato per inviare notifiche push.
Arivan Bastos,

3

Apple ha modificato il nome del certificato emesso. Ora puoi utilizzare lo stesso certificato sia per lo sviluppo che per la produzione. Sebbene sia ancora possibile richiedere un certificato di solo sviluppo, non è più possibile richiedere un certificato di sola produzione.

si prega di vedere sotto lo screnshot


1

è molto semplice dopo aver esportato Cert.p12 e key.p12, Di seguito troverai il comando per generare il file .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

Il comando sopra è utile sia per Sandbox che per la produzione.


1

In base alla risoluzione dei problemi relativi ai certificati push

Il certificato SSL disponibile nel tuo account del Programma per gli sviluppatori Apple contiene una chiave pubblica ma non una chiave privata. La chiave privata esiste solo sul Mac che ha creato la Richiesta di firma certificato caricata su Apple. Sono necessarie sia le chiavi pubbliche che quelle private per esportare il file PEM (Privacy Enhanced Mail).

Probabilmente il motivo per cui non è possibile esportare un PEM funzionante dal certificato fornito dal client è che non si dispone della chiave privata. Il certificato contiene la chiave pubblica, mentre la chiave privata esiste probabilmente solo sul Mac che ha creato il CSR originale.

Puoi:

  1. Cerca di ottenere la chiave privata dal Mac che ha originariamente creato il CSR. L'esportazione della PEM può essere eseguita da quel Mac oppure puoi copiare la chiave privata su un altro Mac.

o

  1. Crea un nuovo CSR, un nuovo certificato SSL e questa volta esegui il backup della chiave privata.

0

Grazie! a tutte le risposte sopra. Spero che tu abbia un file .p12. Ora, apri il terminale scrivi il seguente comando. Impostare il terminale sul percorso in cui è stato inserito il file .12.

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

Ora viene generato il tuo file .pem .

Verifica del file .pem Per prima cosa, apri il .pem in un editor di testo per visualizzarne il contenuto. Il contenuto del certificato deve essere nel formato mostrato di seguito. Assicurarsi che il file pem contenga sia il contenuto del certificato (da INIZIO CERTIFICATO a FINE CERTIFICATO) sia la chiave privata del certificato (da INIZIO A CHIAVE PRIVATA a FINE A CHIAVE PRIVATA):

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

Inoltre, si controlla la validità del certificato andando su Decodificatore certificato SSLShopper e incollando il contenuto del certificato (da INIZIARE CERTIFICATO a FINE CERTIFICATO) per ottenere tutte le informazioni sul certificato come mostrato di seguito:

inserisci qui la descrizione dell'immagine

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.