Migrazione di una chiave x509 utilizzando KSP (CNG) in CSP (CryptoAPI) in Windows

1

Ho un certificato di firma del codice rilasciato da una CA commerciale e la chiave è stata generata sul mio computer di sviluppo locale utilizzando i nuovi provider di archiviazione di Cryptography Next Generation.

Sfortunatamente, lo strumento di firma del codice manifest di ClickOnce di Visual Studio supporta solo le chiavi CSP / CrytoAPI meno recenti per la firma di questi manifest (l'errore che ottengo è: "Si è verificato un errore durante la firma: tipo di provider non specificato specificato.").

Attualmente ho il certificato come file .PFX sul mio computer. Quando uso certutil per visualizzare i dettagli del certificato, mostra questi dettagli:

Provider = Microsoft Software Key Storage Provider
ProviderType = 0

Come posso cambiare la mia chiave privata / certificato usando CNG per usare lo stile più vecchio di CrytoAPI? Non voglio acquistare un altro certificato se possibile.

    
posta Jack Scott 18.03.2015 - 12:21
fonte

1 risposta

2

Può essere fatto usando openssl . La procedura è la seguente:

  • converte il codice sorgente PFX in PEM
  • converte il PEM in PFX

Esempio:

openssl pkcs12 -in mycert-cng.pfx -out mycert.pem
openssl pkcs12 -export -in mycert.pem -out mycert-cryptoapi.pfx

Sulla mia macchina (Windows 8.1, openssl 0.9.8zf), il pfx risultante faceva riferimento al CSP "Microsoft Enhanced Cryptographic Provider v1.0". openssl pkcs12 fornisce anche un'opzione per richiedere un CSP specifico ( -csp "CSP name" ).

I binari di Windows di openssl possono essere scaricati, ad es. da qui .

    
risposta data 09.09.2015 - 13:46
fonte

Leggi altre domande sui tag