Come creare il file .pfx dal certificato e dalla chiave privata?

Ho bisogno del file .pfx per installare https sul sito web su IIS.

Ho due file separati: certificato (.cer o pem) e chiave privata (.crt) ma IIS accetta solo file .pfx.

Ovviamente ho installato il certificato ed è disponibile in Gestione certificati (mmc) ma quando seleziono Esportazione guidata certificati non riesco a selezionare il formato PFX (è distriggersto)

Ci sono degli strumenti per fare questo o degli esempi C # di farlo in modo programmato?

Dovrai usare openssl.

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt

Il file chiave è solo un file di testo con la tua chiave privata in esso.

Se si dispone di una CA radice e di certificati intermedi, quindi includerli utilizzando più parametri -in

openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt -in intermediate.crt -in rootca.crt

Puoi installare openssl da qui: openssl

L’utilità della riga di comando Microsoft Pvk2Pfx sembra avere le funzionalità necessarie:

Pvk2Pfx (Pvk2Pfx.exe) è uno strumento da riga di comando copia le informazioni su chiave pubblica e chiave privata contenute nei file .spc, .cer e .pvk in un file di scambio di informazioni personali (.pfx).
http://msdn.microsoft.com/en-us/library/windows/hardware/ff550672(v=vs.85).aspx

Nota: se hai bisogno / vuoi / preferisci una soluzione C #, puoi prendere in considerazione l’idea di utilizzare http://www.bouncycastle.org/ api.

Se stai cercando una GUI Windows, controlla DigiCert. Ho appena usato questo ed è stato abbastanza semplice.

Sotto la scheda SSL, ho prima importato il certificato. Quindi, una volta selezionato il certificato, sono stato in grado di esportare come PFX, sia con che senza un file di chiavi.

https://www.digicert.com/util

NON hai bisogno di openssl o makecert o altro. Inoltre, non è necessaria la chiave personale fornita dalla CA. Posso quasi garantire che il problema è che ci si aspetta di essere in grado di utilizzare i file key e cer forniti dalla CA ma che non sono basati su “il modo IIS”. Sono così stanco di vedere le informazioni cattive e difficili qui che ho deciso di blog l’argomento e la soluzione. Quando capisci cosa sta succedendo e vedi com’è facile, vorresti abbracciarmi 🙂

Certificati SSL per IIS con PFX una volta per tutte – SSL e IIS Explained – http://rainabba.blogspot.com/2014/03/ssl-certs-for-iis-with-pfx-once-and-for.html

Utilizzare l’interfaccia utente “Certificati server” di IIS per “Generare richiesta di certificato” (i dettagli di questa richiesta non rientrano nell’ambito di questo articolo, ma tali dettagli sono fondamentali). Questo ti darà una CSR preparata per IIS. Dopodiché dai il tuo CSR al tuo CA e richiedi un certificato. Quindi prendi il file CER / CRT che ti danno, torna a IIS, “Richiesta certificato completa” nello stesso luogo in cui hai generato la richiesta. Potrebbe richiedere un .CER e potresti avere un .CRT. Sono la stessa cosa. Basta cambiare l’estensione o usare il . elenco a discesa dell’estensione per selezionare il tuo .CRT. Ora fornire un “nome descrittivo” appropriato (* .yourdomain.com, yourdomain.com, foo.yourdomain.com, ecc.) QUESTO È IMPORTANTE! Questo DEVE corrispondere a ciò che hai impostato per la CSR e a cosa ti ha fornito la CA. Se hai richiesto un carattere jolly, la CA deve aver approvato e generato un carattere jolly e devi utilizzare lo stesso. Se il tuo CSR è stato generato per foo.yourdomain.com, DEVI fornire lo stesso in questa fase.

Ho un link con il tuo requisito. Combina i file CRT e KEY in un PFX con OpenSSL

Estratti dal link sopra:

Per prima cosa è necessario estrarre il certificato CA root dal file .crt esistente, poiché è necessario in seguito. Quindi apri il .crt e fai clic sulla scheda Percorso certificazione.

