Provided by: manpages-fr-extra_20140201_all bug

NOM

       req - Utilitaire de génération de certificats et de demandes de certificat PKCS#10

SYNOPSIS

       openssl req [-inform PEM|DER] [-outform PEM|DER] [-in nom_fichier] [-passin param] [-out
       nom_fichier] [-passout param] [-text] [-pubkey] [-noout] [-verify] [-modulus] [-new]
       [-rand fichier(s)] [-newkey rsa:bits] [-newkey alg:fichier] [-nodes] [-key nom_fichier]
       [-keyform PEM|DER] [-keyout nom_fichier] [-keygen_engine id] [-[condensé]] [-config
       nom_fichier] [-subj param] [-multivalue-rdn] [-x509] [-days n] [-set_serial n]
       [-asn1-kludge]  [-no-asn1-kludge][-newhdr] [-extensions section] [-reqexts section]
       [-utf8] [-nameopt] [-reqopt] [-subject] [-subj param] [-batch] [-verbose] [-engine id]

DESCRIPTION

       La commande req crée et traite des demandes de certificats au format PKCS#10. En plus,
       elle peut créer des certificats autosignés servant par exemple de certificats racine
       d'autorité de certification.

OPTIONS DE LA COMMANDE

       -inform DER|PEM
           Indique le format d'entrée. L'option DER utilise l'encodage ASN1 DER compatible avec
           le format PKCS#10. La forme PEM est le format par défaut : il s'agit du format DER
           encodé en base64 avec des lignes supplémentaires au début et à la fin.

       -outform DER|PEM
           Indique le format de sortie. Les options ont la même signification que pour l'option
           -inform.

       -in nom_fichier
           Indique le nom du fichier d'entrée à partir duquel la demande est lue. Par défaut,
           l'entrée standard sera lue si cette option n'est pas indiquée. Une demande est
           uniquement lue si les options de création (-new et -newkey) ne sont pas indiquées.

       -passin param
           La source de mot de passe d'entrée. Pour plus de renseignements sur le format de
           param, consultez la section PARAMÈTRES DE PHRASE SECRÈTE d'openssl(1).

       -out nom_fichier
           Indique le nom du fichier de sortie. La sortie standard est utilisée par défaut.

       -passout param
           La source de mot de passe pour le fichier de sortie. Pour plus de renseignements sur
           le format de param, consultez la section PARAMÈTRES DE PHRASE SECRÈTE d'openssl(1).

       -text
           Affiche la demande de certificat au format texte.

       -subject
           Affiche l'objet de la demande (ou l'objet du certificat si -x509 est indiqué)

       -pubkey
           Produit la clef publique.

       -noout
           Cette option empêche la sortie de la version encodée de la demande.

       -modulus
           Cette option affiche la valeur du modulo de la clef publique contenue dans la demande.

       -verify
           Vérifie la signature de la demande.

       -new
           Cette option génère une nouvelle demande de certificat. Il sera demandé à
           l'utilisateur de fournir les valeurs des champs nécessaires. Ces champs demandés ainsi
           que leurs valeurs maximales et minimales sont indiqués dans le fichier de
           configuration ainsi que dans les extensions.

           Si l'option -key n'est pas utilisée, une nouvelle clef privée RSA sera générée en
           utilisant l'information du fichier de configuration.

       -subj param
           Remplace le champ d'objet de la demande d'entrée par les données indiquées et affiche
           la demande modifiée. param doit être formaté comme
           /type0=valeur0/type1=valeur1/type2=... où les caractères peuvent être protégés par
           « \ » (barre oblique inversée), aucun espace n'est ignoré.

       -rand fichier(s)
           Un ou plusieurs fichiers contenant des données aléatoires utilisées pour initialiser
           le générateur de nombres pseudoaléatoires, ou une socket EGD (consultez RAND_egd(3)).
           Plusieurs fichiers peuvent être indiqués en utilisant le séparateur du système
           d'exploitation : « ; » pour Windows, « , » pour OpenVMS et « : » pour tous les autres.

       -newkey param
           Cette option crée une nouvelle demande de certificat et une nouvelle clef privée. Le
           paramètre utilise l'une des formes suivantes : rsa:nombre_bits, où nombre_bits est le
           nombre de bits, génère une clef RSA de taille nombre_bits. Si nombre_bits n'est pas
           indiqué, c'est-à-dire que -newkey rsa est utilisé, la taille de clef par défaut,
           indiquée dans le fichier de configuration, est utilisée.

           Tous les autres algorithmes gèrent la forme -newkey alg:fichier, où fichier peut être
           un fichier de paramètres d'algorithme, créé par la commande genpkey -genparam ou un
           certificat X.509 pour une clef avec l'algorithme approprié.

           param:fichier génère une clef en utilisant le fichier de paramètres ou de certificats,
           l'algorithme est déterminé par les paramètres. alg:fichier utilise l'algorithme
           indiqué et le fichier de paramètres. Les deux algorithmes doivent correspondre sinon
           cela produit une erreur. alg n'indique que l'algorithme, et les paramètres, si
           nécessaires, doivent être indiqués avec l'option -pkeyopt.

           dsa:fichier génère une clef DSA utilisant les paramètres du fichier fichier.
           ec:fichier génère une clef EC (utilisable à la fois avec les algorithmes ECDSA ou
           ECDH), gost2001:fichier génère une clef GOST R 34.10-2001 (nécessite que le moteur
           ccgost soit configuré dans le fichier de configuration). Si seul gost2001 est indiqué,
           un jeu de paramètres devrait être indiqué par -pkeyopt jeu_param:X

       -pkeyopt opt:valeur
           Définit l'option opt de l'algorithme à clef publique à valeur. Le jeu exact d'options
           prises en charge dépend de l'algorithme à clef publique utilisé et de son
           implémentation. Consultez OPTIONS DE GÉNÉRATION DE CLEF dans la page de manuel
           genpkey(1) pour plus de précisions.

       -key nom_fichier
           Indique le fichier de clef privée à lire. Les clefs privées au format PKCS#8 sont
           aussi acceptées pour les fichiers au format PEM.

       -keyform PEM|DER
           Le format de la clef privée indiquée avec l'option -key. PEM est le format par défaut.

       -keyout nom_fichier
           Donne le nom de fichier où la clef privée créée sera écrite. Par défaut, le nom
           indiqué par le fichier de configuration est utilisé.

       -nodes
           Avec cette option, si une clef privée est créée, elle ne sera pas chiffrée.

       -[condensé]
           Indique le type de condensé à utiliser pour signer la demande (comme -md5 ou -sha1).
           Si elle est présente, cette option prévaut à celle donnée dans le fichier de
           configuration.

           Certains algorithmes à clef publique pourraient écraser ce choix. Par exemple, les
           signatures DSA utilisent toujours SHA1, les signatures GOST R 34.10 utilisent toujours
           GOST R 34.11-94 (-md_gost94).

       -config nom_fichier
           Permet d'utiliser un fichier de configuration alternatif, à la place de celui indiqué
           lors de la compilation ou avec la variable d'environnement OPENSSL_CONF.

       -subj param
           Définit le nom de sujet pour les nouvelles demandes ou remplace le nom de sujet lors
           du traitement d'une demande. param doit être formaté comme
           /type0=valeur0/type1=valeur1/type2=... où les caractères peuvent être protégés par
           « \ » (barre oblique inversée), aucun espace n'est ignoré.

       -multivalue-rdn
           Cette option force l'argument de -subj à être interprété avec une prise en charge
           complète des RDN multivaleurs. Exemple :

           /DC=org/DC=OpenSSL/DC=users/UID=123456+CN=Jean Dupont

           Si -multi-rdn est utilisée, alors la valeur de l'UID est 123456+CN=Jean Dupont.

       -x509
           Cette option génère un certificat autosigné à la place d'une demande de certificat.
           Elle est utilisée typiquement pour générer des certificats de test ou le certificat
           autosigné racine d'une autorité de certification. Les extensions à ajouter au
           certificat, s'il y en a, sont indiquées dans le fichier de configuration. À moins
           d'être précisé par l'option set_serial, le numéro de série sera 0.

       -days n
           Lorsque l'option -x509 est utilisée, elle indique le nombre de jours pendant lesquels
           le certificat sera certifié. La valeur par défaut est 30 jours.

       -set_serial n
           Numéro de série à utiliser lors de l'affichage d'un certificat autosigné. Cela peut
           être indiqué comme une valeur décimale, ou hexadécimale si elle est précédée par 0x.
           Des numéros de série négatifs peuvent être utilisés mais ce n'est pas conseillé.

       -extensions section
       -reqexts section
           Ces options précisent des sections alternatives d'extension de certificat (si l'option
           -x509 est présente), ou de demandes de certificat à inclure. Cela permet d'utiliser
           des sections différentes du même fichier de configuration servant à des propos variés.

       -utf8
           Cette option indique que les valeurs des champs doivent être interprétées comme des
           chaînes UTF-8. Par défaut, elles sont interprétées comme des chaînes ASCII. Cela
           signifie que les valeurs des champs, qu'elles soient demandées sur le terminal ou
           fournies par le fichier de configuration, doivent être des chaînes UTF-8 valables.

       -nameopt option
           Option qui détermine la façon d'afficher les noms de sujet ou d'émetteur. L'argument
           option peut être une seule option ou plusieurs options séparées par des virgules. Le
           paramètre -nameopt peut aussi être utilisé plus d'une fois pour définir plusieurs
           options. Consultez la page de manuel x509(1) pour plus de précisions.

       -reqopt
           Personnalise le format de sortie utilisé avec -text. L'argument option peut être une
           seule option ou plusieurs options séparées par des virgules.

           Consultez la discussion sur l'option -certopt dans la page de manuel de la commande
           x509.

       -asn1-kludge
           Par défaut, la commande req génère des demandes de certificats sans attributs dans un
           format PKCS#10 valable. Toutefois, certaines autorités de certification n'acceptent
           que des demandes sans attributs sous une forme non valable qui est produite avec cette
           option.

           Plus précisément, les attributs d'une demande de certificat PKCS#10 sont définies
           comme un ensemble d'attributs (SET OF Attribute). Ils ne sont pas de type OPTIONAL,
           ainsi, si aucun attribut n'est présent, une entrée vide SET OF devrait le signaler. La
           forme non valable n'inclut pas cette entrée alors que la forme valable le fait.

           Remarquez que très peu d'autorités de certification nécessitent encore l'utilisation
           de cette option.

       -no-asn1-kludge
           Inverse l'effet de -asn1-kludge.

       -newhdr
           Ajoute le mot NEW aux lignes de tête et de fin du fichier PEM de la demande de
           certificat créée. Certains logiciels (Netscape certificate server) et certaines
           autorités de certification en ont besoin.

       -batch
           Mode non interactif.

       -verbose
           Affiche des précisions supplémentaires à propos des opérations effectuées.

       -engine id
           Indique un moteur (en utilisant son identifiant unique id) qui force req à essayer
           d'obtenir une référence fonctionnelle pour le moteur indiqué, et l'initialiser si
           nécessaire. Le moteur sera ensuite utilisé par défaut pour tous les algorithmes
           disponibles.

       -keygen_engine id
           Indique un moteur (en utilisant son identifiant unique id) à utiliser pour les
           opérations de génération de clef.

