Scroll to navigation

PKCS12(1SSL) OpenSSL PKCS12(1SSL)

NOM

pkcs12 - Utilitaire pour les fichiers PKCS#12

SYNOPSIS

openssl pkcs12 [-export] [-chain] [-inkey nom_fichier] [ -certfile nom_fichier] [-name nom] [ -caname nom] [-in nom_fichier] [-out nom_fichier] [-noout] [-nomacver] [ -nocerts] [ -clcerts] [-cacerts] [-nokeys] [-info] [ -des | -des3 | -idea | -aes128 | -aes192 | -aes256 | -camellia128 | -camellia192 | -camellia256 | -nodes] [-noiter] [ -maciter|-nomaciter| -nomac] [-twopass] [-descert] [ -certpbe alg] [-keypbe alg] [-macalg sign] [-keyex] [ -keysig] [-password param] [-passin param] [-passout param] [-rand fichier(s)] [-CAfile fichier] [ -CApath rép] [-CSP nom]

DESCRIPTION

La commande pkcs12 permet la création et l'interprétation de fichiers PKCS#12 (parfois également appelés PFX). Les fichiers PKCS#12 sont utilisés par plusieurs programmes, entre autres Netscape, MSIE et MS Outlook.

OPTIONS DE LA COMMANDE

Il y a de nombreuses options dont certaines diffèrent selon que l'on génère ou interprète un fichier PKCS#12. L'opération par défaut est l'interprétation de fichier PKCS#12. Pour la création d'un fichier PKCS#12, il faut utiliser l'option -export (voir ci-dessous).

OPTIONS D'INTERPRÉTATION

-in nom_fichier
Indique le nom du fichier PKCS#12 à interpréter. Par défaut, l'entrée standard est lue.
-out nom_fichier
Le nom de fichier où seront écrits les certificats et les clefs privées. Par défaut ce sera la sortie standard. Ils sont tous écrits au format PEM.
-passin param
Le fichier PKCS#12 source des mots de passe (c'est-à-dire le fichier d'entrée). Pour plus d'informations sur le format de param, voir la section PHRASE SECRÈTE EN PARAMÈTRE d' openssl(1).
-passout param
La source de la phrase secrète à utiliser pour le chiffrement des clefs privées sorties. Pour plus de renseignements sur le format de param, consultez la section PHRASE SECRÈTE EN PARAMÈTRE d' openssl(1).
-password param
Avec -export, -password est équivalent à -passout. Sinon, -password est équivalent à -passin.
-noout
Cette option empêche l'ajout des clefs et des certificats vers la version de sortie du fichier PKCS#12.
-clcerts
Sortie uniquement des certificats clients (et non des certificats CA).
-cacerts
Sortie uniquement des certificats CA (et non des certificats clients).
-nocerts
Aucun certificat ne sera sorti.
-nokeys
Aucune clef privée ne sera sortie.
-info
Sortie d'informations supplémentaires sur la structure du fichier PKCS#12, sur les algorithmes employés et sur les nombres d'itérations.
-des
Utilisation du chiffrement DES pour les clefs privées avant la sortie.
-des3
Utilisation du chiffrement triple DES pour les clefs privées avant la sortie, c'est l'algorithme utilisé par défaut.
-idea
Utilisation du chiffrement IDEA pour les clefs privées avant la sortie.
-aes128, -aes192, -aes256
Utilisation du chiffrement AES pour les clefs privées avant la sortie.
-camellia128, -camellia192, -camellia256
Utilisation du chiffrement Camellia pour les clefs privées avant la sortie.
-nodes
Ne pas chiffrer les clefs privées du tout.
-nomacver
Ne pas vérifier l'intégrité MAC avant la lecture du fichier.
-twopass
Demander des mots de passe distincts pour l'intégrité et le chiffrement ; la plupart des logiciels supposent toujours l'égalité, ainsi cette option rendra le fichier PKCS#12 illisible pour ces logiciels.

OPTIONS DE CRÉATION DE FICHIER

