Ho un file PKCS12 contenente la catena di certificati completa e la chiave privata. Ho bisogno di suddividerlo in 3 file per un'applicazione. I 3 file di cui ho bisogno sono i seguenti (in formato PEM):
- un file chiave non crittografato
- un file di certificato client
- un file di certificato CA (root e tutti gli intermedi)
Questo è un compito comune che devo svolgere, quindi sto cercando un modo per farlo senza alcuna modifica manuale dell'output.
Ho provato quanto segue:
openssl pkcs12 -in <filename.pfx> -nocerts -nodes -out <clientcert.key>
openssl pkcs12 -in <filename.pfx> -clcerts -nokeys -out <clientcert.cer>
openssl pkcs12 -in <filename.pfx> -cacerts -nokeys -chain -out <cacerts.cer>
Funziona bene, tuttavia, l'output contiene attributi bag, che l'applicazione non sa come gestire.
Dopo alcune ricerche ho trovato una soluzione suggerita di passare i risultati attraverso x509 per eliminare gli attributi del sacchetto.
openssl x509 -in <clientcert.cer> -out <clientcert.cer>
Funziona, ma ho riscontrato un problema con il file cacert. Il file di output contiene solo uno dei 3 certificati nella catena.
C'è un modo per evitare di includere gli attributi bag nell'output del comando pkcs12 o un modo per fare in modo che l'output del comando x509 includa tutti i certificati? Inoltre, se eseguirlo attraverso x509 è la soluzione più semplice, c'è un modo per convogliare l'output da pkcs12 a x509 invece di scrivere due volte il file?