Não é possível assinar S / MIME usando o OpenSSL, mesmo que "verifique" o suce

1

Eu tenho um certificado de cliente no Chrome que usei para fazer login no StartSSL. Eu exportei-o usando pk12util para certfile.p12 . Agora eu quero usá-lo para assinar com S / MIME.

Eu converti o arquivo p12 para pem .

Primeiro, confirmo que o certificado funcionará para essa finalidade:

$ openssl verify -purpose smimesign -verbose -CAfile ca-bundle.crt certfile.pem
certfile.pem: OK

Agora eu tento assinar:

$ echo "lol" | openssl smime -sign -CAfile ca-bundle.crt -signer certfile.pem
unable to load signing key file
3074062600:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY

Se eu usar o arquivo p12 original, ele também não funcionará, mas com outra mensagem de erro:

$ openssl verify -purpose smimesign -verbose -CAfile ca-bundle.crt certfile.p12
unable to load certificate
3074066696:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: TRUSTED CERTIFICATE

O que devo fazer para que eu possa assinar mensagens com certificados StartSSL gratuitos?

    
por Janus Troelsen 26.02.2014 / 17:09

1 resposta

3

Esqueci o sinalizador -nodes ao criar o pem . Isso inclui a chave privada.

openssl pkcs12 -in certfile.p12 -nodes -out certfile2.pem

Este pem pode ser usado para assinar.

    
por 26.02.2014 / 19:42