Come posso convertire un certificato di Windows in un formato PEM, che include la catena + root?

1

Devo importare un certificato in un controllo Cisco Ironport per Web SSL. L'unico formato di input supportato è PEM.

Sulla base della mia ricerca il formato PEM supporta tutti i certificati nella catena, tuttavia non sono sicuro di come convertire un DER / CER / P7b in PEM che includa la catena.

Ho usato i seguenti comandi OpenSSL per fare la conversione, tuttavia non sembra che stia ottenendo l'intera catena. Mi manca un interruttore?

Extracting the Public key (certificate)

You will need access to a computer running OpenSSL. Copy your PFX file over to this computer and run the following command:

openssl pkcs12 -in <filename.pfx> -clcerts -nokeys -out certificate.cer

This creates the public key file named "certificate.cer" Note: These instructions have been verified using OpenSSL on Linux. Some syntax may vary on the Win32 version.

Extracting and decrypting the Private key

The WSA requires that the private key be unencrypted. Use the following OpenSSL commands:

openssl pkcs12 -in <filename.pfx> -nocerts -out privatekey-encrypted.key

You will be prompted for "Enter Import Password". This is the password created in step 11 above. You will also be prompted for "Enter PEM pass phrase". The is the encryption password (used below).

This will create the encrypted private key file named "privatekey-encrypted.key"

To create a decrypted version of this key, use the following command:

openssl rsa -in privatekey-encrypted.key -out private.key

    
posta random65537 31.12.2014 - 18:27
fonte

1 risposta

1

La specifica di openssl pkcs12 -nokeys -clcerts dice di NON emettere alcun certificato di catena. Se i certificati di catena sono presenti in PKCS12, ometti -clcerts per includerli nell'output PEM. Saranno presenti nel PKCS12 se lo crei con Windows Export Wizard e controlla Include all certificates in the certification path if possible , che non è l'impostazione predefinita (almeno sui miei sistemi). Questo (normalmente? Sempre?) Include la radice, anche se qualcosa che impersona questo argomento in SSL / TLS - che presumo sia ciò che fa Ironport - non ha realmente bisogno della radice, ma solo della catena al di sotto della radice. (Tecnicamente potrebbe necessitare di meno, a seconda del caching e della presenza, del supporto e del successo di AIA, ma diventa troppo complicato.)

Si noti che l'output di certs in formato PEM da pkcs12 -nokeys include alcune righe di informazioni prima di ogni ---- BEGIN / blob / ----- END block. Questa è un'estensione minore di PEM implementata da OpenSSL ma non da tutti. Se Ironport chiama effettivamente OpenSSL e molti programmi che richiedono PEM lo fanno perché chiamano OpenSSL, va bene. In caso contrario, e Ironport sta eseguendo la propria o un'altra implementazione PEM rigorosa, modifica il file per eliminare i commenti.

Inoltre, non è necessario creare la chiave privata crittografata e quindi decrittografarla. Generalmente è meglio crittografare la chiave privata, ma a quanto pare è necessario non crittografato, quindi è sufficiente utilizzare openssl pkcs12 -nocerts -nodes con le entrate e le uscite appropriate. A meno che tutte le istruzioni che stai citando in realtà significhino ma non dite che ha bisogno di un formato "tradizionale" non criptato (PKCS1 grezzo piuttosto che PKCS8). Per questo è necessario utilizzare OpenSSL 0.9.8 * (che è molto vecchio, ma ancora supportato sin d'ora) dove pkcs12 (import) scrive la chiave privata nel formato tradizionale, o con OpenSSL più recente lasciare pkcs12 (import) scrivere PKCS8 e quindi convertire in tradizionale con rsa ma anche in questo caso puoi avere PKCS8 e tradizionale entrambi non criptati.

Infine, per chiarezza, P7B contiene solo certs non privatekey e quindi non è sufficiente per impersonare l'argomento. Le altre scelte dell'Esportazione guidata non sono semplicemente DER e Base-64, che hanno molte altre opzioni e usi, ma DER o Base-64 (in realtà PEM) codifica del cert X.509 specificamente ; quelli non contengono né la catena né la chiave privata e sono ancora più insufficienti.

    
risposta data 01.01.2015 - 16:56
fonte

Leggi altre domande sui tag