NOM¶
x509v3_config - format de configuration d'extension de certificat X509 V3
DESCRIPTION¶
Plusieurs utilitaires d’OpenSSL peuvent ajouter des extensions à
un certificat ou à une demande de certification se basant sur le
contenu d'un fichier de configuration.
Typiquement, la requête contient une option pour indiquer une section
d'extension. Chaque ligne de la section d'extension prend la forme :
extension_name=[critical,] extension_options
Si
critical est présent, alors l'extension sera critique.
Le format de
extension_options dépend de la valeur de
extension_name.
Il existe quatre principaux types d'extension : les extensions de
chaîne, les extensions
multi-valeur,
brut et les
extensions
arbitraire.
Les extensions de chaînes ont simplement une chaîne qui contient
soit la valeur elle-même ou la façon dont elle est obtenue.
Par exemple :
nsComment="Ceci est un commentaire"
Les extensions multi-valeurs ont une forme courte et une forme longue. La forme
courte est une liste de noms et de valeurs :
basicConstraints=critical,CA:true,pathlen:1
La forme longue permet aux valeurs d'être placées dans une section
distincte :
basicConstraints=critical,@bs_section
[bs_section]
CA=true
pathlen=1
Les deux formes sont équivalentes.
La syntaxe des extensions
brut est régie par le code
d'extension : elle peut par exemple contenir des données dans
plusieurs sections. La syntaxe correcte à utiliser est définie
par le code d'extension lui-même : consultez l'extension de
politiques de certificat pour un exemple.
Si un type d'extension n'est pas pris en charge, alors la syntaxe d'extension
arbitraire doit être utilisée, voir la section EXTENSIONS
ARBITRAIRES pour plus de détails.
EXTENSIONS STANDARDS¶
Les sections suivantes décrivent chaque extension prise en charge dans le
détail.
Restrictions de bases.¶
Cela est une extension
multi-valeur qui indique si un certificat est un
certificat de CA. Le premier nom (obligatoire) est
CA suivi par
TRUE ou
FALSE. Si
CA est
TRUE, alors un nom
pathlen facultatif suivi d'une valeur non négative peut
être inclus.
Par exemple :
basicConstraints=CA:TRUE
basicConstraints=CA:FALSE
basicConstraints=critical,CA:TRUE, pathlen:0
Un certificat de CA
doit inclure la valeur
basicConstraints avec
le champ
CA à
TRUE. Un certificat d'utilisateur final
doit fixer soit
CA à
FALSE ou exclure l'extension
entièrement. Certains logiciels peuvent nécessiter l'inclusion
de
basicConstraints avec
CA à
FALSE pour les
certificats d'entité de fin.
Le paramètre
pathlen indique le nombre maximal de CA qui peut
apparaître en dessous de cet élément d'une chaîne.
Donc, si vous avez une
CA avec
pathlen à zéro,
elle peut être utilisée uniquement pour signer les certificats
d'utilisateur final et non d'autres autorités de certification.
Utilisation de clé.¶
«Key usage » est une extension
multi-valeur
constituée d'une liste de noms d’utilisations de clé
autorisées.
Les noms pris en charge sont :
digitalSignature,
nonRepudiation,
keyEncipherment,
dataEncipherment,
keyAgreement,
keyCertSign,
cRLSign,
encipherOnly
et
decipherOnly.
Exemples :
keyUsage=digitalSignature, nonRepudiation
keyUsage=critical, keyCertSign
Utilisation étendue de clé.¶
Cette extension consiste en une liste d'utilisations indiquant la raison pour
laquelle la clé publique du certificat peut être
utilisée.
Celles-ci peuvent être les noms courts d’objets de forme
numérique avec points des OID. Alors que tout OID peut être
utilisé, uniquement certaines valeurs ont un sens. En particulier, les
valeurs PKIX, NS et MS suivantes sont significatives :
Value Meaning
----- -------
serverAuth SSL/TLS Web Server Authentication.
clientAuth SSL/TLS Web Client Authentication.
codeSigning Code signing.
emailProtection E-mail Protection (S/MIME).
timeStamping Trusted Timestamping
msCodeInd Microsoft Individual Code Signing (authenticode)
msCodeCom Microsoft Commercial Code Signing (authenticode)
msCTLSign Microsoft Trust List Signing
msSGC Microsoft Server Gated Crypto
msEFS Microsoft Encrypted File System
nsSGC Netscape Server Gated Crypto
Exemples :
extendedKeyUsage=critical,codeSigning,1.2.3.4
extendedKeyUsage=nsSGC,msSGC
Identifiant de clé de sujet.¶
C'est vraiment une extension
chaîne et elle peut prendre deux
valeurs possibles. Soit le mot
hash qui va suivre automatiquement les
lignes directrices de la RFC3280, ou une chaîne hexadécimale
donnant la valeur d'extension à inclure. L'utilisation de la
chaîne hexadécimale est fortement déconseillée.
Exemple :
subjectKeyIdentifier=hash
Identifiant de clé d’autorité.¶
L'extension d'identifiant de clé d'autorité permet deux options.
keyid et
issuer : chacune peut prendre la valeur
facultative
always.
Si l'option
keyid est présente, une tentative est faite pour
copier l'identifiant de clé de sujet à partir du certificat de
parent. Si la valeur
always est présente, alors une erreur est
renvoyée si l'option échoue.
L'option
issuer copie l'émetteur et le numéro de
série depuis le certificat de l'émetteur. Cela ne se fera que si
l'option
keyid échoue ou n'est pas incluse, sauf si le drapeau
always inclut toujours cette valeur.
Exemple :
authorityKeyIdentifier=keyid,issuer
Nom alternatif de sujet.¶
L'extension de nom alternatif du sujet permet différentes valeurs
littérales pouvant être incluses dans le fichier de
configuration. Il s'agit notamment de
email (une adresse de courriel),
URI un indicateur de ressource uniforme,
DNS (un nom de domaine
DNS),
RID (un enregistrement d’ID : OBJECT IDENTIFIER),
IP (une adresse IP),
dirname (un nom distinctif) et
otherName.
L'option
email inclut une valeur spéciale
« copy ». Cela inclura automatiquement les
adresses de courriel contenues dans le nom du sujet du certificat de
l'extension.
L'adresse IP utilisée dans les options
IP peut être en
format IPv4 ou IPv6.
La valeur de
dirName doit pointer vers une section contenant le nom
unique à utiliser comme un ensemble de paires nom-valeur. Plusieurs
valeurs AVA peuvent être formées en faisant
précéder le nom d'un caractère
+.
otherName peut inclure des données
arbitraire
associées à un OID : la valeur devrait être l'OID
suivi par un point-virgule et le contenu au format de la norme standard
ASN1_generate_nconf(3).
Exemples :
subjectAltName=email:copy,email:my@other.address,URI:http://my.url.here/
subjectAltName=IP:192.168.7.1
subjectAltName=IP:13::17
subjectAltName=email:my@other.address,RID:1.2.3.4
subjectAltName=otherName:1.2.3.4;UTF8:un autre identifiant
subjectAltName=dirName:dir_sect
[dir_sect]
C=UK
O=My Organization
OU=My Unit
CN=My Name
Nom alternatif d’émetteur.¶
L'option de nom alternatif d'émetteur prend en charge toutes les options
littérales de nom alternatif de sujet. Elle
ne prend
pas
en charge l'option
email:copy, car cela n'aurait pas de sens. Elle
prend en charge une option supplémentaire
issuer:copy qui permet
de copier toutes les valeurs de nom alternatif d'objet du certificat de
l'émetteur (si possible).
Exemple :
issuserAltName = issuer:copy
L'extension de l'accès aux informations de l'autorité donne des
détails sur la façon d'accéder à certaines
informations relatives à la CA. Sa syntaxe est
accessOID;lieu où
lieu a la même syntaxe
que le nom alternatif du sujet (sauf que l'option
email:copy n'est pas
prise en charge).
accessOID peut être n'importe quel OID valide,
mais seulement certaines valeurs sont significatives, par exemple
OCSP
et
caIssuers.
Exemple :
authorityInfoAccess = OCSP;URI:http://ocsp.my.host/
authorityInfoAccess = caIssuers;URI:http://my.ca/ca.html
Points de distribution de la liste de révocations de certificat (CRL).¶
Cela est une extension
multi-valeur dont les options peuvent être
soit en paire nom:valeur en utilisant la même forme que le nom
alternatif du sujet, soit une valeur unique représentant un nom de
section contenant tous les champs de points de distribution.
Pour une paire
nom:
valeur, un nouveau
DistributionPoint
avec le champ
fullName fixé à la valeur
donnée ; les champs
cRLissuer et
reasons sont omis
tout les deux dans ce cas.
Dans le cas de l'option unique, la section indiquée contient des valeurs
pour chaque champ. Dans cette section :
— Si le
nom est « fullname »,
le champ
valeur doit contenir le nom complet du point de distribution
dans le même format que le nom alternatif de sujet.
— Si le
nom est
« relativename », alors le champ
valeur
doit contenir un nom de section dont le contenu représente un fragment
du DN à placer dans ce champ.
— Le
nom « CRLIssuer », s'il
est présent, doit contenir une valeur pour ce champ dans le format de
nom alternatif de sujet.
Si le nom est « reasons », le champ doit se composer
d'un champ séparé par des virgules contenant les raisons. Les
raisons valides sont : « keyCompromise »,
« CACompromise »,
« affiliationChanged »,
« superseded »,
« cessationOfOperation »,
« certificateHold »,
« privilegeWithdrawn » and
« AACompromise ».
Par exemple :
crlDistributionPoints=URI:http://myhost.com/myca.crl
crlDistributionPoints=URI:http://my.com/my.crl,URI:http://oth.com/my.crl
Exemple complet de point de distribution :
crlDistributionPoints=crldp1_section
[crldp1_section]
fullname=URI:http://myhost.com/myca.crl
CRLissuer=dirName:issuer_sect
reasons=keyCompromise, CACompromise
[issuer_sect]
C=UK
O=Organisation
CN=Some Name
Émission d’un Point de distribution¶
Cette extension doit apparaître seulement dans les CRL. Il s'agit d'une
extension à
multi-valeur dont la syntaxe est similaire à
la « section » pointée par l'extension des
points de distribution des CRL avec quelques différences.
Les noms « reasons » et
« CRLissuer » ne sont pas reconnus.
Le nom « onlysomereasons » est accepté ce qui
définit ce champ. La valeur est dans le même format que le champ
« reasons » du point de distribution CRL.
Les noms « onlyuser »,
« onlyCA », « onlyAA »
et « indirectCRL » sont également
acceptés. Les valeurs doivent être une valeur booléenne
(« TRUE » ou
« FALSE ») pour indiquer la valeur du champ
correspondant.
Exemple :
issuingDistributionPoint=critical, @idp_section
[idp_section]
fullname=URI:http://myhost.com/myca.crl
indirectCRL=TRUE
onlysomereasons=keyCompromise, CACompromise
[issuer_sect]
C=UK
O=Organisation
CN=Some Name
Politiques de certificat.¶
C'est une extension
brut. Tous les champs de cette extension peuvent
être définis en utilisant la syntaxe appropriée.
Si vous suivez les recommandations de PKIX et en utilisant simplement un OID,
alors vous incluez la valeur de cet OID. De multiples OID peuvent être
indiqués, séparés par des virgules, par exemple :
certificatePolicies= 1.2.4.5, 1.1.3.4
Si vous souhaitez inclure des qualificatifs, alors l'OID de la politique et de
qualification doivent être indiqués dans une section
distincte : cela se fait en utilisant la syntaxe @section à la
place d'une valeur littérale d'OID.
La section visée doit comprendre l'OID de politique en utilisant le nom
policyIdentifier ; les qualificatifs
cPSuri peuvent être
inclus en utilisant la syntaxe :
CPS.nnn=value
Les qualificatifs
UserNotice peuvent être définis en
utilisant la syntaxe :
userNotice.nnn=@notice
La valeur du quantificateur
userNotice est indiquée dans la
section correspondante. Cette section peut inclure les options
organisation explicitText et
noticeNumbers.
explicitText et
organisation sont des chaînes de texte,
noticeNumbers est une liste de numéros séparés par
des virgules. Les options d'
organisation et
noticeNumbers (si
inclus) doivent tous deux être présentes. Si vous utilisez
l'option de
userNotice avec IE5, alors vous devez avoir l'option
'ia5org' au plus haut niveau pour modifier l'encodage : sinon il ne
sera pas interprété correctement.
Exemple :
certificatePolicies=ia5org,1.2.3.4,1.5.6.7.8,@polsect
[polsect]
policyIdentifier = 1.3.5.8
CPS.1="http://my.host.name/"
CPS.2="http://my.your.name/"
userNotice.1=@notice
[notice]
explicitText="Explicit Text Here"
organization="Organisation Name"
noticeNumbers=1,2,3,4
L'option
ia5org modifie le type du champ
organisation. Dans la
RFC2459, il ne peut être que de type
DisplayText. Dans la
RFC3280,
IA5String est également admissible. Certains logiciels
(par exemple certaines versions de MSIE) peuvent exiger ia5org.
Contraintes de politique¶
Cela est une extension
multi-valeur qui comprend les noms
requireExplicitPolicy ou
inhibitPolicyMapping et une valeur
entière non négative. Au moins un composant doit être
présent.
Exemple :
policyConstraints = S<requireExplicitPolicy :3>
Inhiber toute politique¶
Il s'agit d'une extension de chaîne dont la valeur doit être un
entier non négatif.
Exemple :
inhibitAnyPolicy = 2
Contraintes de nom¶
L'extension des contraintes de nom est une extension
multi-valeur. Le nom
doit commencer par le mot
permitted ou
excluded suivie par un
;. Le reste du nom et de la valeur suit la syntaxe de
subjectAltName sauf
email:copy qui n'est pas pris en charge et
la forme d’IP devrait consister en une adresse IP et un masque de
sous-réseau séparés par un
/.
Exemples :
nameConstraints=permitted;IP:192.168.0.0/255.255.0.0
nameConstraints=permitted;email:.somedomain.com
nameConstraints=excluded;email:.com
Pas de vérification OCSP¶
L’extension de non vérification du protocole OCSP est une
extension
chaîne, mais sa valeur est ignorée
Exemple :
noCheck = ignored
EXTENSIONS OBSOLÈTES¶
Les extensions suivantes ne sont pas standards, propres à Netscape et
largement obsolètes. Leur utilisation dans de nouvelles applications
est déconseillée.
Extensions de chaîne pour Netscape.¶
Netscape Comment (
nsComment) est une extension
chaîne
contenant un commentaire qui sera affiché lorsque le certificat est
utilisé dans certains navigateurs.
Exemple :
nsComment = "Un commentaire"
D'autres extensions prises en charge dans cette catégorie sont :
nsBaseUrl,
nsRevocationUrl,
nsCaRevocationUrl,
nsRenewalUrl,
nsCaPolicyUrl et
nsSslServerName.
Type de certificat pour Netscape¶
Il s'agit d'une extension
multi-valeur qui consiste en une liste de
drapeaux à inclure. Elle a été utilisée pour
indiquer les objectifs pour lesquelles un certificat pourrait être
utilisé. Les extensions
basicConstraints,
keyUsage et
utilisation étendue de clé sont maintenant utilisées
à la place.
Les valeurs acceptables pour
nsCertType sont :
client,
serveur,
email,
objsign,
reserved,
sslCA,
emailCA,
objCA.
EXTENSIONS ARBITRAIRES¶
Si une extension n'est pas prise en charge par le code d’OpenSSL, alors
elle doit être codée en utilisant le format d'extension
arbitraire. Il est également possible d'utiliser le format arbitraire
pour les extensions prises en charge. Un soin extrême doit être
pris pour s'assurer que les données soient formatées
correctement pour le type d'extension donné.
Il y a deux façons de coder des extensions arbitraires.
La première façon est d'utiliser le mot ASN1 suivi par le contenu
d'extension en utilisant la même syntaxe que
ASN1_generate_nconf(3). Par exemple :
S<1.2.3.4=critical,ASN1 :UTF8String:Some> random data
1.2.3.4=ASN1:SEQUENCE:seq_sect
[seq_sect]
field1 = UTF8:field1
field2 = UTF8:field2
Il est également possible d'utiliser le mot DER pour inclure les
données codées brutes dans n'importe quelle extension.
1.2.3.4=critical,DER:01:02:03:04
1.2.3.4=DER:01020304
La valeur suivant DER est un vidage hexadécimal de l'encodage DER de
l'extension. Toute extension peut être placée sous cette forme
pour remplacer le comportement par défaut. Par exemple :
basicConstraints=critical,DER:00:01:02:03
AVERTISSEMENT¶
Il n'y a aucune garantie qu’une mise en œuvre spécifique
traitera une extension donnée. Il peut donc être parfois
possible d'utiliser des certificats à des fins interdites par leurs
extensions, car une application spécifique ne reconnaît pas ou
ne prend pas en compte les valeurs des extensions en cause.
Les options de DER et ASN1 devraient être utilisées avec prudence.
Il est possible de créer des extensions totalement non valables si
elles ne sont pas utilisées avec précaution.
NOTES¶
Si une extension est
multi-valeur et qu’une valeur de champ doit
contenir une virgule, le format long doit être utilisé,
autrement la virgule est interprétée comme un séparateur
de champ. Par exemple :
subjectAltName=URI:ldap://somehost.com/CN=foo,OU=bar
produira une erreur, mais la forme équivalente :
subjectAltName=@subject_alt_section
[subject_alt_section]
subjectAltName=URI:ldap://somehost.com/CN=foo,OU=bar
est valide.
En raison du comportement de la bibliothèque
conf
d’OpenSSL, le même nom de champ ne peut apparaître
qu’une fois dans une section. Cela signifie que :
subjectAltName=@alt_section
[alt_section]
email=steve@here
email=steve@there
ne fera que reconnaître la dernière valeur. Cela peut être
contourné en utilisant le formulaire :
[alt_section]
email.1=steve@here
email.2=steve@there
HISTORIQUE¶
Le code d'extensions de X509v3 a été ajouté à
OpenSSL 0.9.2.
La mise en correspondance de politique, empêcher toute politique et les
contraintes de nom ont été ajoutés dans
OpenSSL 0.9.8
Les options
directoryName et
otherName ainsi que l'option
ASN1 des extensions arbitraires ont été ajoutées
dans OpenSSL 0.9.8
VOIR AUSSI¶
req(1),
ca(1),
x509(1),
ASN1_generate_nconf(3)
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.