Come creare un certificato P12 per la distribuzione iOS


103

Abbiamo un'app iOS il cui certificato di notifica push è scaduto e stiamo cercando di crearne uno nuovo. Ho creato nuovi certificati nel portale di provisioning (ios_developer.cer, ios_distribution.cer) e li ho scaricati. Stavo seguendo le istruzioni qui su Stack Overflow per convertirlo in PEM e poi in file P12, ma sono bloccato. Quando poi provo a convertire il PEM in P12, vuole una chiave privata di qualche tipo e non so dove ottenerla.

Ho anche provato a caricarli in Accesso portachiavi. Avevo letto che potresti esportarli come P12 da lì, ma quando eseguo l'importazione, non vengono visualizzati da nessuna parte.

Risposte:


127

La tua chiave privata viene generata quando hai creato la richiesta di firma in Accesso Portachiavi. Dopo che il certificato è stato generato e scaricato, facendo doppio clic su di esso verrà aggiunto ad Accesso Portachiavi dove verrà abbinato alla chiave privata. È quindi possibile selezionare il certificato e aprire la freccia per selezionare anche la chiave privata ed esportarli insieme come file .p12 da Accesso Portachiavi.


12
Non importa; capito. Non c'è da stupirsi che le persone abbiano questi problemi con questo ... è fonte di confusione!
RobG

14
Sarebbe bello ma per me la pagina 12 è disattivata :(
Rob

14
@Rob devi selezionare la chiave privata e non l'intero certificato. Nei portachiavi in ​​alto a sinistra seleziona "Accedi", quindi sotto in Categoria seleziona "certificati" vedrai che il certificato ha una freccia a discesa ora, fai clic su di esso e la chiave privata mostrerà il clic destro ed esporterà il cappello come .p12
tutts

6
Non ricevo neanche l'opzione a discesa. Ho fatto doppio clic sul certificato dopo il download e viene visualizzato nel portachiavi di accesso, ma non sotto la chiave privata. Lo vedo solo sotto Certificati, non c'è connessione tra la chiave e il certificato che posso vedere.
setherj

6
anch'io. Nessun elenco a discesa, pagina 12 in grigio
trainoasis

76

I file .p12 vengono utilizzati per pubblicare l'app sull'App Store di Apple

A. Crea un file CSR (.certSigningRequest)

  1. Apri Accesso portachiavi da Utilità
  2. Dalla barra degli strumenti Accesso Portachiavi selezionare Accesso Portachiavi -> Preferenze
  3. Nella finestra a comparsa selezionare la scheda Certificati
  4. Imposta "Protocollo stato certificato in linea" e "Elenco revoche certificati" su "Disattivato"
  5. Chiudi questa finestra
  6. Ora dalla barra degli strumenti, apri Accesso Portachiavi> Assistente certificati> Richiedi un certificato da un'autorità di certificazione
  7. Inserisci l'indirizzo e-mail e il nome comune che hai utilizzato per registrarti nel Programma per sviluppatori iOS
  8. Lascia vuoto il campo Email CA e seleziona "Salvato su disco" e "Consenti di specificare le informazioni sulla coppia di chiavi"
  9. Fare clic su Continua
  10. Scegli un nome file e una destinazione sul tuo disco rigido
  11. Fare clic su Salva
  12. Nella finestra successiva, imposta il valore "Dimensione chiave" su "2048 bit"
  13. Imposta "Algorithm" su "RSA"
  14. Fare clic su Continua

Questo creerà e salverà il tuo file certSigningRequest (CSR) sul tuo disco rigido. Verranno inoltre create una chiave pubblica e una privata in Accesso portachiavi con il nome comune inserito.

B. Crea il file ".cer" nell'account sviluppatore iOS

  1. Accedi all'account sviluppatore Apple Fai clic su "Certificati, identificatori e profili"
  2. Fai clic su "Provisioning Profiles"
  3. Nella sezione "Certificati" fai clic su "Produzione"
  4. Fare clic sul pulsante "Aggiungi" (+) in alto a destra del pannello principale
  5. Ora scegli "App Store e ad hoc"
  6. Fare clic su Continua
  7. Fai clic su "Scegli file" e trova il file CSR che hai creato dal tuo disco rigido
  8. Fare clic su Genera
  9. Fare clic su Download per ottenere il file

C. Installa .cer e genera il certificato .p12

  1. Trova il file .cer che hai scaricato e fai doppio clic
  2. Impostare il menu a discesa Accesso su "login" e fare clic su Aggiungi
  3. Apri KeyChain Access e troverai il profilo creato nel passaggio A
  4. Puoi espandere il profilo della "chiave privata" (mostra il certificato che hai aggiunto)
  5. Seleziona solo questi due elementi (non la chiave pubblica)
  6. Fare clic con il tasto destro e fare clic su "Esporta 2 elementi ..." dal popup
  7. Ora assicurati che il formato del file sia ".p12" e scegli il nome del file e la destinazione sul tuo disco rigido
  8. Fare clic su Salva. Ora ti verrà chiesto di impostare una password ma tienili entrambi vuoti
  9. Fare clic su OK. Ora hai un file .p12 sul tuo disco rigido

Prendi nota che se il problema persiste, prova anche il passaggio seguente:

Se il tuo portachiavi è presente in iCloud, rimuovi tutto il contenuto del portachiavi da iCloud ed esegui una nuova configurazione in iCloud.Questo dovrebbe funzionare.


ho cancellato accidentalmente la mia chiave privata da ke-chain. quindi ora non riesco a vedere la chiave privata sotto il certificato. ho un file CSR come installare di nuovo la chiave privata da CSR?
Avijit Nagare

1
È stato davvero difficile capire il processo Apple per ottenere un file .p12 generato dato che sono un ragazzo di Windows Phone e questo post mi ha davvero aiutato a capirlo.
Mohammed Aamir K

1
Istruzioni molto utili. Molte grazie. Ha risparmiato molto tempo.
Alix

Perché disattivare "Online Certificate Status Protocol" e l'altro?
Nate

1
Ho risolto questo problema. Per spiegarti cosa ho fatto: assicurati che il tuo portachiavi non appaia in iCloud. Una volta che è presente, c'è il rischio di ottenere il problema sopra. Ho disinstallato tutto, fatto una nuova configurazione senza utilizzare i dati nel mio iCloud, poi ha funzionato.
Nazar Medeiros

32

OK, problema risolto! sembra che quando faccio doppio clic sul certificato, lo installa automaticamente nel portachiavi SYSTEM - non so perché. Quindi, invece, trascino semplicemente il certificato nel portachiavi LOGIN e poi tutto va bene. Grazie a questo articolo -> Aggiunta di certificati al portachiavi e generazione di file in formato .p12 - alon rosenfeld 10 mesi fa


1
Oh, wow. Ho passato ore a cercare di capirlo. Avrei sprecato un'altra settimana se non fosse stato per questa risposta.
B Seven

1
Grazie mille. Ho perso ore cercando di capirlo.
SaltedBlowfish

1
Sì, ore di tempo sprecate, risparmiate :)
Sahan