FORMAT DU FICHIER DE CONFIGURATION

       Les options de configuration sont indiquées dans la section req du fichier de
       configuration. Comme avec tous les fichiers de configuration, si aucune valeur n'est
       donnée dans la section correspondante (c'est-à-dire req), la section initiale sans nom ou
       la section default est également parcourue.

       Les options disponibles sont décrites en détail ci-dessous.

       input_password output_password
           Les mots de passe pour le fichier de clef privée d'entrée (si présent) et pour le
           fichier de clef privée de sortie (si une clef est créée). Les options de ligne de
           commande passin et passout remplacent les valeurs du fichier de configuration.

       default_bits
           Indique la taille par défaut des clefs, en bits. Si elle n'est pas indiquée, la valeur
           512 est utilisée. Elle est utilisée lors de l'emploi de l'option -new. Elle peut être
           écrasée par l'option -newkey.

       default_keyfile
           C'est le nom de fichier par défaut où la clef privée sera écrite. Si elle n'est pas
           indiquée, la clef sera écrite sur la sortie standard. Cela peut être écrasé par
           l'option -keyout.

       oid_file
           Indique le fichier contenant des IDENTIFIANTS D'OBJET supplémentaires. Chaque ligne
           est constituée de la forme numérique de l'identifiant d'objet suivie d'un espace puis
           du libellé court suivi à son tour d'un espace et finalement du libellé long.

       oid_section
           Indique une section du fichier de configuration contenant d'autres identifiants
           d'objet. Chaque ligne est constituée du libellé court de l'identifiant d'objet suivi
           de = et de la forme numérique. Le libellé court et le libellé long sont identiques
           quand cette option est utilisée.

       RANDFILE
           Indique le fichier où les graines pour les nombres aléatoires sont lues et écrites, ou
           une socket EGD (consultez RAND_egd(3)). C'est utilisé pour la génération de clef
           privée.

       encrypt_key
           Si cela vaut no, lors de la génération d'une clef privée, elle n'est pas chiffrée.
           Cela équivaut à l'option -nodes de la ligne de commande. Pour assurer la
           compatibilité, encrypt_rsa_key est une option équivalente.

       default_md
           Cette option indique l'algorithme à utiliser pour les condensés. md5, sha1 et mdc2
           font partie des valeurs possibles. Si cette option n'est pas présente, MD5 sera
           utilisé. Cette option peut être écrasée avec l'option correspondante de la ligne de
           commande.

       string_mask
           Cette option masque l'utilisation de certains types de chaîne de caractères dans
           certains champs. La plupart des utilisateurs n'auront pas besoin de modifier cette
           option.

           Elle peut se voir affecter diverses valeurs : default qui est la valeur par défaut et
           qui utilise PrintableStrings, T61Strings et BMPStrings. Si la valeur pkix est
           indiquée, uniquement PrintableStrings et BMPStrings seront utilisés. C'est conforme à
           la recommandation PKIX dans la RFC 2459. Si l'option utf8only est employée, alors
           seules les UTF8Strings sont employées : c'est la recommandation PKIX dans la RFC 2459
           pour après 2003. Finalement l'option nombstr utilise seulement PrintableStrings et
           T61Strings : certains logiciels ont des problèmes avec les BMPStrings et les
           UTF8Strings, en particulier Netscape.

       req_extensions
           Indique la section du fichier de configuration contenant une liste d'extensions à
           ajouter à la demande de certificat. Elle peut être remplacée par l'option -reqexts de
           la ligne de commande. Consultez la page de manuel x509v3_config(5) pour obtenir des
           précisions sur le format de la section d'extensions.

       x509_extensions
           Indique la section du fichier de configuration contenant une liste d'extensions à
           ajouter aux certificats générés avec l'option -x509. Elle peut être remplacée par
           l'option -extensions de la ligne de commande.

       prompt
           Si cela vaut no, aucun champ du certificat ne sera demandé à l'utilisateur et les
           valeurs du fichier de configuration sont prises d'office. Cela change également le
           format attendu des sections distinguished_name et attributes.

       utf8
           Si définie à yes, alors les valeurs des champs doivent être interprétées comme des
           chaînes UTF-8. Par défaut, elles sont interprétées comme des chaînes ASCII. Cela
           signifie que les valeurs des champs, qu'elles soient demandées sur le terminal ou
           fournies par le fichier de configuration, doivent être des chaînes UTF-8 valables.

       attributes
           Indique la section contenant les attributs pour les demandes : son format est
           identique à celui de la section distinguished_name. Typiquement, ces attributs
           contiennent les types challengePassword et unstructuredName. Ils sont actuellement
           ignorés par les utilitaires de signature d'OpenSSL mais peuvent être requis par
           certaines autorités de certification.

       distinguished_name
           Indique la section contenant les champs des noms distinctifs (« distinguished name »)
           à demander lors d'une génération de certificat ou d'une demande de certificat. Le
           format est décrit dans la section suivante.

FORMAT DES SECTIONS DE NOM DISTINCTIF ET D'ATTRIBUT

       Il y a deux formats différents pour les sections de nom distinctif et d'attribut. Lorsque
       l'option prompt vaut no, alors ces sections contiennent uniquement les noms des champs et
       leurs valeurs. Par exemple :

        CN=Mon Nom
        OU=Mon Organisation
        emailAddress=quelqu_un@example.org

       Cela permet aux programmes externes (par exemple des interfaces graphiques) de générer un
       fichier modèle à passer à req. Un exemple de ce type de fichier de configuration se trouve
       dans la section EXEMPLES.

       Dans l'absence de l'option prompt ou si celle-ci ne vaut pas no, le fichier contient des
       informations pour la demande à l'invite de commandes. Cela se présente sous la forme
       suivante :

        nomChamp="invite"
        nomChamp_default="Valeur du champ par défaut"
        nomChamp_min= 2
        nomChamp_max= 4

       « nomChamp » est le nom du champ à utiliser, par exemple commonName (ou CN, nom commun).
       La chaîne « invite » est affichée lors de la demande à l'utilisateur. Si l'utilisateur ne
       saisit rien, alors la valeur par défaut, « nomChamp_default », est utilisée ; en l'absence
       de valeur par défaut, le champ est omis. Un champ peut toujours être omis, en présence de
       valeur par défaut, en saisissant uniquement le caractère « . ».

       Le nombre de caractères saisis doit être entre les limites de nomChamp_min et
       nomChamp_max : il peut y avoir d'autres contraintes basées sur le champ utilisé (par
       exemple, countryName doit toujours avoir une longueur de deux et doit entrer dans un
       PrintableString).

       Certains champs (comme organizationName) peuvent être utilisés plus d'une fois dans un DN.
       Cela pose problème car dans les fichiers de configuration, le même nom de champ ne sera
       pas pris en compte à deux reprises. Pour éviter ce problème, si le nomChamp contient des
       caractères suivi d'un point (« . »), ils seront ignorés. Ainsi, par exemple, une deuxième
       entrée pour organizationName peut être entrée en l'appelant « 1.organizationName ».

       Les noms de champ permis sont les libellés longs ou courts de tous les identifiants
       d'objet. Ceux-ci sont compilés avec OpenSSL et incluent les libellés longs usuels comme
       commonName, countryName, localityName, organizationName, organizationUnitName,
       stateOrProvinceName. En plus, emailAddress est présent tout comme name, surname,
       givenName, initials et dnQualifier.

       Des identifiants d'objet supplémentaires peuvent être définis dans un fichier (oid_file)
       ou une section (oid_section) dans le fichier de configuration. Tous les champs
       supplémentaires sont traités comme des DirectoryString.

