È possibile convertire un file .pfx (scambio di informazioni personali) in un file .cer (certificato di sicurezza)? A meno che non mi sbagli, un .cer non è in qualche modo incorporato in un .pfx? Vorrei un modo per estrarlo, se possibile.
È possibile convertire un file .pfx (scambio di informazioni personali) in un file .cer (certificato di sicurezza)? A meno che non mi sbagli, un .cer non è in qualche modo incorporato in un .pfx? Vorrei un modo per estrarlo, se possibile.
Risposte:
il modo semplice in cui credo è importarlo e poi esportarlo, utilizzando il gestore certificati nella console di gestione di Windows.
I file PFX sono pacchetti standard di sintassi di scambio di informazioni personali PKCS # 12 . Possono includere un numero arbitrario di chiavi private con i certificati X.509 di accompagnamento e una catena di autorità di certificazione (impostare certificati).
Se si desidera estrarre i certificati client, è possibile utilizzare lo strumento PKCS12 di OpenSSL .
openssl pkcs12 -in input.pfx -out mycerts.crt -nokeys -clcerts
Il comando sopra emetterà certificati in formato PEM. L'estensione del file ".crt" è gestita sia da macOS che da Windows.
Menzionate l'estensione ".cer" nella domanda che è convenzionalmente usata per i file codificati DER. Una codifica binaria. Prova prima il file ".crt" e se non è accettato, è facile convertire da PEM a DER:
openssl x509 -inform pem -in mycerts.crt -outform der -out mycerts.cer
Se lavori in PowerShell puoi usare qualcosa di simile al seguente, dato un file pfx InputBundle.pfx , per produrre un file di certificato codificato DER (binario) OutputCert.der :
Get-PfxCertificate -FilePath InputBundle.pfx |
Export-Certificate -FilePath OutputCert.der -Type CERT
Newline è stato aggiunto per maggiore chiarezza, ma ovviamente puoi avere tutto su un'unica riga.
Se è necessario il certificato in formato PEM con codifica ASCII / Base64, è possibile eseguire ulteriori passaggi, come documentato altrove, ad esempio qui: /superuser/351548/windows-integrated-utility-to-convert -der-to-PEM
Se è necessario esportare in un formato diverso da quello codificato DER, è possibile modificare il -Type
parametro per Export-Certificate per utilizzare i tipi supportati da .NET, come mostrato in help Export-Certificate -Detailed
:
-Type <CertType>
Specifies the type of output file for the certificate export as follows.
-- SST: A Microsoft serialized certificate store (.sst) file format which can contain one or more certificates. This is the default value for multiple certificates.
-- CERT: A .cer file format which contains a single DER-encoded certificate. This is the default value for one certificate.
-- P7B: A PKCS#7 file format which can contain one or more certificates.
Volevo aggiungere un metodo che penso fosse il più semplice di tutti.
Basta fare clic con il pulsante destro del mouse sul file pfx, fare clic su "Installa", seguire la procedura guidata e aggiungerlo a un negozio (ho aggiunto al negozio personale).
Nel menu Start digitare certmgr.msc e andare al programma CertManager.
Trova il tuo certificato pfx (le schede in alto sono i vari negozi), fai clic sul pulsante Esporta e segui la procedura guidata (esiste un'opzione per esportare come .CER)
Sostanzialmente fa la stessa cosa della risposta di Andrew, ma evita di usare Windows Management Console (passa direttamente all'importazione / esportazione).
openssl rsa -in f.pem -inform PEM -out f.der -outform DER