NOM¶
x509 - Utilitaire d'affichage et de signature de certificat
SYNOPSIS¶
openssl x509 [
-inform DER|
PEM|
NET]
[
-outform DER|
PEM|
NET] [
-keyform
DER|
PEM] [
-CAform DER|
PEM] [
-CAkeyform
DER|
PEM] [
-in nom_fichier] [
-out
nom_fichier] [
-serial] [
-subject_hash]
[
-issuer_hash] [
-ocspid] [
-subject] [
-issuer]
[
-nameopt option] [
-email] [
-ocsp_uri] [
-startdate] [
-enddate] [
-purpose] [
-dates]
[
-checkend num] [
-modulus] [
-pubkey]
[
-fingerprint] [
-alias] [
-noout] [
-trustout]
[
-clrtrust] [
-clrreject] [
-addtrust param] [
-addreject param] [
-setalias param] [
-days
param] [
-set_serial n] [
-signkey
nom_fichier] [
-passin param] [
-x509toreq]
[
-req] [
-CA nom_fichier] [
-CAkey
nom_fichier] [
-CAcreateserial] [
-CAserial
nom_fichier] [
-text] [
-certopt option]
[
-C] [
-md2|
-md5|
-sha1|
-mdc2]
[
-clrext] [
-extfile nom_fichier] [
-extensions
section] [
-engine id]
DESCRIPTION¶
La commande
x509 a plusieurs rôles. Elle peut être
utilisée pour afficher les informations sur le certificat, convertir
les certificats en diverses formes, signer les demandes de certificat comme
les « mini CA » ou éditer les
paramètres de confiance du certificat.
Comme il y a un grand nombre d'options, elles vont se repartir en plusieurs
sections.
OPTIONS¶
OPTIONS D’ENTRÉE, DE SORTIE ET DIVERSES¶
- -inform DER|PEM|NET
- Indique le format normal d’entrée que la commande attendra
d’un certificat X509 mais cela peut changer si d'autres options
comme -req sont indiquées. Le format DER est l'encodage DER
du certificat et PEM est l'encodage base64 de l'encodage DER avec des
hauts de page et des pieds de pages ajoutés. L'option NET est un
obscur format de serveur Netscape qui est à présent
obsolète.
- -outform DER|PEM|NET
- 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 le
certificat sera lu. Par défaut, le certificat est lu depuis
l'entrée standard si cette option est omise.
- -out nom_fichier
- Indique le nom du fichier de sortie. La sortie standard est
utilisée par défaut.
- -md2|-md5|-sha1|-mdc2
- La fonction de hachage à utiliser. Cela affecte toute option de
signature ou d'affichage qui utilise un condensé, comme les options
-fingerprint, -signkey et -CA. Si elle n'est pas
spécifiée, alors SHA1 est utilisée. Si la clé
utilisée pour s'identifier est une clé DSA, alors cette
option n'a pas d'effet : SHA1 est toujours utilisée avec les
clés DSA.
- -engine id
- Indiquer un moteur (en utilisant son identifiant unique id)
conduira x509 à 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.
OPTIONS D'AFFICHAGE¶
Remarque : les options
-alias et
-purpose sont
également des options d'affichage mais elles sont décrites dans
la section
PARAMÈTRES DE CONFIANCE.
- -text
- Affiche le certificat sous forme de texte. Tous les détails sont
affichés, y compris la clé publique, les algorithmes de
signature, les noms d'émetteur et de sujet, le numéro de
série des extensions présentes et tous les paramètres
de confiance.
- -certopt option
- Personnalise le format de sortie utilisé avec -text.
L'option peut être une simple option ou plusieurs options
séparées par des virgules. -certopt peut
également être utilisé plus d'une fois pour
définir plusieurs options. Voir la section OPTIONS DE TEXTE
pour de plus amples informations.
- -noout
- Cette option empêche la sortie de la version codée de la
demande.
- -pubkey
- Affiche la structure SubjectPublicKeyInfo du certificat au format
PEM.
- -modulus
- Cette option affiche la valeur du modulo de la clé publique
contenue dans le certificat.
- -serial
- Affiche le numéro de série du certificat.
- -subject_hash
- Affiche le « hash » du nom du sujet du
certificat. Cela est utilisé dans OpenSSL pour former un index
permettant de rechercher un certificat dans un répertoire avec le
nom de sujet.
- -issuer_hash
- Affiche le « hash » du nom de
l'émetteur du certificat.
- -ocspid
- Affiche les valeurs de hachage OCSP pour le nom du sujet et la clé
publique.
- -hash
- Synonyme de « -subject_hash » pour des raisons
de compatibilité descendante.
- -subject_hash_old
- Affiche le « hash » du nom de sujet du
certificat en utilisant l'ancien algorithme utilisé dans les
versions d'OpenSSL avant 1.0.0.
- -issuer_hash_old
- Affiche le « hash » du nom de
l'émetteur du certificat en utilisant l'ancien algorithme
utilisé dans les versions d'OpenSSL avant 1.0.0.
- -subject
- Affiche le nom du sujet.
- -issuer
- Affiche le nom de l'émetteur.
- -nameopt option
- L'option qui détermine la façon dont les noms d'objet ou
d'émetteur sont affichés. L'argument option peut
être une simple option ou plusieurs options séparées
par des virgules. Vous pouvez également utiliser -nameopt
plus d'une fois pour définir plusieurs options. Voir la section
OPTIONS DE NOM pour de plus amples informations.
- -email
- Affiche la ou les adresses électroniques le cas
échéant.
- -ocsp_uri
- Affiche la ou les adresses du répondeur OCSP le cas
échéant.
- -startdate
- Affiche la date de début du certificat, qui correspond à la
date « notBefore » (littéralement
« pas avant »).
- -enddate
- Affiche la date d'expiration du certificat, qui correspond à la
date « notAfter » (littéralement
« pas après »).
- -dates
- Affiche les dates de début et de fin du certificat.
- -checkend param
- Vérifie si le certificat expire dans les prochaines
param secondes et quitte avec une valeur de retour non nulle
si c’est le cas, ou zéro sinon.
- -fingerprint
- Affiche l'empreinte de la version encodée DER de l'ensemble du
certificat (voir les options d'empreinte).
- -C
- Affiche le certificat sous la forme d'un fichier source C.
PARAMÈTRES DE CONFIANCE¶
Veuillez noter que ces options sont expérimentales et peuvent être
amenées à changer.
Un
certificat de confiance est un certificat ordinaire auquel plusieurs
éléments d'information supplémentaires sont
rattachés, tels que les utilisations permises et interdites du
certificat et un « alias ».
Normalement, quand un certificat est contrôlé, au moins un
certificat doit être « de confiance ». Par
défaut, un certificat de confiance doit être stocké
localement et doit être une autorité de certification
racine : toute chaîne de certificat à la fin de ce
certificat est alors utilisable dans n'importe quel but.
Les paramètres de confiance sont actuellement utilisés avec une
autorité de certification racine. Ils permettent un contrôle
plus fin des différentes certifications racines ayant divers usages.
Par exemple, un CA est fiable pour le client SSL, mais pas pour l'utilisation
d'un serveur SSL.
Voir la description de l'utilitaire
verify pour plus d'informations sur
la signification des paramètres de confiance.
Les futures versions d'OpenSSL reconnaîtront les paramètres de
confiance sur n'importe quel certificat : pas seulement les
autorités de certification racine.
- -trustout
- Permet à x509 de délivrer un certificat de
confiance. Un certificat ordinaire ou de confiance peut être
entré, mais par défaut un certificat ordinaire est sorti et
les paramètres de confiance sont rejetés. Avec l'option
-trustout un certificat de confiance est sorti. Un certificat de
confiance est sorti automatiquement si les paramètres de confiance
sont modifiés.
- -setalias param
- Définit l'alias du certificat. Cela permettra au certificat
d'être référencé par un surnom par exemple
« Le certificat de Steve ».
- -alias
- Fournit en sortie l'alias de certificat, s’il existe.
- -clrtrust
- Efface toutes les utilisations autorisées ou de confiance du
certificat.
- -clrreject
- Efface tous les usages interdits ou rejetés du certificat.
- -addtrust param
- Ajoute une utilisation de confiance de certificat. Tout nom d'objet peut
être utilisé ici, mais actuellement seulement
clientAuth (utilisation de client SSL), serverAuth
(utilisation de serveur SSL) et emailProtection (courriel S/MIME)
sont utilisés. D'autres applications OpenSSL peuvent définir
d'autres utilisations.
- -addreject param
- Ajoute un usage interdit. Les mêmes valeurs que l'option
-addtrust sont acceptées.
- -purpose
- Cette option effectue des tests sur les extensions de certificat et
affiche les résultats. Pour une description plus complète,
voir la section des EXTENSIONS DE CERTIFICAT.
OPTIONS POUR LA SIGNATURE¶
L'utilitaire
x509 peut être utilisé pour signer des
certificats et des demandes : il peut donc se comporter comme une
« mini CA ».
- -signkey nom_fichier
- Cette option autorise le fichier d'entrée à être
autosigné avec la clé privée fournie.
Si le fichier d'entrée est un certificat, il définit le nom de
l'émetteur comme nom de sujet (c’est-à-dire, le rend
autosigné), change la clé publique à la valeur
fournie et modifie les dates de début et de fin. La date de
début est réglée sur l'heure courante et la date de
fin est réglée à une valeur déterminée
par l'option -days. Toutes les extensions de certificat sont
conservées sauf si l'option -clrext est fournie.
Si l'entrée est une demande de certificat, alors un certificat
autosigné est créé en utilisant la clé
privée fournie et utilisera le nom de l'objet dans la demande.
- -passin param
- La source du mot de passe de la clef. Pour plus d'informations sur le
format de param, consultez la section PARAMÈTRES DE
PHRASE SECRÈTE d' openssl(1).
- -clrext
- Supprime toutes les extensions d'un certificat. Cette option est
utilisée quand un certificat est créé à partir
d'un autre certificat (par exemple avec les options -signkey ou
-CA). Normalement, toutes les extensions sont
conservées.
- -keyform PEM|DER
- Indique le format (DER ou PEM) du fichier de clé privée
utilisé par l'option -signkey.
- -days param
- Indique le nombre de jours pendant lesquels le certificat doit être
valable. La valeur par défaut est de 30 jours.
- -x509toreq
- Convertit le certificat en demande de certificat. L'option -signkey
est utilisée pour passer la clé privée.
- -req
- Par défaut, un certificat est attendu en entrée. Avec cette
option une demande de certificat est attendue à la place.
- -set_serial n
- Précise le numéro de série à utiliser. Cette
option peut être utilisée avec l'option -signkey ou
-CA. Si elle est utilisée en conjonction avec l'option
-CA le fichier de numéro de série (comme
spécifié par l'option <-CAserial> ou
-CAcreateserial) n'est pas utilisé.
Le numéro de série peut être décimal ou
hexadécimal (si précédé par 0x). Des
numéros de série négatifs peuvent aussi être
utilisés, mais leur utilisation n'est pas recommandée.
- -CA nom_fichier
- Précise le certificat CA à utiliser pour la signature.
Lorsque cette option est présente, x509 se comporte comme
une « mini CA ». Le fichier d'entrée
est signé par cette autorité de certification en utilisant
cette option : c’est-à-dire, le nom de
l'émetteur est le nom d’objet de la CA et est signé
numériquement à l'aide de la clé privée de la
CA.
Cette option est normalement combinée avec l'option -req. Sans
l'option -req l'entrée est un certificat qui doit
être autosigné.
- -CAkey nom_fichier
- Définit la clé privée de la CA avec laquelle signer
un certificat. Si cette option n'est pas spécifiée, alors il
est supposé que la clé privée est présente
dans le fichier de certificat de la CA.
- -CAserial nom_fichier
- Définit le fichier de numéro de série de la CA
à utiliser.
Lorsque l'option -CA est utilisée pour signer un certificat,
un numéro de série indiqué dans un fichier est
utilisé. Ce fichier se compose d'une ligne contenant un nombre pair
de chiffres hexadécimaux avec le numéro de série
à utiliser. Après chaque utilisation, le numéro de
série est incrémenté et écrit à nouveau
dans le fichier.
Le nom de fichier par défaut se compose du nom de base du fichier de
certificat de la CA avec « .srl » comme
extension. Par exemple, si le fichier de certificat CA est appelé
« mycacert.pem », il s'attend à trouver
un fichier de numéro de série appelé
« mycacert.srl ».
- -CAcreateserial
- Avec cette option, le fichier de numéro de série de la CA
est créé s'il n'existe pas : il contiendra le
numéro de série « 02 » et le
certificat qui a été signé aura le 1 comme
numéro de série. Normalement, si l'option -CA est
spécifiée et que le fichier n'existe pas, c'est une
erreur.
- -extfile nom_fichier
- Fichier contenant les extensions de certificat à utiliser. S'il
n'est pas spécifié, alors aucune extension n'est
ajoutée au certificat.
- -extensions section
- La section où prendre les extensions de certificats à
ajouter. Si cette option n'est pas spécifiée, alors les
extensions devraient soit être contenues dans la section sans nom
(défaut) ou alors la section par défaut devrait contenir une
variable appelée « extensions » qui
contient la section à utiliser. Voir la page de manuel de
x509v3_config(5) pour les détails du format de section des
extensions.
OPTIONS DE NOM¶
L’option de ligne de commande
nameopt détermine la
façon dont les noms de l'objet et de l'émetteur sont
affichés. Si aucune option
nameopt n'est présente, le
format par défaut « oneline » est
utilisé, ce qui est compatible avec les versions
précédentes d'OpenSSL. Chaque option est décrite en
détail ci-dessous, toutes les options peuvent être
précédées d'un
- pour désactiver l'option.
Seules les quatre premières seront normalement utilisées.
- compat
- Utilise l'ancien format. Cela est équivalent à ne
spécifier aucune option de nom.
- RFC2253
- Affiche les noms compatibles avec la RFC2253. Équivalent à
esc_2253, esc_ctrl, esc_msb, utf8,
dump_nostr, dump_unknown, dump_der,
sep_comma_plus, dn_rev et sname.
- oneline
- Un format d’une seule ligne qui est plus lisible qu’avec la
RFC2253. Il revient à spécifier les options esc_2253,
esc_ctrl, esc_msb, utf8, dump_nostr,
dump_der, use_quote, sep_comma_plus_space,
space_eq et sname.
- multiline
- Un format multiligne. Il est équivalent à esc_ctrl,
esc_msb, sep_multiline, space_eq, lname et
align.
- esc_2253
- Protège les caractères
« spéciaux » requis par la RFC2253 dans
un champ, c'est-à-dire ,+"<>;. De plus, #
est protégé au début d'une chaîne ainsi que
l’espace au début ou à la fin d'une
chaîne.
- esc_ctrl
- Protège les caractères de contrôle : ceux dont
la valeur ASCII est inférieure à 0x20 (espace) et le
caractère (0x7f) de suppression. Ils sont protégés en
utilisant la notation \XX de la RFC2253 (où XX sont deux chiffres
hexadécimaux représentant la valeur du
caractère).
- esc_msb
- Protège les caractères avec l'ensemble MSB,
c'est-à-dire avec des valeurs ASCII supérieures à
127.
- use_quote
- Protège quelques caractères en entourant toute la
chaîne avec les caractères ". Sans cette option,
tout l'échappement est réalisé avec le
caractère \.
- utf8
- Convertit d'abord toutes les chaînes au format UTF8. Cela est
requis par la RFC2253. Si vous êtes assez chanceux pour avoir un
terminal compatible UTF8, alors l'utilisation de cette option (et
sans la mise en esc_msb) peut entraîner l'affichage
correct des caractères multi-octets (internationaux). Si cette
option n'est pas présente, alors les caractères multi-octets
plus grands que 0xff seront représentés en utilisant le
format \UXXXX pour 16 bits et \WXXXXXXXX pour 32 bits.
Aussi, si cette option est désactivée, toute chaîne
UTF8 sera d'abord convertie en caractères.
- ignore_type
- Cette option ne vise en aucune façon à interpréter
les caractères multi-octets. Leurs octets de contenu sont
simplement affichés comme si un octet représentait un
caractère. Cela est utile à des fins de diagnostic, mais se
traduira par une sortie plutôt étrange.
- show_type
- Montre le type de la chaîne de caractère ASN1. Le type
précède le contenu des champs. Par exemple
« BMPSTRING : Bonjour tout le
monde ».
- dump_der
- Lorsque cette option est utilisée, tous les champs qui doivent
être affichés en hexadécimal seront affichés
en utilisant l'encodage DER du champ. Sinon seulement les octets de
contenu seront affichés. Les deux options utilisent le format
#XXXX... de la RFC2253.
- dump_nostr
- Vide les types qui ne sont pas des chaînes de caractères
(par exemple OCTET STRING). Si cette option n'est pas activée,
alors les types qui ne sont pas des chaînes de caractères
seront affichés comme si chaque octet de contenu représente
un seul caractère.
- dump_all
- Vide tous les champs. Lorsque cette option est utilisée avec
dump_der, elle permet le codage DER de la structure devant
être déterminée sans ambiguïté.
- dump_unknown
- Vide tout champ dont l'OID n'est pas reconnu par OpenSSL.
- sep_comma_plus, sep_comma_plus_space,
sep_semi_plus_space, sep_multiline
- Ces options déterminent les séparateurs de champs. Le
premier caractère est entre les « Relative
Distinguished Name » (RDN) et le second entre plusieurs
« Attribute Value Assertion » (AVA) (plusieurs
sont très rares et leur utilisation est
déconseillée). Les options se terminant par
« espace » placent en outre une espace
après le séparateur pour une meilleure lisibilité.
sep_multiline utilise un caractère de saut de ligne pour le
séparateur des RDN et un + entouré d'espaces pour le
séparateur des AVA. Il indente aussi les champs par quatre
caractères.
- dn_rev
- Inverse les champs des DN. Cela est requis par la RFC2253. Comme un effet
secondaire, cela inverse également l'ordre de plusieurs AVA mais
cela est permis.
- nofname, sname, lname, oid
- Ces options modifient la façon dont le nom de domaine est
affiché. nofname n'affiche pas le champ du tout.
sname utilise la forme « nom court »
(CN pour commonName par exemple). lname utilise la forme longue.
oid représente l'OID sous forme numérique et est
utile à des fins de diagnostic.
- align
- Aligne les valeurs de champ pour une sortie plus lisible. Seulement
utilisable avec sep_multiline.
- space_eq
- Place des espaces autour du caractère = qui suit le nom de
champ.
OPTIONS POUR LA SORTIE TEXTE¶
Comme pour la personnalisation du format du nom de sortie, il est
également possible de personnaliser les champs réellement
affichés en utilisant les options
certopt lorsque l'option de
text est présente. Le comportement par défaut est
d'afficher tous les domaines.
- compatible
- Utilise l'ancien format. Cela est équivalent à ne
spécifier aucune option de sortie du tout.
- no_header
- N'affiche pas les informations d'en-tête :
c'est-à-dire les lignes comprenant
« certificat » et
« Data ».
- no_version
- N'affiche pas le numéro de version.
- no_serial
- N'affiche pas le numéro de série.
- no_signame
- N'affiche pas l'algorithme de signature utilisé.
- no_validity
- N'affiche pas la validité, à savoir les champs de
notBefore et notAfter.
- no_subject
- N'affiche pas le nom de l'objet.
- no_issuer
- N'affiche pas le nom de l'émetteur.
- no_pubkey
- N'affiche pas la clé publique.
- no_sigdump
- N'affiche pas la signature du certificat en hexadécimal.
- no_aux
- N'affiche pas les informations de confiance du certificat.
- no_extensions
- N'affiche pas toutes les extensions de X509v3.
- ext_default
- Conserve le comportement de l'extension par défaut : essaie
d'afficher les extensions de certificat non prises en charge.
- ext_error
- Affiche un message d'erreur pour les extensions de certificat non prises
en charge.
- ext_parse
- Analyse avec ASN1 les extensions non prises en charge.
- ext_dump
- Affichage hexadécimal des extensions non prises en charges.
- ca_default
- La valeur utilisée par l'utilitaire ca. Équivalent
à no_issuer, NO_PUBKEY, no_header,
no_version, no_sigdump et no_signame.
EXEMPLES¶
Remarque : dans ces exemples, le « \ »
signifie que l'exemple doit être sur une seule ligne.
Affiche le contenu d'un certificat :
openssl x509 -in cert.pem -noout -text
Affiche le numéro de série du certificat :
openssl x509 -in cert.pem -noout -serial
Affiche le nom du sujet du certificat :
openssl x509 -in cert.pem -noout -subject
Affiche le nom du sujet du certificat au format de la RFC 2253 :
openssl x509 -in cert.pem -noout -subject -nameopt RFC2253
Affiche le nom du sujet du certificat en une seule ligne sur un terminal
supportant UTF8 :
openssl x509 -in cert.pem -noout -subject -nameopt oneline,-esc_msb
Affiche l'empreinte MD5 du certificat :
openssl x509 -in cert.pem -noout -fingerprint
Affiche l'empreinte SHA1 du certificat :
openssl x509 -sha1 -in cert.pem -noout -fingerprint
Convertit un certificat du format PEM vers le format DER :
openssl x509 -in cert.pem -inform PEM -out cert.der -outform DER
Convertit un certificat en une demande de certificat :
openssl x509 -x509toreq -in cert.pem -out req.pem -signkey key.pem
Convertit une demande de certificat en un certificat autosigné en
utilisant les extensions pour une CA :
openssl x509 -req -in careq.pem -extfile openssl.cnf -extensions v3_ca \
-signkey key.pem -out cacert.pem
Signe une demande de certificat en utilisant le certificat
précédent de la CA et ajoute les extensions de certificat
utilisateur :
openssl x509 -req -in req.pem -extfile openssl.cnf -extensions v3_usr \
-CA cacert.pem -CAkey key.pem -CAcreateserial
Définit un certificat à être approuvé pour
l'utilisation par un client SSL et règle son alias à
« CA classe 1 de Steve »
openssl x509 -in cert.pem -addtrust clientAuth \
-setalias "CA classe 1 de Steve" -out trust.pem
NOTES¶
Le format PEM utilise les lignes d'en-tête et de bas de page
suivantes :
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
Il prendra également en charge les fichiers contenant :
-----BEGIN X509 CERTIFICATE-----
-----END X509 CERTIFICATE-----
Les certificats de confiance ont les lignes :
-----BEGIN TRUSTED CERTIFICATE-----
-----END TRUSTED CERTIFICATE-----
La conversion au format UTF8 utilisée avec les options de nom
considère que
T61Strings utilise le jeu de caractères
ISO8859-1. Cela est faux, mais Netscape et MSIE font ainsi, ainsi que de
nombreux certificats. Ainsi, bien que ce ne soit pas correct, la plupart des
certificats ont plus de chances de s’afficher correctement.
L'option
-fingerprint prend le condensé du certificat codé
DER. Cela est communément appelé « une
empreinte ». En raison de la nature des condensats de message,
l'empreinte d'un certificat est propre à ce certificat, et deux
certificats ayant la même empreinte peuvent être
considérés comme étant les mêmes.
L'empreinte Netscape utilise MD5 alors que celle de MSIE utilise SHA1.
L'option
-email recherche le nom de l'objet et l'extension de nom
alternatif de sujet. Seules les adresses de courriel uniques seront
affichées : la même adresse ne sera pas affichée
plus d'une fois.
EXTENSIONS DE CERTIFICAT¶
L'option
-purpose vérifie les extensions de certificat et
détermine ce pourquoi le certificat peut être utilisé.
Les contrôles réels réalisés sont assez complexes
et comprennent diverses bidouilles et des solutions de contournement des
certificats et des logiciels cassés.
Le même code est utilisé lors de la vérification des
certificats non approuvés dans les chaînes : cette
section est utile si une chaîne est rejetée par
l’utilitaire
verify.
Le drapeau d'extension
basicConstraints de la CA est utilisé pour
déterminer si le certificat peut être utilisé comme une
CA. Si le drapeau de la CA est vrai, alors il est une autorité de
certification, si le drapeau de la CA est faux, alors il n'est pas une CA.
Toutes les autorités de certification doivent avoir le drapeau
de la CA à vrai.
Si l'extension
basicConstraints est absente, alors le certificat est
considéré comme une « CA possible ».
Les autres extensions sont contrôlées selon l'utilisation
prévue du certificat. Un avertissement est donné dans ce cas,
car le certificat ne devrait vraiment pas être considéré
comme une autorité de certification : mais il est permis
d'être une CA pour contourner certains logiciels cassés.
Si le certificat est un certificat V1 (et donc n'a pas d’extension) et
qu’il est autosigné, il est également supposé
être une CA mais un avertissement est de nouveau donné :
c'est pour contourner le problème des racines Verisign qui sont des
certificats V1 autosignés.
Si l'extension
keyUsage est présente, des restrictions
supplémentaires sont faites sur les utilisations du certificat. Un
certificat de CA
doit avoir le bit
keyCertSign défini si
l'extension
keyUsage est présente.
L'extension de l’utilisation de clé étendue impose des
restrictions supplémentaires sur les utilisations de certificats. Si
cette extension est présente (critique ou non) la clé ne peut
être utilisée aux fins prévues.
Une description complète de chaque contrôle est livrée
ci-dessous. Les commentaires sur
basicConstraints,
KeyUsage et
les certificats V1 ci-dessus s'appliquent à
tous les certificats
de CA.
- SSL Client
- L'extension d'utilisation de clé étendue doit être
absente ou inclure l'OID « web client
authentication ». keyUsage doit être absent ou
doit avoir le bit digitalSignature activé. Le type de
certificat Netscape doit être absent ou il doit avoir le bit SSL
client activé.
- SSL Client CA
- L'extension d'utilisation de clé étendue doit être
absente ou inclure l'OID « web client
authentication ». Le type de certificat Netscape doit
être absent ou doit avoir le bit de SSL CA
activé : cela est utilisé comme un contournement si
l'extension basicConstraints est absente.
- SSL Server
- L'extension d'utilisation de clé étendue doit être
absente ou inclure l'OID « web client
authentication » et/ou l'un des OID SGC. keyUsage
doit être absent ou avoir un des bits digitalSignature,
keyEncipherment activé, ou les deux. Le type de certificat
Netscape doit être absent ou avoir le bit SSL server
activé.
- SSL Server CA
- L'extension d'utilisation de clé étendue doit être
absente ou inclure l'OID « web server
authentication » et/ou l'un des OID SGC. Le type de
certificat Netscape doit être absent ou le bit de SSL CA
doit être activé : il est utilisé comme
contournement si l'extension basicConstraints est absente.
- Netscape SSL Server
- Pour que les clients SSL Netscape puisse se connecter à un serveur
SSL, il doit avoir le bit keyEncipherment activé si
l'extension keyUsage est présente. Ce n'est pas toujours
valable parce que certaines suites de chiffrement utilisent la clé
pour la signature numérique. Sinon, il est identique à un
serveur SSL normal.
- Common S/MIME Client Tests
- L'extension d'utilisation de clé étendue doit être
absente ou inclure l'OID « email protection ».
Le type de certificat Netscape doit être absent ou devrait avoir le
bit S/MIME activé. Si le bit S/MIME n'est pas défini dans le
type de certificat Netscape, le bit SSL client est
toléré comme une alternative, mais un message
d'avertissement apparaît : c'est parce que certains
certificats Verisign ne fixent pas le bit S/MIME.
- S/MIME Signing
- En plus de « common S/MIME client tests », le
bit digitalSignature doit être activé si l'extension
keyUsage est présente.
- S/MIME Encryption
- En plus de « common S/MIME client tests », le
bit keyEncipherment doit être activé si l'extension
keyUsage est présente.
- S/MIME CA
- L'extension d'utilisation de clé étendue doit être
absente ou inclure l'OID « email protection ».
Le type de certificat Netscape doit être absent ou doit avoir le
bit S/MIME CA activé : cela est utilisé comme
contournement si l'extension basicConstraints est absente.
- CRL Signing
- L'extension keyUsage doit être absente ou doit avoir le bit
CRL signing activé.
- CRL Signing CA
- Les contrôles normaux de la CA s'appliquent. Sauf dans ce cas,
l'extension basicConstraints doit être présente.
BOGUES¶
Les extensions dans les certificats ne sont pas transférées
à des demandes de certificats et vice versa.
Il est possible de produire des certificats ou des demandes valides en indiquant
une mauvaise clé privée ou en utilisant des options
incompatibles dans certains cas : cela doit être
vérifié.
Il devrait y avoir des options pour définir explicitement des choses
telles que les dates de début et de fin, plutôt qu'un
décalage par rapport à l'heure actuelle.
Le code pour implémenter le comportement de
verify décrit
dans les
PARAMÈTRES DE CONFIANCE est en cours
d'élaboration. Il décrit ainsi le comportement attendu
plutôt que le comportement actuel. Il est à espérer qu'il
saura représenter la réalité dans OpenSSL 0.9.5 et
plus tard.
VOIR AUSSI¶
req(1)|
req(1)>,
ca(1),
genrsa(1),
gendsa(1),
verify(1),
x509v3_config(5)
HISTORIQUE¶
Avant OpenSSL 0.9.8, l’algorithme de hachage par défaut
pour les clés RSA était MD5
L'algorithme de hachage utilisé dans les options
-subject_hash et
-issuer_hash avant OpenSSL 1.0.0 était basé sur
l'algorithme MD5 obsolète et l'encodage du nom distinctif. Dans
OpenSSL 1.0.0 et plus tard, il est basé sur une version
canonique de DN en utilisant SHA1. Cela signifie que tous les
répertoires utilisant l'ancienne forme doivent avoir leurs liens
reconstruits à l'aide de
c_rehash ou similaire.
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.