Provided by: manpages-fr-extra_20151231_all bug

NOM

       config - Fichiers de configuration de la bibliothèque OpenSSL CONF

DESCRIPTION

       La bibliothèque OpenSSL CONF permet de lire les fichiers de configuration. Elle est
       utilisée pour le fichier de configuration maître openssl.cnf d’OpenSSL et dans quelques
       autres endroits comme les fichiers SPKAC et fichiers d'extension de certificat pour
       l'utilitaire x509. Les applications d’OpenSSL peuvent également utiliser la bibliothèque
       CONF pour leurs propres fins.

       Un fichier de configuration est divisé en plusieurs sections. Chaque section commence par
       une ligne [ nom_section ] et se termine quand une autre section commence ou quand la fin
       de fichier est atteinte. Un nom de section peut contenir des caractères alphanumériques et
       des caractères de soulignement.

       La première section d'un fichier de configuration est spéciale et est appelée la section
       par défaut (« default »), qui n’est généralement pas nommée et commence au début du
       fichier jusqu'à la première section nommée. Quand un nom est recherché, il est d'abord
       recherché dans une section nommée (s’il y en a) puis dans la section par défaut.

       L'environnement est projeté dans une section appelée ENV.

       Des commentaires peuvent être inclus, précédés du caractère #.

       Chaque section d’un fichier de configuration se compose de plusieurs paires de la forme
       nom=valeur.

       La chaîne nom peut contenir des caractères alphanumériques ainsi que quelques symboles de
       ponctuation comme , . ; et _.

       La chaîne valeur est composée de la chaîne qui suit le caractère = jusqu'à la fin de la
       ligne avec tous les espaces de début et de fin supprimés.

       La chaîne valeur subit un développement de variable. Cela peut être fait en utilisant la
       forme $nom ou ${nom} : cela substituera la valeur de la variable nommée dans la présente
       section. Une valeur d'une autre section peut aussi être remplacée en utilisant la syntaxe
       $section::nom ou ${section::nom}. Avec la forme $ENV::nom, les variables d'environnement
       peuvent être substituées. Des valeurs peuvent aussi être attribuées aux variables
       d'environnement en utilisant le nom ENV::nom, cela fonctionnera si le programme recherche
       des variables d'environnement en utilisant la bibliothèque CONF au lieu d'appeler getenv()
       directement.

       Certains caractères peuvent être protégés à l'aide de n'importe quel type de guillemet ou
       du caractère \ . Si le dernier caractère d'une ligne est \, une chaîne valeur peut être
       répartie sur plusieurs lignes. De plus, les suites \n, \r, \b et \t sont reconnues.

