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 ...
Actuellement, deux modules de configuration existent, un pour les objets ASN1,
un autre pour la configuration du MOTEUR.
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
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
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.