OPENSSL-SMIME(1ssl) OpenSSL OPENSSL-SMIME(1ssl) NOM openssl-smime - S/MIME command SYNOPSIS openssl smime [-help] [-encrypt] [-decrypt] [-sign] [-resign] [-verify] [-pk7out] [-binary] [-crlfeol] [-cipher] [-in file] [-certfile file] [-signer file] [-nointern] [-noverify] [-nochain] [-nosigs] [-nocerts] [-noattr] [-nodetach] [-nosmimecap] [-recip file] [-inform DER|PEM|SMIME] [-outform DER|PEM|SMIME] [-keyform DER|PEM|P12|ENGINE] [-passin arg] [-inkey filename|uri] [-out file] [-content file] [-to addr] [-from ad] [-subject s] [-text] [-indef] [-noindef] [-stream] [-md digest] [-CAfile file] [-no-CAfile] [-CApath dir] [-no-CApath] [-CAstore uri] [-no-CAstore] [-engine id] [-rand files] [-writerand file] [-allow_proxy_certs] [-attime timestamp] [-no_check_time] [-check_ss_sig] [-crl_check] [-crl_check_all] [-explicit_policy] [-extended_crl] [-ignore_critical] [-inhibit_any] [-inhibit_map] [-partial_chain] [-policy arg] [-policy_check] [-policy_print] [-purpose purpose] [-suiteB_128] [-suiteB_128_only] [-suiteB_192] [-trusted_first] [-no_alt_chains] [-use_deltas] [-auth_level num] [-verify_depth num] [-verify_email email] [-verify_hostname hostname] [-verify_ip ip] [-verify_name name] [-x509_strict] [-issuer_checks] [-provider name] [-provider-path path] [-provparam [name:]key=value] [-propquery propq] [-config configfile] recipcert ... DESCRIPTION This command handles S/MIME mail. It can encrypt, decrypt, sign and verify S/MIME messages. OPTIONS There are six operation options that set the type of operation to be performed: -encrypt, -decrypt, -sign, -resign, -verify, and -pk7out. These are mutually exclusive. The meaning of the other options varies according to the operation type. -help Afficher un message d'utilisation. -encrypt Chiffrer un message pour les certificats de destinataires donnes. Le fichier d'entree est le message a chiffrer. Le fichier de sortie est le message chiffre au format MIME. Note that no revocation check is done for the recipient cert, so if that key has been compromised, others may be able to decrypt the text. -decrypt Dechiffrer un message en utilisant le certificat et la clef privee fournis. Le fichier d'entree attendu est un message chiffre au format MIME. Le fichier de sortie est le message dechiffre. -sign Signer un message en utilisant le certificat et la clef privee fournis. Le fichier d'entree est le message a signer. Le fichier de sortie est le message signe au format MIME. -resign Re-signer un message a partir d'un message existant et au moins un nouveau signataire. -verify Verifier un message signe. Un message signe est attendu en entree, les donnees signees sont envoyees en sortie. Les signatures en texte clair et opaques sont prises en charge. -pk7out Ecrire une structure PKCS#7 encodee PEM en sortie a partir d'un message en entree. -in fichier Le message d'entree a chiffrer ou signer, ou le message MIME a dechiffrer ou verifier. -out filename Le texte de message qui a ete dechiffre ou verifie, ou le message de sortie au format MIME qui a ete signe ou verifie. -inform DER|PEM|SMIME The input format of the PKCS#7 (S/MIME) structure (if one is being read); the default is SMIME. See openssl-format-options(1) for details. -outform DER|PEM|SMIME The output format of the PKCS#7 (S/MIME) structure (if one is being written); the default is SMIME. See openssl-format-options(1) for details. -keyform DER|PEM|P12|ENGINE The key format; unspecified by default. See openssl-format-options(1) for details. -stream, -indef Les options -stream et -indef sont equivalentes et activent l'utilisation de flux d'entrees et sorties pour les operations d'encodage. Cela permet le traitement de donnees en une seule passe sans devoir faire tenir tout le contenu en memoire, avec la possibilite de prendre en charge de tres gros fichiers. Le flux est automatiquement defini pour la signature S/MIME avec donnees detachees si le format de sortie est SMIME, et actuellement desactive par defaut pour toutes les autres operations. -noindef Desactiver le flux d'entrees et sorties la ou cela produirait un encodage construit de taille indefinie. Cette option ne sert actuellement a rien. A l'avenir, le flux sera active par defaut sur toutes les operations adequates, et cette option permettra de le desactiver. -content fichier Cela indique un fichier avec le contenu detache, ce n'est utile qu'avec la commande -verify. Ce n'est utilisable que si la structure PKCS#7 utilise la forme de signature detachee ou le contenu n'est pas inclus. Cette option ecrasera tout le contenu si le format d'entree est S/MIME et qu'il utilise le type de contenu MIME multipart/signed. -text Cette option ajoute les en-tetes MIME de texte clair (text/plain) au message fourni en cas de chiffrement ou de signature. En cas de dechiffrement ou de verification, cela supprime les en-tetes de texte : si le message dechiffre ou verifie n'est pas de type MIME text/plain, alors une erreur survient. -md algorithme L'algorithme de signature a utiliser lors de signature ou re-signature. En cas d'absence, l'algorithme de signature par defaut pour la clef de signature sera utilise (en general SHA1). -chiffrement The encryption algorithm to use. For example, DES (56 bits) - -des, triple DES (168 bits) - -des3, or AES (256 bits) - -aes256. Any standard algorithm name (as used by the EVP_get_cipherbyname() function) can also be used, preceded by a dash, for example -aes-128-cbc. See openssl-enc(1) for a list of ciphers supported by your version of OpenSSL. If not specified, AES-256-CBC is used as the default. Only used with -encrypt. -nointern Lors de la verification d'un message, les certificats inclus (s'il y en a) sont generalement recherches dans le message pour trouver le certificat de signature. Avec cette option, seuls les certificats indiques dans l'option -certfile sont utilises. Les certificats fournis peuvent cependant toujours etre utilises comme autorites de certification non dignes de confiance. -noverify Ne pas verifier le certificat des signataires d'un message signe. -nochain Ne pas enchainer la verification des certificats de signataires : c'est-a-dire ne pas utiliser les certificats dans le message signe comme autorites de certification non dignes de confiance. -nosigs Don't try to verify the signatures on the message. -nocerts When signing a message, the signer's certificate is normally included. With this option it is excluded. This will reduce the size of the signed message, but the verifier must have a copy of the signers certificate available locally (passed using the -certfile option for example). -noattr Normalement, quand un message est signe, un ensemble d'attributs est inclus, y compris l'heure de signature et les algorithmes symetriques pris en charge. Avec cette option, ils ne sont pas inclus. -nodetach Lors de la signature d'un message en utilisant une signature opaque : cette forme resiste mieux a la traduction par relais de message, mais ne peut pas etre lue par des clients de lecture de courriers qui ne prennent pas en charge S/MIME. Sans cette option, une signature en clair avec le type MIME multipart/signed est utilisee. -nosmimecap When signing a message, do not include the SMIMECapabilities attribute. -binary Normalement, le message d'entree est converti au format << canonique >>, c'est a dire en utilisant effectivement RC et PAL (CR et LF en anglais) comme fin de ligne : conformement a la specification S/MIME. Quand cette option est presente, aucune traduction n'est realisee. C'est utile lors du traitement de donnees binaires qui pourraient ne pas etre au format MIME. -crlfeol Normally the output file uses a single LF as end of line. When this option is present CRLF is used instead. -certfile fichier Allows additional certificates to be specified. When signing these will be included with the message. When verifying, these will be searched for signer certificates and will be used for chain building. The input can be in PEM, DER, or PKCS#12 format. -signer fichier Un certificat de signature lors de la signature ou re-signature d'un message, cette option peut etre utilisee plusieurs fois si plus d'un signataire est necessaire. Si un message est en cours de verification, alors les certificats des signataires seront ecrits dans ce fichier si la verification est reussie. -recip fichier Le certificat des destinataires lors du dechiffrement d'un message. Ce certificat doit correspondre a celui des destinataires du message ou alors une erreur survient. -inkey filename|uri La clef privee a utiliser lors de la signature ou du dechiffrement. Cela doit correspondre au certificat correspondant. Si cette option n'est pas indiquee, alors la clef privee doit etre incluse dans le fichier de certificats indique avec les options -recip ou -signer. Lors de la signature, cette option peut etre utilisee plusieurs fois pour indiquer des clefs successives. -passin param The private key password source. For more information about the format of arg see openssl-passphrase-options(1). -to, -from, -subject The relevant mail headers. These are included outside the signed portion of a message so they may be included manually. If signing then many S/MIME mail clients check the signers certificate's email address matches that specified in the From: address. -allow_proxy_certs, -attime, -no_check_time, -check_ss_sig, -crl_check, -crl_check_all, -explicit_policy, -extended_crl, -ignore_critical, -inhibit_any, -inhibit_map, -no_alt_chains, -partial_chain, -policy, -policy_check, -policy_print, -purpose, -suiteB_128, -suiteB_128_only, -suiteB_192, -trusted_first, -use_deltas, -auth_level, -verify_depth, -verify_email, -verify_hostname, -verify_ip, -verify_name, -x509_strict -issuer_checks Set various options of certificate chain verification. See "Verification Options" in openssl-verification-options(1) for details. Any verification errors cause the command to exit. -CAfile file, -no-CAfile, -CApath dir, -no-CApath, -CAstore uri, -no-CAstore See "Trusted Certificate Options" in openssl-verification-options(1) for details. -engine id Voir << Options de moteur >> dans openssl(1). Cette option est obsolete. -rand fichiers, -writerand fichier Voir << Options d'etat aleatoire >> dans openssl(1) pour des details. -provider nom -provider-path chemin -provparam [nom:]cle=valeur] -propquery propq Voir << Options de fournisseur >> dans openssl(1), provider(7) et property(7). -config configfile See "Configuration Option" in openssl(1). recipcert ... Au moins un certificat de destinataires de message : utilise lors du chiffrement d'un message. NOTES Le message MIME doit etre envoye sans ligne vide entre les en-tetes et la sortie. Certains programmes de courriers ajouteront automatiquement une ligne vide. Passer le message dans un tube directement a sendmail est une facon de conserver le format correct. The supplied message to be signed or encrypted must include the necessary MIME headers or many S/MIME clients won't display it properly (if at all). You can use the -text option to automatically add plain text headers. Un message << signe et chiffre >> est un message signe qui est ensuite chiffre. Cela peut etre realise en chiffrant un message deja signe : consultez la section d'exemples. Cette version du programme ne permet qu'un seul signataire par message mais verifiera plusieurs signataires sur les messages recus. Certains clients S/MIME ont des problemes avec les messages contenant plusieurs signataires. Les messages peuvent etre signes << en parallele >> en signant un message deja signe. Les options -encrypt et -decrypt miment l'utilisation classique dans les clients S/MIME. Pour etre exact, elles traitent des donnees enveloppees PKCS#7 : les donnees chiffrees PKCS#7 sont utilisees dans d'autres buts. L'option -resign utilise un algorithme de signature de message existant lors de l'ajout d'un nouveau signataire. Cela signifie que les attributs doivent etre presents dans au moins une signature existante utilisant le meme algorithme de signature de message, ou cette operation echouera. The -stream and -indef options enable streaming I/O support. As a result the encoding is BER using indefinite length constructed encoding and no longer DER. Streaming is supported for the -encrypt operation and the -sign operation if the content is not detached. Le flux est toujours utilise pour l'operation -sign avec les donnees detachees mais puisque le contenu ne fait plus partie de la structure PKCS#7, l'encodage reste DER. CODES DE RETOUR 0 L'operation s'est terminee correctement. 1 Une erreur est survenue lors du traitement des options de la commande. 2 Un des fichiers d'entree n'a pas pu etre lu. 3 Une erreur est survenue lors de la creation du fichier PKCS#7 ou lors de la lecture du message MIME. 4 Une erreur est survenue lors du dechiffrement ou de la verification du message. 5 Le message a ete verifie correctement mais une erreur est survenue lors de l'ecriture des certificats de signataires. EXEMPLES Creer un message signe en texte clair : openssl smime -sign -in message.txt -text -out mail.msg \ -signer mycert.pem Creer un message signe opaque : openssl smime -sign -in message.txt -text -out mail.msg -nodetach \ -signer mycert.pem Creer un message signe, inclure quelques certificats supplementaires et lire la clef privee depuis un autre fichier : openssl smime -sign -in in.txt -text -out mail.msg \ -signer mycert.pem -inkey mykey.pem -certfile mycerts.pem Creer un message signe avec deux signataires : openssl smime -sign -in message.txt -text -out mail.msg \ -signer mycert.pem -signer othercert.pem Envoyer un message signe sous UNIX directement a sendmail, y compris les en-tetes : openssl smime -sign -in in.txt -text -signer mycert.pem \ -from steve@openssl.org -to someone@somewhere \ -subject "Signed message" | sendmail someone@somewhere Verify a message and extract the signer's certificate if successful: openssl smime -verify -in mail.msg -signer user.pem -out signedtext.txt Envoyer un message chiffre en utilisant un DES triple : openssl smime -encrypt -in in.txt -out mail.msg -from steve@openssl.org \ -to someone@somewhere -subject "Encrypted message" \ -des3 user.pem Signer et chiffrer un message : openssl smime -sign -in ml.txt -signer my.pem -text \ | openssl smime -encrypt -out mail.msg \ -from steve@openssl.org -to someone@somewhere \ -subject "Signed and Encrypted message" -des3 user.pem Remarque : la commande de chiffrement n'inclut pas l'option -text parce que le message en cours de chiffrement a deja les en-tetes MIME. Dechiffrer un courrier : openssl smime -decrypt -in mail.msg -recip mycert.pem -inkey key.pem La sortie du type Netscape de signature est une structure PKCS#7 au format de signature detachee. Vous pouvez utiliser ce programme pour verifier la signature en coupant les lignes de structure encodees en base64 et en les encadrant avec : -----BEGIN PKCS7----- -----END PKCS7----- et en utilisant la commande : openssl smime -verify -inform PEM -in signature.pem -content contenu.txt Sinon, vous pouvez aussi decoder de base64 la signature et utiliser : openssl smime -verify -inform DER -in signature.der -content contenu.txt Creer et chiffrer un message en utilisant Camellia 128 bits : openssl smime -encrypt -in plain.txt -camellia128 -out mail.msg cert.pem Ajouter un signataire a un message existant : openssl smime -resign -in mail.msg -signer newsign.pem -out mail2.msg BOGUES The MIME parser isn't very clever: it seems to handle most messages that I've thrown at it but it may choke on others. The code currently will only write out the signer's certificate to a file: if the signer has a separate encryption certificate this must be manually extracted. There should be some heuristic that determines the correct encryption certificate. Dans l'ideal, une base de donnees de certificats devrait etre maintenue pour chaque adresse electronique. The code doesn't currently take note of the permitted symmetric encryption algorithms as supplied in the SMIMECapabilities signed attribute. This means the user has to manually include the correct encryption algorithm. It should store the list of permitted ciphers in a database and only use those. No revocation checking is done on the signer's certificate. Le code actuel ne peut traiter que les messages S/MIME v2, les structures S/MIME v3 plus complexes peuvent provoquer des erreurs d'analyse. VOIR AUSSI ossl_store-file(7) HISTORIQUE The default encryption cipher was changed from 3DES to AES-256 in OpenSSL 3.5. L'utilisation de plusieurs options -signer et la commande -resign ont ete ajoutees pour la premiere fois dans OpenSSL 1.0.0 The -no_alt_chains option was added in OpenSSL 1.1.0. L'option -engine est obsolete dans OpenSSL 1.0.2b. COPYRIGHT Copyright 2000-2025 Les auteurs du projet OpenSSL. Tous droits reserves. Sous licence Apache 2.0 (la << Licence >>). Vous ne pouvez utiliser ce fichier que conformement a la Licence. Vous trouverez une copie dans le fichier LICENSE de la distribution du source ou a l'adresse . TRADUCTION La traduction francaise de cette page de manuel a ete creee par David Prevot Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . 3.5.2 5 aout 2025 OPENSSL-SMIME(1ssl)