O openssl sempre criptografa a chave privada?

6

Ao usar o openssl 0.9.8 para criar uma nova chave cert + auto-assinada, há um parâmetro -nodes que pode ser usado para dizer ao openssl para não criptografar a chave privada que ele cria. Por exemplo:

openssl req -x509 -nodes -days 365 \
    -subj '/C=US/ST=Florida/L=Jupiter/CN=test.com' \
    -newkey rsa:1024 -keyout mykey.pem -out mycert.pem

Mas com o novo openssl v1.0.1, parece que o parâmetro -nodes é ignorado. Pelo que posso dizer, a chave privada é sempre criptografada. Estou usando o openssl errado? Existe um parâmetro diferente que eu deveria estar usando em vez disso?

O parâmetro -nodes está documentado como:

if this option is specified then if a private
key is created it will not be encrypted

Fonte: link

Mais detalhes como solicitado:

Com o openssl 0.9.8, a chave + cert pode ser importada diretamente para outros dispositivos de terceiros que temos que esperam chaves e certificados não criptografados. Isso funciona sem nenhum problema.

Mas ao usar o openssl 1.0.1, esses dispositivos de terceiros reclamam que a chave é inválida. A mensagem de erro exata é:

ERROR: Private key for 'My Cert' does not appear to be a valid
RSA private key in PEM format.

Este é um sistema de código fechado e não fornece detalhes adicionais. O que eu descobri ao brincar com isso hoje é se eu executar a chave privada v1.0.1 através deste comando:

openssl rsa -in mykey.pem -out decryptedkey.pem

... então, nesse ponto, o sistema de terceiros não tem problemas para importar o certificado e a chave descriptografada. E quando eu executo este comando na chave v1.0.1:

 openssl rsa -text -in mykey.pem

... o texto da chave privada não é o mesmo que está no arquivo v1.0.1 mykey.pem. É por isso que achei que a chave estava de alguma forma criptografada.

    
por Stéphane 26.05.2012 / 07:58

1 resposta

8

Parece que o formato padrão foi alterado em versões posteriores. Versões anteriores parecem produzir um formato PKCS # 1 RSAPrivateKey, conforme indicado por

-----BEGIN RSA PRIVATE KEY-----

e as versões posteriores geram um formato PKCS # 8 PrivateKeyInfo, conforme indicado por

-----BEGIN PRIVATE KEY-----

quando você converte openssl rsa -in mykey.pem -out decryptedkey.pem de #8 para #1

    
por 26.05.2012 / 09:31