Fare clic sul certificato più in alto (in questo caso VeriSign) e selezionare Visualizza certificato. Seleziona la scheda Dettagli e premi Copia su File …

Seleziona il certificato X.509 (.CER) codificato Base-64 Salvalo come rootca.cer o qualcosa di simile. Inseriscilo nella stessa cartella degli altri file.

Rinominarlo da rootca.cer a rootca.crt Ora dovremmo avere 3 file nella nostra cartella da cui possiamo creare un file PFX.

Qui è dove abbiamo bisogno di OpenSSL. Possiamo scaricarlo e installarlo su Windows , o semplicemente aprire il terminale su OSX.

MODIFICARE:

  1. C’è un link di supporto con le informazioni passo passo su come installare il certificato.

  2. Dopo aver installato con successo, esportare il certificato, scegliere il formato .pfx , includere la chiave privata.

    Nota importante : per esportare il certificato in formato .pfx è necessario seguire i passaggi sulla stessa macchina da cui è stato richiesto il certificato .

  3. Il file importato può essere caricato sul server.

Devi usare lo strumento makecert.

Aprire un prompt dei comandi come amministratore e digitare quanto segue:

 makecert -sky exchange -r -n "CN=" -pe -a sha1 -len 2048 -ss My ".cer" 

Dove = il nome del tuo cert da creare.

Quindi è ansible aprire lo snap-in Gestione certificati per la console di gestione digitando certmgr.msc nel menu Start, fare clic su personale> certificati> e il proprio certificato dovrebbe essere disponibile.

Ecco un articolo.

https://azure.microsoft.com/documentation/articles/cloud-services-certs-create/

https://msdn.microsoft.com/en-us/library/ff699202.aspx

((citazioni pertinenti dall’articolo sono di seguito))

Successivamente, è necessario creare il file .pfx che verrà utilizzato per firmare le distribuzioni. Aprire una finestra del prompt dei comandi e digitare il seguente comando:

 PVK2PFX –pvk yourprivatekeyfile.pvk –spc yourcertfile.cer –pfx yourpfxfile.pfx –po yourpfxpassword 

dove:

  • pvk – yourprivatekeyfile.pvk è il file della chiave privata creato nel passaggio 4.
  • spc – yourcertfile.cer è il file del certificato creato nel passaggio 4.
  • pfx – yourpfxfile.pfx è il nome del file .pfx che verrà creato.
  • po – yourpfxpassword è la password che si desidera assegnare al file .pfx. Verrà richiesta questa password quando si aggiunge il file .pfx a un progetto in Visual Studio per la prima volta.

(Facoltativamente (e non per l’OP, ma per i futuri lettori), è ansible creare il file .cer e .pvk da zero) (lo si farebbe PRIMA di quanto sopra). Nota mm / gg / aaaa sono segnaposti per date di inizio e fine. vedi l’articolo di msdn per la documentazione completa.

 makecert -sv yourprivatekeyfile.pvk -n "CN=My Certificate Name" yourcertfile.cer -b mm/dd/yyyy -e mm/dd/yyyy -r 

Questo è DI LONTANO il modo più semplice per convertire i file * .cer in * .pfx:

Basta scaricare il convertitore certificato portatile da DigiCert: https://www.digicert.com/util/pfx-certificate-management-utility-import-export-instructions.htm

Eseguilo, seleziona un file e ottieni il tuo * .pfx !!

Ho creato il file .pfx dai file .key e .pem.

In questo modo openssl pkcs12 -inkey rootCA.key -in rootCA.pem -export -out rootCA.pfx

Quando dici che il certificato è disponibile in MMC, è disponibile in “Utente corrente” o “Computer locale”? Ho scoperto che posso esportare la chiave privata solo se è in Computer locale.

È ansible aggiungere lo snap in per Certificati a MMC e scegliere per quale account deve gestire i certificati. Scegli il computer locale. Se il tuo certificato non è presente, importalo facendo clic con il pulsante destro del mouse sul negozio e selezionando Tutte le attività> Importa.