EXEMPLES

       Examiner et vérifier une demande de certificat :

        openssl req -in dem.pem -text -verify -noout

       Créer une clef privée et générer la demande de certificat correspondante :

        openssl genrsa -out clef.pem 1024
        openssl req -new -key clef.pem -out dem.pem

       La même chose en utilisant uniquement req :

        openssl req -newkey rsa:1024 -keyout clef.pem -out dem.pem

       Générer un certificat racine autosigné :

        openssl req -x509 -newkey rsa:1024 -keyout clef.pem -out clef.pem

       Exemple d'un fichier indiqué avec l'option oid_file :

        1.2.3.4        nomCourt        Un nom plus long
        1.2.3.6        autreNom        Autre nom plus long

       Exemple d'une section pouvant être référencée par oid_section en utilisant l'expansion de
       variables :

        testoid1=1.2.3.5
        testoid2=${testoid1}.6

       Fichier de configuration type demandant les valeurs des champs :

        [ req ]
        default_bits           = 1024
        default_keyfile        = clefpriv.pem
        distinguished_name     = dem_noms_distinctifs
        attributes             = dem_attributs
        x509_extensions        = v3_ca

        dirstring_type         = nobmp

        [ dem_noms_distinctifs ]
        countryName                    = Nom du pays (code 2 lettres )
        countryName_default            = FR
        countryName_min                = 2
        countryName_max                = 2

        localityName                   = Nom du lieu (par exemple, la ville)

        organizationalUnitName         = Nom d'unité dans l'organisation (sec.)

        commonName                     = Nom commun (par exemple, VOTRE nom)
        commonName_max                 = 64

        emailAddress                   = Adresse électronique
        emailAddress_max               = 40

        [ dem_attributs ]
        challengePassword              = Un mot de passe
        challengePassword_min          = 4
        challengePassword_max          = 20

        [ v3_ca ]

        subjectKeyIdentifier=hash
        authorityKeyIdentifier=keyid:always,issuer:always
        basicConstraints = CA:true

       Configuration type contenant tous les valeurs des champs :

        RANDFILE               = $ENV::HOME/.rnd

        [ req ]
        default_bits           = 1024
        default_keyfile        = fichier_clef.pem
        distinguished_name     = dem_noms_distintifs
        attributes             = dem_attributs
        prompt                 = no
        output_password        = mon_pass

        [ dem_noms_distinctifs ]
        C                      = FR
        ST                     = Département de test
        L                      = Lieu de test
        O                      = Nom de l'organisation
        OU                     = Nom de l'unité dans l'organisation
        CN                     = Nom commun
        emailAddress           = test@adresse.electronique

        [ dem_attributs ]
        challengePassword      = Un mot de passe

