2015-01-21 41 views
6

Ho il requisito di estrarre la chiave pubblica (RSA) da un file *.cer. Desidero estrarre la chiave e memorizzarla in un file .pem in modo da poter utilizzare il suo valore per crittografare i valori utilizzando jsencrypt.Come estrarre la chiave pubblica RSA da un file .cer e memorizzarla in un file .pem utilizzando OpenSSL?

Il seguente comando converte un .cer-.pem:

openssl x509 -inform der -in certificate.cer -out certificate.pem 

Eppure non genera un file con la chiave pubblica, ma un file con il contenuto del file *.cer.

-----BEGIN CERTIFICATE----- 
MIICPDCCAamgAwIBAg............ 
*lots of extra contents* 
-----END CERTIFICATE----- 

Quale comando devo usare per estrarre la chiave pubblica e conservarla in un file .pem?

+0

Stack Overflow è un sito per questioni di programmazione e sviluppo. Questa domanda sembra essere fuori tema perché non riguarda la programmazione o lo sviluppo. Vedi [Quali argomenti posso chiedere qui] (http://stackoverflow.com/help/on-topic) nel Centro assistenza. Forse [Super User] (http://superuser.com/) o [Unix & Linux Stack Exchange] (http://unix.stackexchange.com/) sarebbe un posto migliore dove chiedere. Vedi anche [Dove posso pubblicare domande su Dev Ops?] (Http://meta.stackexchange.com/q/134306) – jww

+1

Il combattimento con queste cose è spesso un lotto di sviluppatori. Ci sono molte domande su SO sulla gestione dei certificati. Non sono Super User o Linux o Dev Ops, che non sono abbastanza specifici. Credo che questo sia in effetti il ​​posto giusto. – Ghoti

risposta

17

Utilizzando questo comando sono riuscito a generare il .pem con il contenuto della chiave pubblica.

openssl x509 -inform der -in certificate.cer -pubkey -noout > certificate_publickey.pem 

che produce:

-----BEGIN PUBLIC KEY----- 
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsM+whXrxmbCkPfkwY2EehYpIp 
*blah blah blah blah* 
-----END PUBLIC KEY----- 
+4

Grazie. Solo una correzione: per un input di file .cer, il parametro 'inform' dovrebbe essere' der' – Gobe

+2

Ero abbastanza sicuro che quello che ho scritto nella mia risposta era corretto e ha funzionato per me ... Ho usato '-inform pem '. Anche se '-inform der' funziona anche, allora è bello. –

+1

Per chiunque altro provi a farlo, '-INform DER' non funzionerebbe per me, ma' -inform PEM' funziona. –