29

non otterrai l'opzione di espansione a meno che non filtri scegliendo (Certificati) dall'angolo inferiore sinistro del portachiavi



3

Per chiunque avesse ancora questo problema, la soluzione per me era NON selezionare entrambi e "Esporta 2 elementi" (la chiave e il certificato), ma piuttosto esportare il certificato che GIÀ include la chiave. A partire dal 2016 penso che questo sia il modo per farlo perché i caricamenti precedenti che funzionavano con gli elementi di esportazione 2 non funzionano più.


Non riesco a esportare solo il certificato come p12, sei sicuro che sia il modo corretto?
Cecil Rodriguez

Anch'io. Questo è molto importante.
Gautam Jain

3

Per ottenere il tuo file p12 andare in questo modo ..

Fase 1. In XCode > Vai a Impostazioni progetto > Generali > Firma sezione> certificato di firma

Guarda quale certificato stai utilizzando per questa particolare app come mostrato nell'immagine qui sotto

inserisci qui la descrizione dell'immagine

Passaggio 2. Apri Portachiavi > nella sezione Categoria in basso a sinistra > Certificati

Cerca il certificato e apri il bambino facendo clic sulla freccia in basso come mostrato nell'immagine

inserisci qui la descrizione dell'immagine

Passaggio 3. Fare clic con il tasto destro ed esportare come "Certificates.p12" fornendo la propria password, ad es. "123456"


Non ho quella freccia da espandere
Nazar Medeiros
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.