CONFIGURATION DE BIBLIOTHÈQUE OPENSSL

       Depuis OpenSSL 0.9.7, les applications peuvent configurer automatiquement certains aspects
       d’OpenSSL en utilisant le fichier de configuration maître d’OpenSSL ou éventuellement un
       fichier de configuration alternatif. L'utilitaire openssl comprend cette fonctionnalité :
       une sous-commande utilise le fichier de configuration maître d’OpenSSL sauf si une option
       est utilisée dans la sous-commande pour utiliser un fichier de configuration alternatif.

       Pour activer la configuration de bibliothèque, la section par défaut doit contenir une
       ligne appropriée qui pointe vers la section de configuration principale. Le nom par défaut
       est openssl_conf, ce qui est utilisé par l'utilitaire openssl. D'autres applications
       peuvent utiliser un autre nom comme MonApplication_conf.

       La section de configuration devrait être composée d'un ensemble de paires nom valeur
       contenant des informations spécifiques de configuration du module. Le nom représente le
       nom du module de configuration, la signification de la valeur est spécifique au module :
       elle peut, par exemple, représenter une autre section de configuration contenant des
       informations de configuration spécifiques au module. Par exemple :

        openssl_conf = openssl_init

        [openssl_init]

        oid_section = nouveaux_oid
        engines = section_moteurs

        [nouveaux_oid]

        ... nouveaux oid ...

        [section_moteurs]

        ... ce qui concerne les moteurs ...

       Les caractéristiques de chaque module de configuration sont décrites ci-dessous.

   MODULE DE CONFIGURATION D’OBJET ASN1
       Ce module a le nom de oid_section. La valeur de cette variable pointe vers une section
       contenant des paires nom valeur d’OID : le nom est le nom court et long d’OID, la valeur
       est la forme numérique de l'OID. Bien que certaines sous-commandes de l’utilitaire openssl
       ont déjà leur propre fonctionnalité de section d’OBJET ASN1, ce n’est pas le cas de
       toutes. En utilisant le module de configuration d’OBJET ASN1 all, les sous-commandes de
       l’utilitaire openssl peuvent voir les nouveaux objets ainsi que les applications
       compatibles. Par exemple :

        [nouveaux_oid]

        un_nouvel_oid = 1.2.3.4
        un_autre_oid = 1.2.3.5

       Avec OpenSSL 0.9.8, la valeur peut aussi être définie au nom long suivi d'une virgule et
       de la forme numérique de l'OID. Par exemple :

        nomCourt = nom long d'un objet, 1.2.3.4

   MODULE DE CONFIGURATION DU MOTEUR
       Ce module de configuration du MOTEUR a le nom engines. La valeur de cette variable pointe
       vers une section contenant des informations de configuration du moteur.

       La section pointée par engines est un tableau de noms de moteur (consultez engine_id ci-
       dessous) et d'autres sections contenant les informations de configuration spécifiques à
       chaque MOTEUR.

       Chaque section spécifique au MOTEUR est utilisée pour définir des algorithmes par défaut,
       charger dynamiquement, effectuer l'initialisation et envoyer des contrôles. Le
       fonctionnement réel effectué dépend du nom de la commande qui est le nom de la paire nom
       valeur. Les commandes actuellement prises en charge sont répertoriées ci-dessous.

       Par exemple :

        [section_moteurs]

        # Configurer le MOTEUR nommé « truc »
        truc = section_truc
        # Configurer le MOTEUR nommé « bidule »
        bidule = section_bidule

        [section_truc]
        ... commandes spécifiques au MOTEUR truc ...

        [section_bidule]
        ... commandes spécifiques au MOTEUR bidule ...

       La commande engine_id est utilisée pour donner le nom du MOTEUR. Si utilisée, cette
       commande doit être la première. Par exemple :

        [section_moteurs]
        # Cela devrait normalement gérer un MOTEUR nommé « truc »
        truc = section_truc

        [section_truc]
        # Remplacer le nom par défaut et utiliser « montruc » à la place.
        engine_id = montruc

       La commande dynamic_path charge et ajoute un MOTEUR à partir du chemin donné. Elle est
       équivalente à l'envoi des contrôles SO_PATH avec l'argument de chemin suivi par LIST_ADD
       avec la valeur 2 et LOAD au MOTEUR dynamique. Si ce n'est pas le comportement voulu, des
       contrôles alternatifs peuvent être envoyés directement au MOTEUR dynamique en utilisant
       les commandes de contrôle.

       La commande init détermine s'il faut initialiser le moteur. Si la valeur est 0, le moteur
       ne sera pas initialisé ; si 1, une tentative immédiate d’initialiser le moteur est
       réalisée. Si la commande init n'est pas présente, alors une tentative d’initialiser le
       moteur sera effectuée après le traitement de toutes les commandes de la section.

       La commande default_algorithms définit les algorithmes par défaut qu’un MOTEUR fournira en
       utilisant les fonctions ENGINE_set_default_string()

       Si le nom ne correspond à aucun des noms de commande ci-dessus, il est supposé être une
       commande de contrôle envoyée au moteur. La valeur de la commande est l'argument de la
       commande de contrôle. Si la valeur est la chaîne EMPTY, alors aucune valeur n'est envoyée
       à la commande.

       Par exemple :

        [section_moteurs]

        # Configurer le MOTEUR nommé « truc »
        truc = section_truc

        [section_truc]
        # Charger le moteur à partir du DSO
        dynamic_path = /chemin/vers/moteur_truc.so
        # Un contrôle spécifique à truc
        un_ctrl = une_valeur
        # Un autre contrôle qui ne prend pas de valeur
        autre_ctrl = EMPTY
        # Fournir tous les algorithmes par défaut
        default_algorithms = ALL

   MODULE DE CONFIGURATION EVP
       Ce module porte le nom de alg_section qui pointe vers une section contenant les commandes
       d’algorithme.

       Actuellement, la seule commande d’algorithme prise en charge est fips_mode dont la valeur
       devrait être une valeur booléenne telle que on ou off. Si la valeur est on, cela
       entreprendra l’entrée en mode FIPS. Si l’appel échoue ou si la bibliothèque n’est pas
       compatible avec FIPS, une erreur surviendra.

       Par exemple :

        alg_section = evp_settings

        [evp_settings]

        fips_mode = on

NOTES

       Si un fichier de configuration tente de développer une variable qui n'existe pas, une
       erreur est signalée et le fichier ne sera pas chargé. Cela peut se produire si une
       tentative de développement de variable d’environnement inexistante est réalisée. Par
       exemple, dans une version précédente d’OpenSSL, le fichier de configuration maître par
       défaut utilisait la valeur de HOME qui peut ne pas être définie sur les systèmes non UNIX
       et ainsi provoquer une erreur.

       Cela peut être contourné en incluant une section default pour fournir une valeur par
       défaut : alors, si la recherche d’environnement échoue, la valeur par défaut sera utilisée
       à la place. Pour que cela fonctionne correctement la valeur par défaut doit être définie
       avant le développement dans le fichier de configuration. Consultez la section EXEMPLES
       pour un exemple sur la façon de procéder.

       Si une même variable est présente plusieurs fois dans la même section, alors elles seront
       toutes ignorées silencieusement sauf la dernière valeur. Dans certains cas, par exemple
       avec DN, le même champ peut se présenter plusieurs fois. Cela est habituellement contourné
       en ignorant tous les caractères précédant le premier ., par exemple

        1.OU="Premier OU"
        2.OU="Second OU"

