openssl converte id_rsa.pub para saída DER

2

Estou tendo problemas para entender como usar a ferramenta openssl para converter chaves públicas de rsa.

Isso funciona bem para uma chave privada

$ openssl rsa -in id_rsa -pubout -outform DER > out
writing RSA key

Se eu tiver apenas uma chave pública, pensei em fazer o mesmo e adicionar "-pubin". Mas eu recebo um erro enigmático reclamando que estava esperando uma chave pública ... mas foi isso que eu dei.

$ openssl rsa -pubin -in id_rsa.pub -pubout -outform DER > out
unable to load Public Key
140028314654360:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:701:Expecting: PUBLIC KEY

Caso eu devesse usar pkey, tentei fazer isso e ainda recebo esse erro, mas sem a segunda linha

$ openssl pkey -pubin -in id_rsa.pub -pubout -outform DER > out
unable to load Public Key

Alguma idéia?

    
por BuddyJohn 28.09.2016 / 04:42

1 resposta

3

O OpenSSL não entende as chaves públicas no formato OpenSSH. (Na maioria das vezes é apenas coincidência que ambos usem o mesmo formato de chave privada - de fato, o recente OpenSSH começou a usar um formato diferente e incompatível.)

Com o OpenSSH recente, você pode usar ssh-keygen -f id_rsa -e -m PEM para obter um arquivo PKCS # 1.

Da mesma forma, ssh-keygen -f id_rsa -e -m PKCS8 fornecerá a chave no formato PKCS # 8.

Você também pode extrair a chave pública de formato OpenSSL do arquivo privado usando -in id_rsa -pubout .

    
por 28.09.2016 / 08:28