-export
Cette option indique qu'un fichier PKCS#12 sera généré plutôt qu'analysé.
-out nom_fichier
Indique le nom du fichier PKCS#12 de sortie. La sortie standard est utilisée par défaut.
-in nom_fichier
Le nom de fichier à partir duquel les certificats et les clefs privées sont lues. Par défaut, ce sera l'entrée standard. Ils doivent tous être au format PEM. L'ordre n'est pas important, mais une clef privée et le certificat correspondant devraient être présents. Si des certificats supplémentaires sont présents, ils seront également inclus dans le fichier PKCS#12.
-inkey nom_fichier
Le fichier à partir duquel sera lue la clef privée. Si cette option n'est pas présente, la clef doit faire partie du fichier d'entrée.
-name nom
Indique le nom convivial du certificat et de la clef privée. Ce nom est typiquement affiché dans les contrôles de liste par les logiciels qui utilisent ce fichier.
-certfile nom_fichier
Un nom de fichier à partir duquel des certificats supplémentaires seront lus.
-caname nom
Indique le nom convivial pour d'autres certificats. Cette option peut être utilisée plusieurs fois et correspondre alors aux certificats dans l'ordre d'apparition. Netscape ignore les noms conviviaux des autres certificats alors que MSIE les affiche.
-pass param, -passout param
Le fichier PKCS#12 source des mots de passe (c'est-à-dire le fichier d'entrée). Pour plus d'informations sur le format de param, voir la section PHRASE SECRÈTE EN PARAMÈTRE d' openssl(1).
-passin param
La source de la phrase secrète à utiliser pour l'encodage des clefs privées de sortie. Pour plus d'informations sur le format de param, consultez la section PHRASE SECRÈTE EN PARAMÈTRE d' openssl(1).
-chain
Avec cette option, le programme tente d'inclure toute la chaîne de certification dans le certificat utilisateur. Le répertoire standard CA est utilisé pour cette recherche. Un échec de cette recherche est considérée comme une erreur fatale.
-descert
Chiffrer le certificat avec DES, cela peut rendre le certificat inutilisable avec certains logiciels autorisés à l'exportation (« export grade », utilisation d'un chiffrement faible). Par défaut, la clef privée est chiffrée en triple DES et le certificat en utilisant un RC2 à 40 bits.
-keypbe alg, -certpbe alg
Ces options permettent le choix de l'algorithme de chiffrement pour la clef privée et les certificats. Tous les noms d'algorithme PKCS#5 v1.5 ou PKCS#12 PBE peuvent être utilisés (consultez la section NOTES pour obtenir plus de renseignements). Si un nom d'algorithme (comme ceux affichés par la commande list-cipher-algorithms) est indiqué, alors il est utilisé avec PKCS#5 v2.0. Pour des raisons d'interopérabilité, il est conseillé de n'utiliser que les algorithmes PKCS#12.
-keyex|-keysig
Indique que la clef privée est utilisée uniquement pour l'échange de clef ou la signature. Cette option est uniquement interprétée par MSIE et des produits similaires MS. Normalement, des logiciels « export grade » permettent seulement l'échange de clefs RSA à 512 bits pour le chiffrement, et une clef de longueur arbitraire pour la signature. L'option -keysig marque la clef pour une utilisation exclusivement pour des signatures. Une telle clef peut alors être utilisée pour la signature S/MIME, authenticode (signature par contrôles ActiveX) et l'identification de clients SSL, toutefois, uniquement MSIE 5.0 et supérieur supportent l'utilisation de clefs de signature pour l'identification de clients SSL.
-macalg sign
Indiquer l'algorithme de signature MAC. Sans précision, SHA1 sera utilisé.
-nomaciter, -noiter
Ces options déterminent le nombre d'itérations pour les algorithmes MAC et certains algorithmes de clefs. À moins de vouloir produire des fichiers compatibles avec MSIE 4.0, ces options peuvent être omises.
 
Pour décourager des attaques utilisant des dictionnaires importants de mot de passe communs, l'algorithme dérivant les clefs des mots de passe peut se voir appliqué un nombre d'itérations : cela a pour effet de répéter une certaine partie de l'algorithme et ralentit l'opération. Le MAC est employé pour s'assurer l'intégrité du fichier, mais comme il aura normalement le même mot de passe que les clefs et les certificats, il peut aussi se voir attaqué. Par défaut, le nombre d'itérations du MAC et du chiffrement sont de 2048, en utilisant ces options, le nombre d'itérations MAC et du chiffrement peuvent être mises à 1. Comme cela réduit la sécurité des informations, elles ne devraient être utilisées qu'en cas de nécessité. La plupart des logiciels acceptent un nombre arbitraire d'itérations et pour MAC et pour l'encodage. MSIE 4.0 ne le prend pas en charge pas pour MAC et nécessite alors l'option -nomaciter.
-maciter
Cette option est incluse pour assurer la compatibilité avec d'anciennes versions pour forcer le nombre d'itérations pour MAC. C'est actuellement le comportement par défaut.
-nomac
Ne pas essayer de fournir l'intégrité MAC.
-rand fichier(s)
Un ou plusieurs fichiers contenant des données aléatoires utilisées pour initialiser le générateur de nombres pseudoaléatoires, ou une socket EGD (consultez RAND_egd(3)). Plusieurs fichiers peuvent être indiqués en les séparant par le séparateur du système d'exploitation : «  ; » pour Windows, «  , » pour OpenVMS et « : » pour tous les autres.
-CAfile fichier
Stockage d'autorité de certification en tant que fichier.
-CApath rép
Stockage d'autorité de certification en tant que répertoire. Ce répertoire doit être un répertoire de certificats standard : c'est-à-dire avec des liens correspondant aux hachages des noms d'objet (obtenu par x509 -hash) pointant vers chaque certificat.
-CSP nom
Écrire un nom comme un nom CSP Microsoft

NOTES

Malgré le nombre important d'options, la plupart de celles-ci ne sont utilisées que très rarement. Pour l'interprétation de fichiers PKCS#12, seules -in et -out sont nécessaires, pour la création, -export et -name sont utilisées également.
Si aucune des options -clcerts, -cacerts ou -nocerts n'est présente, alors tous les certificats seront générés dans l'ordre d'apparence dans les fichiers source PKCS#12. De plus, il n'y a aucune garantie que le premier certificat trouvé est celui correspondant à la clef privée. Certains logiciels nécessitant une clef privée supposent que le premier certificat du fichier correspond à la clef privée : cela n'est pas forcément toujours le cas. En utilisant l'option l'option -clcerts le problème est résolu en incluant uniquement le certificat correspondant à la clef privée. Si besoin est, les certificats CA peuvent être générés à part avec les options -nokeys -cacerts.
Les options -keypbe et -certpbe permettent de préciser l'algorithme de chiffrement pour la clef privée et pour les certificats. Normalement, les valeurs par défauts devraient convenir, mais certains logiciels ne gèrent pas les clefs privées encodées avec triple DES, alors l'option -keypbe PBE-SHA1-RC2-40 réduit le chiffrement de la clef privée à un RC2 de 40 bits. Une description complète de tous les algorithmes est contenue dans la page de manuel de pkcs8.

EXEMPLES

Interprétation d'un fichier PKCS#12 et sortie vers un fichier :
 openssl pkcs12 -in fichier.p12 -out fichier.pem
Sortie des certificats clients uniquement :
 openssl pkcs12 -in fichier.p12 -clcerts -out fichier.pem
Ne pas chiffrer la clef privée :
 openssl pkcs12 -in fichier.p12 -out fichier.pem -nodes
Afficher les informations sur un fichier PKCS#12 :
 openssl pkcs12 -in fichier.p12 -info -noout
Créer un fichier PKCS#12 :
 openssl pkcs12 -export -in fichier.pem -out fichier.p12  \
  -name "Mon certificat"
Inclure des certificats supplémentaires :
 openssl pkcs12 -export -in fichier.pem -out fichier.p12 \
  -name "Mon certificat" -certfile autres_cert.pem

BOGUES

Certains disent que toute la norme PKCS#12 n'est qu'un gros bogue.
Les versions d'OpenSSL avant 0.9.6a avaient un bogue dans les routines de génération de clef PKCS#12. Sous certaines circonstances rares, cela pouvait conduire à un fichier PKCS#12 chiffré avec une clef non valable. Ainsi certains fichiers PKCS#12 d'autres implémentations (MSIE ou Netscape) qui déclenchaient ce bogue ne pouvaient pas être déchiffrés par OpenSSL et inversement OpenSSL produisait des fichiers non déchiffrables par d'autres implémentations. La probabilité de produire un tel fichier est relativement faible : inférieure à 1 sur 256.
Une conséquence de la correction de ce bogue est que de tels fichiers PKCS#12 ne peuvent être interprétés avec une version corrigée. L'utilitaire pkcs12 signale alors que le MAC est valable, mais le déchiffrement des clefs privées extraites est voué à l'échec.
Ce problème peut être contourné en extrayant les clefs privées et les certificats avec une version ancienne d'OpenSSL puis en recréant le fichier PKCS#12 avec une version plus récente à partir des clefs et des certificats. Par exemple :
 old-openssl -in mauvais.p12 -out cert_clef.pem
 openssl -in cert_clef.pem -export -name "Mon fichier PKCS#12" \
  -out corrige.p12

VOIR AUSSI

pkcs8(1)

TRADUCTION

Cette page de manuel a été traduite par Eltrai 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.
2013-02-26 1.0.1e