Available in

(1) (1)/fr

Contents

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]

DESCRIPTION

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 [AT] 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.

COMMENTS

blog comments powered by Disqus