Come firmare e crittografare la posta usando openssl?

3

Sto tentando di inviare e crittografare la posta usando openssl.

Finora, immagino che dovrei usare questi comandi:

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]

un altro modo senza cat e 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

stesso risultato.

Funziona bene, tranne per il fatto che ho perso la prima riga di ${content} , che è fastidiosa per il contenuto di testo normale e fatale quando si invia un file binario.

Ho perso qualcosa?

prime righe di ~/tmp7/$T/mail-cs-$c (prima di essere inviate 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

EDIT:

  • Voglio usare la riga di comando, io uso già il thunderbird con il plugin appropriato, e funziona perfettamente.
  • cat e tee sono comandi standard di unix, usati molto spesso, non credo che possano far parte del problema.
  • Ho modificato il corpo per rimuovere cat e tee.
posta Archemar 08.10.2014 - 15:48
fonte

1 risposta

0

come suggerito da dave_thompson_085,

I change

 cat ${content} |\

da

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

e funziona bene, ho bisogno di capire come inviare un documento binario, ma non dovrebbe essere un problema.

ringrazia tutti per l'aiuto.

    
risposta data 10.10.2014 - 11:34
fonte

Leggi altre domande sui tag