it-swarm.dev

come importare una chiave privata in windows

Supponiamo che io abbia un certificato X.509 e una chiave privata corrispondente. Posso importare X.509 certs abbastanza facilmente in Windows, ma per quanto riguarda le chiavi private?

È l'unico modo per farlo convertendo sia la chiave cert che la chiave privata in un file "Scambio di informazioni personali (PKCS # 12)" e importandolo?

Forse questa domanda sarebbe migliore su superuser.com? Ad ogni modo, grazie!

36
neubert

La risposta alla tua domanda è . Devi convertire l'X.509 in un PFX e importarlo. Non esiste un keystore separato in Windows.

Puoi convertire il tuo certificato usando OpenSSL con il seguente comando:

openssl pkcs12 -export -out cert.pfx -inkey private.key -in cert.crt -certfile CACert.crt
39
k1DBLITZ

In Windows, tu puoi avere le chiavi private "da sole". A livello di programmazione, si utilizza CryptAquireContext() per accedere a una chiave "per nome". CryptoAPI contiene molte funzioni che consentono di importare e utilizzare le chiavi, indipendentemente dai certificati.

Tuttavia, non esiste alcuna interfaccia grafica o formato di file esistente per la gestione delle chiavi private e le applicazioni non usano le chiavi per nome. Usano certificati . I certificati, in Windows, sono archiviati "altrove", ma ogni certificato nel negozio "Mio" può facoltativamente contenere un collegamento a una chiave privata corrispondente (il collegamento sarebbe in realtà un nome CSP e il nome di un contenitore all'interno di quel CSP). Questo si associa a ciò che è previsto in vari protocolli. Ad esempio, in SSL, quando il server richiede un'autenticazione client con una chiave privata, in realtà richiede un certificato: il client deve presentare un certificato e quindi, solo allora, dimostrare che ha anche accesso alla chiave privata corrispondente.

Pertanto, in pratica, i certificati e le chiavi "convivono" e le chiavi vengono raggiunte solo attraverso i certificati. Un certificato e la sua chiave privata viaggiano insieme, e questo significa un file PKCS # 12 (aka "PFX").

6
Thomas Pornin

Un PKCS12 (* .p12 o * .pfx) è assolutamente il modo più semplice. Esistono diversi strumenti comuni per combinare una coppia di chiavi e un certificato in una p12. Il mio preferito è OpenSSL, poiché funziona su tutti i sistemi operativi su cui abbia mai avuto bisogno di usarlo ed è ragionevolmente conforme agli standard. Qui è una raccolta diversificata di pagine su come, sebbene il chilometraggio varierà in base alla modalità di memorizzazione della coppia di chiavi e del certificato.

Inoltre, la maggior parte dei dispositivi con capacità di esportazione offrirà un'opzione di generazione PKCS12 se le impostazioni consentono l'esportazione chiave: è più o meno lo standard per la maggior parte delle applicazioni abilitate PKI e i pochi casi in cui questa non è la norma (Java per esempio), lì di solito è ancora una capacità di conversione o esportazione.

Una nota: se hai un caso in cui la tua chiave si trova su un token o un modulo hardware, puoi comunque fare riferimento a Microsoft Cert Store - devi solo importare il certificato e istruire Microsoft su dove è memorizzata la chiave ... per fare ciò, è necessario seguire le istruzioni del dispositivo per l'aggiornamento dell'archivio certificati.

0
bethlakshmi