EXEMPLES

       Voici un exemple de fichier de configuration utilisant certaines caractéristiques
       mentionnées précédemment.

        # Section par défaut

        HOME=/temp
        RANDFILE= ${ENV::HOME}/.rnd
        configdir=$ENV::HOME/config

        [ première_section ]

        # Contenu de la première section

        # Les guillemets permettent des espaces au début et à la fin
        truc = " n’importe quel nom de variable "

        bidule = Une chaîne qui peut \
        s’étendre sur plusieurs lignes \
        en incluant des caractères \\.

        message = Bonjour tout le monde\n

        [ deuxième_section ]

       salutation = $première_section::message

       L'exemple suivant montre comment développer les variables d'environnement en toute
       sécurité.

       Soit une variable appelée tmpfile référant un nom de fichier temporaire. Le répertoire
       dans lequel il est placé peut être déterminé par les variables d'environnement TEMP ou
       TMP, mais aucune valeur ne peut leur être attribuée. Si vous incluez seulement les noms de
       variables d'environnement et que la variable n'existe pas, cela provoquerait une erreur
       lorsqu'une tentative de chargement du fichier de configuration est effectuée. En utilisant
       la section par défaut, les deux valeurs peuvent être recherchées avec TEMP, en priorité,
       et /tmp utilisé si aucune n'est définie :

        TMP=/tmp
        # Valeur ci-dessus utilisée si TMP n'est pas dans l'environnement
        TEMP=$ENV::TMP
        # Valeur ci-dessus utilisée si TEMP n'est pas dans l'environnement
        tmpfile=${ENV::TEMP}/tmp.nom_fichier

       Exemple de configuration de la bibliothèque OpenSSL pour entrer dans le mode FIPS :

        # Nom_appli par défaut doit correspondre au param « nom_appli »
        # (s’il existe) fourni à CONF_modules_load_file, etc.
        openssl_conf = openssl_conf_section

        [openssl_conf_section]
        # liste de modules de configuration
        alg_section = evp_sect

        [evp_sect]
        # Défini à « yes » pour entrer dans le mode FIPS si pris en charge
        fips_mode = yes

       Remarque : dans l’exemple ci-dessus, une erreur surviendra pour les versions d’OpenSSL
       n’acceptant pas FIPS.

       Configuration de bibliothèque OpenSSL plus complexe. Ajout d’OID et ne pas entrer en mode
       FIPS :

        # Nom_appli par défaut doit correspondre au param « nom_appli »
        # (s’il existe) fourni à CONF_modules_load_file, etc.
        openssl_conf = openssl_conf_section

        [openssl_conf_section]
        # liste de modules de configuration
        alg_section = evp_sect
        oid_section = new_oids

        [evp_sect]
        # Ceci sera sans effet car le mode FIPS par défaut est non activé.
        # Défini à « yes » pour entrer dans le mode FIPS si pris en charge
        fips_mode = no

        [new_oids]
        # Nouvel OID, nom court
        newoid1 = 1.2.3.4.1
        # Nouvel OID, noms court et long
        newoid2 = New OID 2 long name, 1.2.3.4.2

       Les exemples ci-dessus peuvent être utilisés avec toute application prenant en charge la
       configuration de bibliothèque si « openssl_conf » est modifié pour correspondre au
       « nom_appli » adéquat.

       Par exemple, si le second fichier exemple ci-dessus est sauvegardé dans « example.cnf »,
       alors la ligne de commande :

        OPENSSL_CONF=example.cnf openssl asn1parse -genstr OID:1.2.3.4.1

       produira :

           0:d=0  hl=2 l=   4 prim: OBJECT            :newoid1

       montrant que l’OID « newoid1 » a été ajouté en tant que « 1.2.3.4.1 ».

BOGUES

       Actuellement, aucun moyen ne permet d'inclure des caractères à l'aide de la forme octale
       \nnn. Les chaînes sont toutes terminées par NULL donc NULL ne peut pas faire partie de la
       valeur.

       La protection n'est pas tout à fait correcte : si vous voulez utiliser des suites comme
       \n, vous ne pouvez pas utiliser de guillemets de protection sur la même ligne.

       Les fichiers sont chargés en une seule passe. Cela signifie qu’un développement de
       variable ne fonctionnera que si les variables référencées sont définies précédemment dans
       le fichier.

VOIR AUSSI

       ca(1), req(1), x509(1)

TRADUCTION

       La traduction de cette page de manuel est maintenue par les membres de 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.