Fechada. Esta pergunta está fora do tópico . Atualmente não está aceitando respostas.

Comentários

Resposta

É muito fácil fazer isso com o openssl.

Digamos que foo.crt é o seu arquivo crt. Em seguida,

$ openssl x509 -in foo.crt -text -noout 

imprimirá todas as informações necessárias (emissor, pkey: módulo rsa e expoente, algoritmo de assinatura, etc.) em formato de texto.

Se você fornecer

$ openssl x509 -in foo.crt -text -noout > foo.txt 

, você salvará as informações anteriores no arquivo foo.txt.

Para responder à sua pergunta

Você pode me dizer como posso extrair deste arquivo uma chave pública pronta para uso em formato hexadecimal (byte)?

uma maneira de fazer isso é primeiro exportar a chave pública e, em seguida, convertê-la para a forma hexadecimal

 $ openssl x509 -in foo.crt -noout -pubkey > foo-public $ openssl rsa -noout -text -in foo-public -pubin > foo-public-hex 

Agora foo-public- hex contém sua pkey em formato hexadecimal.

Então você escreveu

Eu sei que neste arquivo está p, q e resto, mas Quero a chave pública final pronta para uso.

Não tenho certeza se estou entendendo … a chave privada não está no arquivo .crt, mas em O arquivo .key e o servidor não o enviarão ao cliente.

Se foo.key for sua chave privada, então

$openssl rsa -noout -text -in foo.key 

você verá o expoente privado e os primos p, q em formato hexadecimal.

Comentários

  • Nitpick: a linha de comando do openssl está disponível e funciona da mesma forma em todos os Unixes e Windows, não apenas no Linux. VMS é um pouco diferente, mas não muito.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *