2010-12-29 16 views
24

Per motivi estetici, vorrei usare la stessa chiave privata che ho usato per creare il mio certificato di distribuzione qualche tempo fa, per creare un nuovo certificato di sviluppo (il mio vecchio scaduto). Ma il "Come creare un certificato di sviluppo:" sul portale di provisioning di iOS richiede l'utilizzo di Keychain Access per creare una nuova chiave. Quando provo a eseguire l'accesso Portachiavi> Assistente certificato> Richiedi un certificato da un'autorità di certificazione con "(il mio nome chiave)" l'Assistente certificato non crea effettivamente un file CSR.Come posso utilizzare una chiave privata esistente per un nuovo certificato di sviluppo iOS?

Qualcuno sa se questo può essere fatto, e se sì, come?

+0

Considera la mia risposta qui sotto, che in realtà fornisce i comandi openssl necessari –

+0

@simon ... Ho il CSR con me..shall chiedo il certificato con lo stesso ora? – Saty

risposta

47

In primo luogo, ho dovuto esportare la mia chiave privata dal portachiavi come un file p12. Ho provato a scrivere questo script, ma non ho avuto successo.

  1. Aprire portachiavi e selezionare la chiave privata
  2. tasto destro del mouse e selezionare "Esporta"
  3. Utilizzare un tipo di file p12.

Eseguire il seguente comando openssl per convertire il file p12 protetto da password in un pem. openssl richiederà una password.

openssl pkcs12 -in your-newly-exported-p12-file.p12 -out your-newly-exported-p12-file-as-a-pem.pem -nodes 

Eseguire il seguente comando sul file pem per generare il csr.

openssl req -new -key your-newly-exported-p12-file-as-a-pem.pem -out your-csr-to-submit-to-apple.csr 
+1

Funziona alla grande. Openssl ti chiederà un sacco di metadati. Ho fornito la mia email ma nient'altro. Inoltre, i profili di provisioning continuano a mostrare "scaduto" dopo aver generato il nuovo certificato.Per rinnovarli, fai clic su "Modifica", trascina la casella "ID app" e seleziona la stessa cosa già selezionata (bel design Apple) e fai clic su "Salva". – DougW

+0

Grazie ... Stavo cercando di ricevere notifiche push sull'app per iPhone e, una volta creato il certificato nel profilo di provisioning e scaricato, l'ho aggiunto all'accesso con portachiavi. Quindi seleziono ENTRAMBI il certificato che ho appena aggiunto E la chiave privata utilizzata per creare il CSR dei certificati, quindi fai clic con il pulsante destro del mouse e fai clic su Esporta 2 elementi come p12. Ho quindi utilizzato la riga "openssl pkcs12" qui sopra per convertire da p12 a pem che può essere utilizzata per inviare notifiche push. – jsherk

+0

grazie amico, grazie mille mi hai davvero risparmiato il tempo :) Thumbs up –

2

Sei a tuo agio con OpenSSL e la riga di comando? C'è un discussion in una mailing list sulla creazione manuale del CSR. FWIW, non ero in grado di creare un CSR utilizzando una chiave selezionata in Accesso Portachiavi/Assistente certificato.

+0

Grazie, sembra fantastico e molto semplice. Ci proverò la prossima volta che ho bisogno di fare un CSR. –

+0

Considera la mia risposta qui sotto, che in realtà fornisce i comandi di openssl necessari. –

4

Per generare un CSR da una chiave privata esistente in Accesso Portachiavi, basta fare clic destro (due dita clic) sul chiave privata che si desidera utilizzare e selezionare richiedere un certificato da un'autorità di certificazione CON " (My Key Name) "

Quindi immettere l'indirizzo e-mail utente e l'indirizzo e-mail CA (io uso solo lo stesso indirizzo e-mail per entrambi) e quindi scegliere Salvato su disco.

+0

Mi sembra di ricordare di aver letto da qualche parte che questo non funziona con il portale di provisioning di Apple. –

+0

Funziona per me! :) – jsherk

+0

Ho provato questo numerose volte e non funziona. Ma a quanto pare lo fa per alcuni. (notato nel caso in cui altri hanno lo stesso problema frustrante) – sandstrom

0

Oggi ho passato questo inferno. Volevo automatizzare l'esportazione di una chiave per creare la CSR tramite riga di comando. Ho trovato uno strumento scritto in c che prometteva ciò che volevo: keychain_access. Ho compilato e giocato con esso, ma non è stato in grado di esportare la mia chiave di distribuzione. Ho creato nuovamente lo strumento da zero con le più recenti API di sicurezza Apple e la stampa degli attributi dell'articolo portachiavi, ma non sono riuscito a trovare la chiave per etichetta. Sono stato in grado di elencarlo senza ricerca di etichette. In un disperato tentativo che ho rinominato per digitare lo strumento di accesso portachiavi e rinominato con il vecchio nome. Dopodiché il mio strumento ha finalmente ritagliato la chiave per etichetta. E anche il tasto destro del mouse REQUEST A CERTIFICATE FROM A CERTIFICATE AUTHORITY WITH "(My Key Name)" ha ripreso a funzionare. Sembra che il nome sia stato salvato con una codifica diversa o qualcosa del genere. Lo strumento per l'accesso ai portachiavi di Apple non evento è riuscito a trovare la chiave!

Problemi correlati