NOTES

       Les lignes de début et de fin dans le format PEM sont normalement :

        -----BEGIN CERTIFICATE REQUEST-----

        -----END CERTIFICATE REQUEST-----
       Certains logiciels (certaines versions de Netscape certificate server) nécessitent à la
       place :

        -----BEGIN NEW CERTIFICATE REQUEST-----

        -----END NEW CERTIFICATE REQUEST-----
       qui est produit avec l'option -newhdr mais reste compatible autrement. À l'entrée, les
       deux versions sont acceptées de façon transparente.

       Les demandes de certificat générées par Xenroll avec MSIE ont des extensions
       supplémentaires. Elles incluent une extension keyUsage qui détermine le type de la clef
       (signature ou général) et tous les OID supplémentaires entrés par le script dans une
       extension extendedKeyUsage.

DIAGNOSTIC

       Les messages suivants soulèvent souvent des interrogations :

               Using configuration from /some/path/openssl.cnf
               Unable to load config info

       Qui est suivi peu après par :

               unable to find 'distinguished_name' in config
               problems making Certificate Request

       Le premier message explique le tout : le fichier de configuration est introuvable !
       Certaines opérations (telle que la vérification d'une demande de certificat) ne
       nécessitent pas de fichier de configuration donc son utilisation n'est pas obligatoire. La
       génération de certificats ou de demandes, au contraire, nécessite un fichier de
       configuration. Cela peut être considéré comme un bogue.

       Un autre message portant à confusion est :

               Attributes:
                   a0:00

       C'est affiché lorsqu'aucun attribut n'est présent et que la demande inclut la structure
       vide SET OF correcte (dont l'encodage DER est 0xa0 0x00). S'il n'y a que :

               Attributes:

       alors le SET OF manque et l'encodage est techniquement incorrect. Consultez la description
       de l'option -asn1-kludge pour plus de renseignements.

VARIABLES D'ENVIRONNEMENT

       La variable OPENSSL_CONF, si définie, permet d'indiquer un fichier de configuration
       alternatif. Si l'option -config de la ligne de commande est présente, la variable
       d'environnement sera ignorée. Pour des raisons de compatibilité, la variable SSLEAY_CONF a
       la même utilisation, mais son utilisation est déconseillée.

BOGUES

       La gestion des T61Strings (ou TeletexStrings) est cassée : elles sont traitées
       effectivement comme des chaînes ISO-8859-1 (Latin 1), Netscape et MSIE ont un comportement
       similaire. Cela peut poser problème lorsque vous avez besoin de caractères qui ne sont pas
       disponibles dans les PrintableStrings et que vous ne voulez ou pouvez pas utiliser les
       BMPStrings.

       La conséquence de cette gestion de T61String est que la seule façon correcte de
       représenter des caractères accentués dans OpenSSL est d'utiliser un BMPString :
       malheureusement, Netscape ne les aime pas. Ainsi, pour utiliser les caractères accentués
       avec Netscape et MSIE, vous devrez utiliser actuellement le format incorrect des
       T61Strings.

       La demande à l'invite de commande n'est pas très ergonomique. Vous ne pouvez confirmer les
       saisies et les extensions doivent être définies de façon statique dans le fichier de
       configuration. Quelques-unes comme par exemple une adresse électronique dans le
       subjectAltName devraient être données par l'utilisateur.

VOIR AUSSI

       x509(1), ca(1), genrsa(1), gendsa(1), config(5), x509v3_config(5)

TRADUCTION

       Cette page de manuel a été traduite par arne en 2002 et est maintenue par la liste
       <debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler toute erreur de
       traduction par un rapport de bogue sur le paquet manpages-fr-extra.