NOM
ca - Exemple d’application minimale pour une authorité de certification
SYNOPSIS
openssl ca [-verbose] [-config filename] [-name section] [-gencrl]
[-revoke file] [-crl_reason reason] [-crl_hold instruction]
[-crl_compromise time] [-crl_CA_compromise time] [-crldays days]
[-crlhours hours] [-crlexts section] [-startdate date] [-enddate date]
[-days arg] [-md arg] [-policy arg] [-keyfile arg] [-key arg] [-passin
arg] [-cert file] [-selfsign] [-in file] [-out file] [-notext] [-outdir
dir] [-infiles] [-spkac file] [-ss_cert file] [-preserveDN]
[-noemailDN] [-batch] [-msie_hack] [-extensions section] [-extfile
section] [-engine id] [-subj arg] [-utf8] [-multivalue-rdn]
La commande ca est une application CA («Certificate Authority»:
autorité de certification) minimale. Elle peut être utilisée pour
signer des demandes de certificats sous différentes formes et génère
des CRL («Certificate Revocation List»: liste de certificats révoqués).
D’autre part, elle maintient une liste des certificats délivrés et de
leurs statuts.
Les descriptions des options sont divisées par type d’action.
OPTIONS POUR LES AUTORITÉS DE CERTIFICATION
-config nom_fichier
spécifie le nom du fichier de configuration.
-name section
spécifie la section du fichier de configuration à utiliser
(remplace default_ca dans la section ca).
-in nom_fichier
un nom de fichier en entrée contenant une seule demande de
certificat à être signée par la CA.
-ss_cert nom_fichier
un seul certificat auto-signé à être signé par la CA.
-spkac nom_fichier
un fichier contenant une unique clé publique Netscape signée, un
défi (challenge) et des données supplémentaires à être signées par
le CA. Référez-vous à la section SPKAC FORMAT pour des informations
sur le format demandé.
-infiles
si elle est présente, elle doit être la dernière option. Tous les
paramètres suivants sont interprétés comme fichiers contenant des
demandes de certificats.
-out nom_fichier
le fichier de sortie où les certificats seront dirigés. Par défaut
il s’agit de la sortie standard. Les détails des certificats y
seront également précisés.
-outdir répertoire
le répertoire qui contiendra les certificats. Les certificats
seront écrits vers des fichiers nommés par le numéro de série en
hexadécimal portant le suffixe «.pem».
-cert
le fichier de certificat de la CA.
-keyfile nom_fichier
la clé privée avec laquelle signer les requêtes.
-key mot_de_passe
le mot de passe utilisé pour chiffrer la clé privée. Sur certains
systèmes les paramètres de la ligne de commande sont visibles (par
exemple sous Unix avec l’utilitaire «ps») une certaine prudence est
requise pour l’utilisation de cette option.
-selfsign
indicates the issued certificates are to be signed with the key the
certificate requests were signed with (given with -keyfile).
Cerificate requests signed with a different key are ignored. If
-spkac, -ss_cert or -gencrl are given, -selfsign is ignored.
A consequence of using -selfsign is that the self-signed
certificate appears among the entries in the certificate database
(see the configuration option database), and uses the same serial
number counter as all other certificates sign with the self-signed
certificate.
-passin param
la source du mot de passe de la clé. Pour plus d’informations sur
le format de param, référez-vous à la section PARAMÈTRES DE PHRASE
DE PASSE d’openssl(1).
-verbose
ceci affiche des détails supplémentaires sur les opérations
effectuées.
-notext
ne pas inclure la version texte d’un certificat dans le fichier de
sortie.
-startdate date
ceci permet de définir la date de début de validité explicitement.
Le format de date utilisé est AAMMJJHHMMSSZ (comme pour une
structure UTCTime ASN1).
-enddate date
ceci permet de définir la date de fin de validité explicitement. Le
format de date utilisé est AAMMJJHHMMSSZ (comme pour une structure
UTCTime ASN1).
-days param
le nombre de jours pendant lesquels le certificat sera certifié.
-md alg
le type de condensé («digest») de message à utiliser. On trouve
parmi les valeurs possibles: md5, sha1, ou mdc2. Cette option
s’applique aussi aux CRL.
-policy param
cette option définit la «politique» de la CA à utiliser. Il s’agit
d’une section du fichier de configuration spécifiant les champs qui
sont obligatoires ou qui doivent correspondre au certificat de la
CA. Référez-vous à la section FORMAT DES POLITIQUES pour plus
d’informations.
-msie_hack
this is a legacy option to make ca work with very old versions of
the IE certificate enrollment control "certenr3". It used
UniversalStrings for almost everything. Since the old control has
various security bugs its use is strongly discouraged. The newer
control "Xenroll" does not need this option.
-preserveDN
Normally the DN order of a certificate is the same as the order of
the fields in the relevant policy section. When this option is set
the order is the same as the request. This is largely for
compatibility with the older IE enrollment control which would only
accept certificates if their DNs match the order of the request.
This is not needed for Xenroll.
-noemailDN
The DN of a certificate can contain the EMAIL field if present in
the request DN, however it is good policy just having the e-mail
set into the altName extension of the certificate. When this option
is set the EMAIL field is removed from the certificate’ subject and
set only in the, eventually present, extensions. The email_in_dn
keyword can be used in the configuration file to enable this
behaviour.
-batch
ceci active le mode par lot. Aucune question ne sera posée et tous
les certificats seront signés automatiquement.
-extensions section
the section of the configuration file containing certificate
extensions to be added when a certificate is issued (defaults to
x509_extensions unless the -extfile option is used). If no
extension section is present then, a V1 certificate is created. If
the extension section is present (even if it is empty), then a V3
certificate is created.
-extfile file
an additional configuration file to read certificate extensions
from (using the default section unless the -extensions option is
also used).
-engine id
spécifie un moteur (en utilisant son identifiant unique id) qui
indique à req d’essayer d’obtenir une référence fonctionnelle pour
le moteur spécifié, et l’initialiser si nécessaire. Le moteur sera
ensuite utilisé par défaut pour tous les algorithmes disponibles.
-subj param
supersedes subject name given in the request. The arg must be
formatted as /type0=value0/type1=value1/type2=..., characters may
be escaped by \ (backslash), no spaces are skipped.
-utf8
cette option indique que les valeurs des champs doivent être
interprétées comme des chaînes UTF8. Par défaut, elles sont
interprétées comme des chaînes ASCII. Ce la signifie que les
valeurs des champs, qu’elles soient demandée sur le terminal ou
fournies par le fichier de configuration, doivent être des chaînes
UTF8 valables.
-multivalue-rdn
this option causes the -subj argument to be interpretedt with full
support for multivalued RDNs. Example:
/DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe
Si -multi-rdn est utilisée, alors la valeur de l’UID est
123456+CN=John Doe.
OPTIONS POUR LES LISTES DE CERTIFICATS RÉVOQUÉS (CRL)
-gencrl
cette options génère une CRL basée sur l’information trouvée dans
le fichier d’index.
-crldays num
le nombre de jours avant passage à la CRL suivante. Ce nombre de
jours, qui est décompté à partir de la date d’exécution, permet de
définir la date à placer dans le champ nextUpdate de la CRL.
-crlhours n
le nombre d’heures avant passage à la CRL suivante.
-revoke nom_fichier
le nom du fichier contenant un certificat à retirer.
-crl_reason raison
la raison du retrait, où la raison vaut: unspecified («non
précisée»), keyCompromise («clé compromise»), CACompromise («CA
compromise»), affiliationChanged («changement d’affiliation»),
superseded («remplacé»), cessationOfOperation («cessation
d’activité»), certificateHold («certificat suspendu») ou
removeFromCRL («retiré de la CRL»). La casse de la raison n’a pas
besoin de correspondre. L’ajout d’une raison au retrait forcera
l’utilisation d’une CRL v2.
En pratique, removeFromCRL n’est pas particulièrement utile parce
qu’elle n’est utilisée que pour les CRL «delta», qui ne sont pas
implémentées pour l’instant.
-crl_hold instruction
This sets the CRL revocation reason code to certificateHold and the
hold instruction to instruction which must be an OID. Although any
OID can be used only holdInstructionNone (the use of which is
discouraged by RFC2459) holdInstructionCallIssuer or
holdInstructionReject will normally be used.
-crl_compromise moment
This sets the revocation reason to keyCompromise and the compromise
time to time. time should be in GeneralizedTime format that is
YYYYMMDDHHMMSSZ.
-crl_CA_compromise moment
Il s’agit de la même chose que crl_compromise, mais la raison de la
révocation est mise à CACompromise.
-crlexts section
la section du fichier de configuration contenant des extensions CRL
à inclure. Si aucune section d’extension CRL n’est présente, une
CRL V1 est créée, sinon une CRL V2 sera créée, même si la section
en question est vide. Les extensions CRL spécifiées sont des
extensions CRL et non des extensions d’entrée CRL. Remarquons que
certains logiciels (par exemple Netscape) ne gèrent pas les CRL V2.
OPTIONS DU FICHIER DE CONFIGURATION
La section du fichier de configuration contenant des options pour ca
est trouvée de la façon suivante : si l’option de ligne de commande
-name est utilisée, elle précise le nom de la section à utiliser.
Autrement, la section qui sera utilisée est celle mentionnée l’option
default_ca de la section ca du fichier de configuration (ou dans la
section par défaut du fichier de configuration). À part default_ca, les
options suivantes sont lues directement dans la section ca:
RANDFILE
preserve
msie_hack À l’exception de RANDFILE, ceci est probablement un bogue et
risque d’être modifié dans les versions futures. De nombreuses options
du fichier de configuration sont identiques à celles de la ligne de
commande. Si une option est présente à la fois dans le fichier de
configuration et sur la ligne de commande, la valeur de la ligne de
commande est prise en compte. Une option décrite comme obligatoire doit
être présente soit dans le fichier de configuration soit sur la ligne
de commande (si c’est possible).
oid_file
Ceci spécifie le fichier contenant des IDENTIFIANTS D’OBJET)
supplémentaires. Chaque ligne consiste en la forme numérique de
l’identifiant d’objet suivi par des espaces puis le libellé court
suivi à son tour par des espaces et finalement le libellé long.
oid_section
Ceci spécifie 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.
new_certs_dir
identique à l’option de ligne de commande -outdir. On spécifie le
répertoire où les nouveaux certificats seront placés. Obligatoire.
certificate
identique à -cert. Elle spécifie le fichier contenant le certificat
de la CA. Obligatoire.
private_key
identique à l’option -keyfile. Le fichier contenant la clé privée
de la CA. Obligatoire.
RANDFILE
a file used to read and write random number seed information, or an
EGD socket (see RAND_egd(3)).
default_days
identique à l’option -days. Le nombre de jours qu’un certificat
sera certifié.
default_startdate
identique à l’option -startdate. La date de début de validité du
certificat. Si cette option est absente, la date actuelle sera
utilisée.
default_enddate
identique à l’option -enddate. Soit cette option, soit default_days
(où les équivalents en mode ligne de commande) doivent être
présent.
default_crl_hours default_crl_days
identiques aux options -crlhours et -crldays. Uniquement utilisées
si aucune des options n’est présente sur la ligne de commande. Au
moins une de ces options doit être spécifiée pour générer une CRL.
default_md
identique à l’option -md. La type de condensé de message à
utiliser. Obligatoire.
database
le fichier texte (base de données) à utiliser. Obligatoire. Ce
fichier doit être présent même s’il est initialement vide.
unique_subject
if the value yes is given, the valid certificate entries in the
database must have unique subjects. if the value no is given,
several valid certificate entries may have the exact same subject.
The default value is yes, to be compatible with older (pre 0.9.8)
versions of OpenSSL. However, to make CA certificate roll-over
easier, it’s recommended to use the value no, especially if
combined with the -selfsign command line option.
serial
a text file containing the next serial number to use in hex.
Mandatory. This file must be present and contain a valid serial
number.
crlnumber
a text file containing the next CRL number to use in hex. The crl
number will be inserted in the CRLs only if this file exists. If
this file is present, it must contain a valid CRL number.
x509_extensions
identique à -extensions.
crl_extensions
identique à -crlexts.
preserve
identique à -preserveDN.
email_in_dn
the same as -noemailDN. If you want the EMAIL field to be removed
from the DN of the certificate simply set this to ’no’. If not
present the default is to allow for the EMAIL filed in the
certificate’s DN.
msie_hack
identique à -msie_hack.
policy
identique à -policy. Obligatoire. Référez-vous à la section FORMAT
DES POLITIQUES pour plus d’information.
name_opt, cert_opt
these options allow the format used to display the certificate
details when asking the user to confirm signing. All the options
supported by the x509 utilities -nameopt and -certopt switches can
be used here, except the no_signame and no_sigdump are permanently
set and cannot be disabled (this is because the certificate
signature cannot be displayed because the certificate has not been
signed at this point).
For convenience the values ca_default are accepted by both to
produce a reasonable output.
If neither option is present the format used in earlier versions of
OpenSSL is used. Use of the old format is strongly discouraged
because it only displays fields mentioned in the policy section,
mishandles multicharacter string types and does not display
extensions.
copy_extensions
determines how extensions in certificate requests should be
handled. If set to none or this option is not present then
extensions are ignored and not copied to the certificate. If set to
copy then any extensions present in the request that are not
already present are copied to the certificate. If set to copyall
then all extensions in the request are copied to the certificate:
if the extension is already present in the certificate it is
deleted first. See the WARNINGS section before using this option.
The main use of this option is to allow a certificate request to
supply values for certain extensions such as subjectAltName.
FORMAT DES POLITIQUES
La section policy consiste en un jeu de variables correspondants aux
champs DN du certificat. Si la valeur est «match», la valeur du champ
doit être identique au champ du même nom du certificat de la CA. Si la
valeur est «supplied», il doit être présent. Si la valeur est
«optional», sa présence n’est pas obligatoire. Tout champ ne figurant
pas dans la section policy est supprimé à moins que l’option
-preserveDN ne soit activée, mais c’est plus une bizarrerie qu’un
comportement attendu.
FORMAT SPKAC
L’entrée fournit à la ligne de commande -spkac est une clé publique
signée Netscape et un défi. Ceci provient habituellement d’une balise
KEYGEN dans un formulaire HTML pour créer une nouvelle clé privée. Il
est toutefois possible de créer des SPKAC en utilisant l’utilitaire
spkac.
Le fichier devrait contenir la variable SPKAC avec la valeur de la clef
SPARK ainsi que les éléments DN sous forme de paires nom-valeurs. Si
besoin est d’inclure le même élément plusieurs fois, il est possible de
le faire précéder par un nombre et un «.».
EXEMPLES
Note: ces exemples supposent que l’arborescence ca est déjà en place et
que les fichiers liés existent. Ceci nécessite généralement la création
d’un certificat et d’une clé privée pour la CA avec req, un fichier de
numéro de série et un fichier d’index vide. Tous ces fichiers doivent
être placés dans les répertoires correspondants.
Afin d’utiliser le fichier de configuration type ci-dessous, il faut
créer les répertoires demoCA, demoCA/private et demoCA/newcerts. Le
certificat de la CA doit être copié dans demoCA/cacert.pem et sa clé
privée dans demoCA/private/cakey.pem. Un fichier demoCA/serial doit
être créé contenant par exemple «01» et un fichier d’index vide doit
être créé dans demoCA/index.txt.
Signer une demande de certificat:
openssl ca -in req.pem -out newcert.pem
Signer une demande de certificat utilisant des extensions CA:
openssl ca -in req.pem -extensions v3_ca -out newcert.pem
Générer une CRL
openssl ca -gencrl -out crl.pem
Signer plusieurs demandes:
openssl ca -infiles req1.pem req2.pem req3.pem
Certifier un SPKAC Netscape:
openssl ca -spkac spkac.txt
Un fichier SPKAC type (lignes tronquées pour la lisibilité):
SPKAC=MIG0MGAwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAn7PDhCeV/xIxUg8V70YRxK2A5
CN=Steve Test
emailAddress=steve@openssl.org
0.OU=OpenSSL Group
1.OU=Another Group
Un fichier de configuration type avec les sections pour ca:
[ ca ]
default_ca = CA_default # The default ca section
[ CA_default ]
dir = ./demoCA # top dir
database = $dir/index.txt # index file.
new_certs_dir = $dir/newcerts # new certs dir
certificate = $dir/cacert.pem # The CA cert
serial = $dir/serial # serial no file
private_key = $dir/private/cakey.pem# CA private key
RANDFILE = $dir/private/.rand # random number file
default_days = 365 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = md5 # md to use
policy = policy_any # default policy
email_in_dn = no # Don't add the email into cert DN
name_opt = ca_default # Subject name display option
cert_opt = ca_default # Certificate display option
copy_extensions = none # Don't copy extensions from request
[ policy_any ]
countryName = supplied
stateOrProvinceName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
FICHIERS
Note: l’emplacement de tous les fichiers peut changer en fonction des
options de compilation, des entrées dans le fichier de configuration,
des variables d’environnement ou des options de la ligne de commande.
Les valeurs ci-dessous sont les valeurs par défaut.
/usr/local/ssl/lib/openssl.cnf - fichier de configuration maître
./demoCA - répertoire principal de la CA
./demoCA/cacert.pem - certificat de la CA
./demoCA/private/cakey.pem - clé privée de la CA
./demoCA/serial - fichier des numéros de série de la CA
./demoCA/serial.old - sauvegarde de ./demoCA/serial
./demoCA/index.txt - base de données au format texte de la CA
./demoCA/index.txt.old - sauvegarde de ./demoCA/index.txt
./demoCA/certs - fichier de sortie du certificat
./demoCA/.rnd - graine pour l'aléa de la CA
VARIABLES D’ENVIRONNEMENT
OPENSSL_CONF contient l’emplacement du fichier de configuration
principal qui peut être modifié avec l’option en ligne de commande
-config.
RESTRICTIONS
Le fichier d’index est une partie cruciale du processus et toute
corruption peut s’avérer difficile à rattraper. Bien qu’il soit
possible théoriquement de reconstruire l’index à partir des certificats
délivrés et d’une CRL récente, aucune option ne permet de faire cela.
Les fonctionnalités des CRL V2 telles que le support des delta CRL ne
sont pas gérées actuellement.
Même s’il est possible d’entrer et de traiter plusieurs demandes en
même temps, il est impossible d’inclure plus d’un SPKAC ou certificat
auto-signé.
BOGUES
L’utilisation d’une base de données texte en mémoire peut s’avérer
problématique, en particulier avec un nombre important de certificats à
gérer, justement du fait que cette base se trouve en mémoire.
La commande ca a réellement besoin d’être réécrite ou les
fonctionnalités nécessaires devraient être fournie par une commande ou
interface pour permettre à des utilitaires plus orientés utilisateurs
(scripts perl ou GUI) de traiter les choses correctement. Les scripts
CA.sh et CA.pl aident un petit peu en ce sens.
Any fields in a request that are not present in a policy are silently
deleted. This does not happen if the -preserveDN option is used. To
enforce the absence of the EMAIL field within the DN, as suggested by
RFCs, regardless the contents of the request’ subject the -noemailDN
option can be used. The behaviour should be more friendly and
configurable.
L’annulation de certaines commandes en refusant de certifier un
certificat peut résulter en un fichier vide.
AVERTISSEMENTS
La commande ca est capricieuse et parfois pas très confortable
d’utilisation.
La commende ca a eu pour objectif initial d’être un exemple montrant
comment se servir d’une CA. Il n’a pas été créé pour servir
d’application pour un CA complète, cependant certaines personnes s’en
servent dans ce but.
La commande ca est effectivement une commande mono-utilisateur, aucun
verrouillage n’est fait sur les divers fichiers, et des tentatives
d’accès simultanées à un même fichier d’index peuvent produire des
résultats imprévisibles.
The copy_extensions option should be used with caution. If care is not
taken then it can be a security risk. For example if a certificate
request contains a basicConstraints extension with CA:TRUE and the
copy_extensions value is set to copyall and the user does not spot this
when the certificate is displayed then this will hand the requestor a
valid CA certificate.
This situation can be avoided by setting copy_extensions to copy and
including basicConstraints with CA:FALSE in the configuration file.
Then if the request contains a basicConstraints extension it will be
ignored.
It is advisable to also include values for other extensions such as
keyUsage to prevent a request supplying its own values.
Additional restrictions can be placed on the CA certificate itself.
For example if the CA certificate has:
basicConstraints = CA:TRUE, pathlen:0
then even if a certificate is issued with CA:TRUE it will not be valid.
VOIR AUSSI
req(1), spkac(1), x509(1), CA.pl(1), config(5)
TRADUCTION
Cette page de manuel a été traduite par stolck 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.