¿Cómo firmar y cifrar el correo usando openssl?

3

Estoy intentando enviar y cifrar el correo usando openssl.

Hasta ahora, creo que debería usar estos comandos:

cat ${content} | \
    openssl smime -encrypt -inkey lib/me.crt  -aes256 -subject "$titre (cs)" -to [email protected] lib/MAQUETTE1-me.pem | \
    openssl smime -sign -inkey lib/myroot.key -signer lib/MAQUETTE1-myroot.pem -passin pass:myroot1 | \
    tee ~/tmp7/$T/mail-cs-$c |\
    sendmail -t [email protected]

de otra manera sin cat y tee

openssl smime -encrypt -in ${contents} -out tmp1 -inkey lib/me.crt  -aes256 -subject "$titre (cs)" -to [email protected] lib/MAQUETTE1-me.pem 
openssl smime -sign -in tmp2 -out tmp2 -inkey lib/myroot.key -signer lib/MAQUETTE1-myroot.pem -passin pass:myroot1 

sendmail -t [email protected] < tmp2

mismo resultado.

Esto funciona bien, excepto que pierdo la primera línea de ${content} , lo cual es molesto para el contenido de texto sin formato y es fatal al enviar un archivo binario.

¿Me he perdido algo?

primeras líneas de ~/tmp7/$T/mail-cs-$c (antes de enviarse a sendmail)

    MIME-Version: 1.0
    Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg="sha1"; boun
    dary="----396B3702CFDE34F2D44DF5C360D9F6FD"

    This is an S/MIME signed message

    ------396B3702CFDE34F2D44DF5C360D9F6FD
    To: [email protected]
    Subject: contenu du tex 17 (cs)
    MIME-Version: 1.0
    Content-Disposition: attachment; filename="smime.p7m"
    Content-Type: application/x-pkcs7-mime; smime-type=enveloped-data; name="smime.p7m"
    Content-Transfer-Encoding: base64

    MII5sgYJKoZIhvcNAQcDoII5ozCCOZ8CAQAxgfcwgfQCAQAwXTBQMQswCQYDVQQG
    EwJGUjEPMA0GA1UECAwGRnJhbmNlMQ0wCwYDVQQHDARMeW9uMQ0wCwYDVQQKDARP

EDITAR:

  • Quiero usar la línea de comandos, ya uso thunderbird con el complemento adecuado, y funciona bien.
  • cat y tee son comandos estándar de Unix, se usan muy a menudo, no creo que puedan ser parte del problema.
  • Edité el cuerpo para eliminar el gato y la camiseta.
pregunta Archemar 08.10.2014 - 15:48
fuente

1 respuesta

0

según lo sugerido por dave_thompson_085,

cambio

 cat ${content} |\

por

 $(file --mime-type ${content} | awk '{printf "Content-type: %s\n",$2} ' ; echo ; cat ${content} ) |\

y funciona bien, tengo que averiguar cómo enviar un documento binario, pero eso no debería ser un problema.

gracias a todos por ayuda.

    
respondido por el Archemar 10.10.2014 - 11:34
fuente

Lea otras preguntas en las etiquetas