Passare ora al certificato importato nella versione Computer locale dello snap-in del certificato. Fare clic con il pulsante destro del mouse sul certificato e scegliere Tutte le attività> Esporta. La seconda pagina della procedura guidata di esportazione dovrebbe chiedere se si desidera esportare la chiave privata. Selezionare Sì L’opzione PFX sarà ora l’unica disponibile (è distriggersta se si seleziona no e l’opzione per esportare la chiave privata non è disponibile nell’account Utente corrente).

Ti verrà chiesto di impostare una password per il file PFX e quindi di impostare il nome del certificato.

Stavo avendo lo stesso problema. Il mio problema era che il computer che generava la richiesta iniziale del certificato si era arrestato in modo anomalo prima del completamento del processo di convalida ssl esteso. Avevo bisogno di generare una nuova chiave privata e quindi importare il certificato aggiornato dal fornitore di certificati. Se la chiave privata non esiste sul tuo computer, non puoi esportare il certificato come pfx. L’opzione è distriggersta.

Anche se è probabilmente più facile generare un nuovo CSR usando IIS (come ha affermato @rainabba), supponendo che tu abbia i certificati intermedi, ci sono alcuni convertitori online là fuori – per esempio: https://www.sslshopper.com/ssl-converter. html

Questo ti permetterà di creare un PFX dal tuo certificato e chiave privata senza dover installare un altro programma.

Nella maggior parte dei casi, se non si è in grado di esportare il certificato come PFX (inclusa la chiave privata) è perché MMC / IIS non riesce a trovare / non ha accesso alla chiave privata (utilizzata per generare il CSR). Questi sono i passaggi che ho seguito per risolvere questo problema:

  • Esegui MMC come amministratore
    • Generare la CSR utilizzando MMC. Seguire queste istruzioni per rendere esportabile il certificato.
  • Una volta ottenuto il certificato dalla CA (crt + p7b), importarli (Personale \ Certificati e Autorità di certificazione intermedia \ Certificati)
  • IMPORTANTE: fare clic con il pulsante destro del mouse sul nuovo certificato (Personale \ Certificati) Tutte le attività … Gestisci chiave privata e assegnare le autorizzazioni al proprio account o Tutti (rischioso!). Puoi tornare alle autorizzazioni precedenti una volta terminato.
  • Ora, fai clic con il pulsante destro del mouse sul certificato e seleziona Tutte le attività..Export, e dovresti essere in grado di esportare il certificato, inclusa la chiave privata come file PFX, e puoi caricarlo in Azure!

Spero che questo ti aiuti!

So che alcuni utenti hanno parlato dell’installazione di questo e quello e dell’aggiunta di programmi da riga di comando e del download …

Personalmente sono pigro e trovo tutti questi metodi macchinosi e lenti, inoltre non voglio scaricare nulla e trovare le linee cmd corrette se non dovessi.

Il modo migliore per me sul mio server IIS personale è utilizzare RapidSSLOnline. Questo è uno strumento su un server che consente di caricare il certificato e la chiave privata ed è in grado di generare per te un file pfx che è ansible importare direttamente in IIS.

Il link è qui: https://www.rapidsslonline.com/ssl-tools/ssl-converter.php

Di seguito sono riportati i passaggi utilizzati per lo scenario richiesto.

  1. Seleziona tipo corrente = PEM
  2. Cambia per = PFX
  3. Carica il tuo certificato
  4. Carica la tua chiave privata
  5. Se disponi anche di certificati CA ROOT o certificati intermedi
  6. Imposta una password di tua scelta, utilizzata in IIS
  7. Fai clic sul reCaptcha per dimostrare che non sei un bot
  8. Fai clic su Converti

E questo è che dovresti avere scaricato un PFX e usarlo nel tuo processo di importazione su IIS.

Spero che questo aiuti altre persone mentali e pigramente tecnologiche.