zion - pkcs12
.rn '' }` ''' $RCSfile$$Revision$$Date$ ''' ''' $Log$ ''' .de Sh .if t .Sp .ne 5
$1
.. .de Sp .if t .5v .if n .. .de Ip .ie
(.$>=3 .ne $3 .el .ne 3
[/col][/row][/table]
.UC .if n .hy 0 .if n .na .ds C+ Cv'-.1v'h'-1p's-2+h'-1p'+s0v'.1v'h'-1p' .de CQ " put $1 in typewriter font .ft CW 'if n "c 'if t &$1c 'if n &$1c 'if n &" &$2 $3 $4 $5 $6 $7 '.ft R .. . " AM - accent mark definitions .bd B 3 . " fudge factors for nroff and troff .if n { . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ f1 . ds #] .if t { . ds #H ((1u-(\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ & . ds #] & . " simple accents for nroff and troff .if n { . ds ' & . ds ` & . ds ^ & . ds , & . ds ~ ~ . ds ? ? . ds ! ! . ds / . ds q .if t { . ds ' k:h'-(
(.wu*8/10-*(#H)''h"|
:u" . ds ` k:h'-(
(.wu*8/10-*(#H)'`h'|
:u' . ds ^ k:h'-(
(.wu*10/11-*(#H)'^h'|
:u' . ds , k:h'-(
(.wu*8/10)',h'|
:u' . ds ~ k:h'-(
(.wu-*(#H-.1m)'~h'|
:u' . ds ? s-2ch'-w'c'u*7/10'uh'*(#H'zids+2h'w'c'u*8/10' . ds ! s-2(ors+2h'-w'(or'u'v'-.8m'.v'.8m' . ds / k:h'-(
(.wu*8/10-*(#H)'z(slh'|
:u' . ds q oh'-w'o'u*8/10's-4v'.4m'z(*iv'-.4m's+4h'w'o'u*8/10' . " troff and (daisy-wheel) nroff accents .ds : k:h'-(
(.wu*8/10-*(#H+.1m+*(#F)'v'-*(#V'z.h'.2m+*(#F'.h'|
:u'v'*(#V' .ds 8 h'*(#H'(*bh'-*(#H' .ds v k:h'-(
(.wu*9/10-*(#H)'v'-*(#V'*(#[s-4vs0v'*(#V'h'|
:u'*(#] .ds _ k:h'-(
(.wu*9/10-*(#H+(*(#F*2/3))'v'-.4m'z(hyv'.4m'h'|
:u' .ds . k:h'-(
(.wu*8/10)'v'*(#V*4/10'z.v'-*(#V*4/10'h'|
:u' .ds 3 *(#[v'.2m's-2&3s0v'-.2m'*(#] .ds o k:h'-(
(.wu+w'(de'u-*(#H)/2u'v'-.3n'*(#[z(dev'.3n'h'|
:u'*(#] .ds d- h'*(#H'(pdh'-w'~'u'v'-.25m'f2(hyv'.25m'h'-*(#H' .ds D- Dk:h'-w'D'u'v'-.11m'z(hyv'.11m'h'|
:u' .ds th *(#[v'.3m's+1Is-1v'-.3m'h'-(w'I'u*2/3)'s-1os+1*(#] .ds Th *(#[s+2Is-2h'-w'I'u*3/5'v'-.3m'ov'.3m'*(#] .ds ae ah'-(w'a'u*4/10)'e .ds Ae Ah'-(w'A'u*4/10)'E .ds oe oh'-(w'o'u*4/10)'e .ds Oe Oh'-(w'O'u*4/10)'E . " corrections for vroff .if v .ds ~ k:h'-(
(.wu*9/10-*(#H)'s-2u~ds+2h'|
:u' .if v .ds ^ k:h'-(
(.wu*10/11-*(#H)'v'-.4m'^v'.4m'h'|
:u' . " for low resolution devices (crt and lpr) .if n(.H>23 .if n(.V>19 { . ds : e . ds 8 ss . ds v h'-1'o'(aa(ga' . ds _ h'-1'^ . ds . h'-1'. . ds 3 3 . ds o a . ds d- dh'-1'(ga . ds D- Dh'-1'(hy . ds th o'bp' . ds Th o'LP' . ds ae ae . ds Ae AE . ds oe oe . ds Oe OE .rm #[ #] #H #V #F C
Nom
pkcs12 - Utilitaire pour fichiers PKCS#12
Résumé
openssl pkcs12 [-export] [-chain] [-inkey nomfichier] [-certfile nomfichier] [-name nom] [-caname nom] [-in nomfichier] [-out nomfichier] [-noout] [-nomacver] [-nocerts] [-clcerts] [-cacerts] [-nokeys] [-info] [-des] [-des3] [-idea] [-nodes] [-noiter] [-maciter] [-twopass] [-descert] [-certpbe] [-keypbe] [-keyex] [-keysig] [-password arg] [-passin arg] [-passout arg] [-rand fichier(s)]
Description
La commande pkcs12 permet la création et l'interprétation de fichiers PKCS#12 (parfois également appellés PFX). Les fichiers PKCS#12 sont utilisés par plusieurs programmes, entre autres Netscape, MSIE et MS Outlook.
Options
Il y a de nombreuses options dont certaines diffèrent selon que l'on génère ou interprète un fichier. L'opération par défaut est l'interprétation, pour la création d'un fichier PKCS#12, on emploie l'option -export.
Options
"-in nomfichier" 4
Ceci spécifie le nom du fichier s-1PKCSs0#12 à être interprété. Par défaut, on lit à l'entrée standard. |
"-out nomfichier" 4
Le nom de fichier où seront écrits les certificats et les clés privées, par défaut la sortie standard. Ils sont tous écrits au format s-1PEMs0. |
"-pass arg, -passin arg" 4
Le fichier s-1PKCSs0#12 source des mots de passe (c.-à -d. le fichier d'entrée). Pour plus d'informations sur le format de l'arg, voir la section s-1PASSs0 s-1PHRASEs0 s-1ARGUMENTSs0 d'openssl(1). |
"-passout arg" 4
La source de mot de passe à utiliser pour l'encodage les clés privées de sortie. Pour plus d'informations sur le format de l'arg, voir la section s-1PASSs0 s-1PHRASEs0 s-1ARGUMENTSs0 d'openssl(1). |
"-noout" 4
Cette option empêche l'ajout des clés et des certificats vers la version de sortie du fichier s-1PKCSs0#12. |
"-clcerts" 4
Sortie uniquement des certificats clients (et non des certificats s-1CAs0). |
"-cacerts" 4
Sortie uniquement des certificats s-1CAs0 (et non des certificats clients). |
"-nocerts" 4
Aucun certificat ne sera sorti. |
"-nokeys" 4
Aucune clé privée ne sera sortie. |
"-info" 4
Sortie d'informations supplémentaires sur la structure du fichier s-1PKCSs0#12, sur les agorithmes employés et sur les compteurs d'itérations. |
"-des" 4
Utilisation de l'encodage s-1DESs0 pour les clés privées avant la sortie. |
"-des3" 4
Utilisation de l'encodage triple-s-1DESs0 pour les clés privées avant la sortie. Ceci est pris par défaut. |
"-idea" 4
Utilisation de l'encodage s-1IDEAs0 pour les clés privées avant la sortie. |
"-nodes" 4
Ne pas encoder les clés privées du tout. |
"-nomacver" 4
Ne pas vérifier l'intégrité s-1MACs0 avant la lecture du fichier. |
"-twopass" 4
Demande des mots de passe distincts pour l'intégrité et l'encodage ; la plupart des logiciels supposent toujours l'égalité, ainsi cette option rendra le fichier s-1PKCSs0#12 illisible. |
Options
"-export" 4
Cette option spécifie qu'un fichier s-1PKCSs0#12 sera généré plutôt que lu. |
"-out nomfichier" 4
Ceci spécifie le nom du fichier s-1PKCSs0#12 de sortie. La sortie standard est utilisée par défaut. |
"-in nomfichier" 4
Le nom de fichier à partir duquel les certificats et les clés privées sont lues, l'entrée standard par défaut. Ils doivent tous être au format s-1PEMs0. L'ordre n'est pas important, mais une clé privée et un certificat correspondant devrait être présent. Si des certificats supplémentaires sont présent, ils seront également inclus dans le fichier s-1PKCSs0#12. |
"-inkey nomfichier" 4
Le fichier à partir duquel sera lue la clé privée. Si cette option n'est pas présente, la clé doit faire partie du fichier d'entrée. |
"-name friendlyname" 4
Ceci spécifie le *(L"friendly name*(R" (nom amical) du certificat et de la clé privée. Ce nom est typiquement affiché dans les contrôles de liste par les logiciels qui utilisent ce fichier. |
"-certfile nomfichier" 4
Un nom de fichier à partir duquel des certificats supplémentaires seront lus. |
"-caname friendlyname" 4
Ceci spécifie le *(L"friendly name*(R" pour d'autres certificats. Cette option peut paraître plusieurs fois et correspondre alors aux certificats dans l'ordre d'apparition. Netscape ignore les noms amicaux des autres certificats alors que MSIE les affiche. |
"-pass arg, -passout arg" 4
Le fichier s-1PKCSs0#12 source des mots de passe (c.-à -d. le fichier d'entrée). Pour plus d'informations sur le format de l'arg, voir la section s-1ARGUMENTSs0 s-1DEs0 s-1MOTs0 s-1DEs0 s-1PASSEs0 d'openssl(1). |
"-passout arg" 4
La source de mot de passe à utiliser pour l'encodage des clés privées de sortie. Pour plus d'informations sur le format de l'arg, voir la section s-1ARGUMENTSs0 s-1DEs0 s-1MOTs0 s-1DEs0 s-1PASSEs0 d'openssl(1). |
"-chain" 4
Avec cette option, le programme tente d'inclure toute la chaîne de certificats dans le certificat utilisateur. Le répertoire standard s-1CAs0 est utilisé pour cette recherche. Un échec de cette recherche est considérée comme erreur fatale. |
"-descert" 4
Encodage du certificat avec s-1DESs0, ceci peut rendre le certificat inutilisable avec certains logiciels *(L"export grade*(R". Par défaut, la clé privée est encodée avec triple s-1DESs0 et le certificat en utilisant un s-1RC2s0 à 40 bits. |
"-keypbe alg, -certpbe alg" 4
Ces options permettent le choix de l'algorithme d'encodage pour la clé privée et les certificats. Même si tous les algorithmes s-1PKCSs0#5 v1.5 ou s-1PKCSs0#12 sont pris en compte, il est conseillé d'utiliser uniquement s-1PKCSs0#12. Référez-vous à la liste dans la section s-1NOTESs0 pour plus de détails. |
"-keyex|-keysig" 4
Spécifie que la clé privée est utilisée uniquement pour l'échange de clé ou la signature. Cette option est uniquement interprétée par s-1MSIEs0 et des produits similaires s-1MSs0. Normalement, des logiciels *(L"export grade*(R" permettent seulement l'échange de clés s-1RSAs0 à 512 bits pour l'encodage, et une clé de longueur arbitraire pour la signature. L'option -keysig marque la clé exclusive pour la signature. Une telle clé peut alors être utilisée pour la signature S/s-1MIMEs0, authenticode (signature par contrôles ActiveX) et l'authentification de clients s-1SSLs0, toutefois, uniquement s-1MSIEs0 5.0 et supérieur supportent l'utilisation de clés de signature pour l'authentification de clients s-1SSLs0. |
"-nomaciter, -noiter" 4
Ces options déterminent le nombre d'itérations pour les algorithmes s-1MACs0 et certains algorithmes de clés. À moins de vouloir produire des fichiers compatibles avec s-1MSIEs0 4.0, ces options peuvent être omises. .Sp Pour décourager des attaques utilisant des dictionnaires importants de mot de passe commun, l'algorithme dérivant les clés des mots de passe peut se voir appliqué un nombre d'itérations : ceci a pour effet de répéter une certaine partie de l'algorithme et ralentit l'opération. Le s-1MACs0 est employé pour s'assurer l'intégrité du fichier, mais comme il aura normalement le même mot de passe que les clés et les certificats, il peut aussi se voir attaqué. Par défaut, le nombre d'itérations du s-1MACs0 et de l'encodage sont de 2048, en utilisant ces options, le nombre d'itérations s-1MACs0 et d'encodage peuvent être mises à 1. Comme ceci réduit la sécurité des informations, elles ne devraient se voir utiliser qu'en cas de nécéssité. La plupart des logiciels supporte un nombre d'itération et pour s-1MACs0 et pour l'encodage. s-1MSIEs0 4.0 ne le supporte pas pour s-1MACs0 et nécéssite alors l'option -nomaciter. |
"-maciter" 4
Cette option est incluse pour assurer la compatibilité avec d'anciennes versions pour forcer le nombre d'itérations élévé pour s-1MACs0. C'est actuellement le comportement par défaut. |
"-rand file(s)" 4
Un ou plusieurs fichier contenant des données aléatoires utilisés pour initialiser le générateur de nombres pseudo-aléatoires, ou un socket s-1EGDs0 (cf RAND_egd(3)). Plusieurs fichiers peuvent être spécifiées avec un caractère de séparation dépendant de l's1-OSs0. Ce séparateur est ; pour s-1MSs0-Windows, , pour OpenVMS, et : les autres. |
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 option parmi -clcerts, -cacerts et -nocerts n'est présente, alors tous les certificats seront générés dans l'ordre d'apparence dans les fichiers source PJCS#12. De plus, il n'y a aucune garantie que le premier certificat trouvé est celui correspondant à la clé privée. Certains logiciels nécéssitant une clé privée supposent que le premier certificat du fichier correspond à la clé privée : Ceci peut ne pas être le cas toujours. En utilisant l'option -clcerts le problème est résolu en inclunt uniquement le certificat correspondant à la clé privée. Si besoin est, les certificats CA peuvent être générées à part avec les options -nokeys -cacerts.
Les algorithmes -keypbe et -certpbe permettent de préciser l'algorithme d'encodage pour la clé privée et pour les certificats. Normalement, les valeurs par défauts devraient convenir, mais certains logiciels ne gèrent pas les clés privées encodées triple-DES, alors l'option -keypbe PBE-SHA1-RC2-40 réduit l'encodage de la clé privée à 40 bits RC2. Une description complète de tous les algorithmes est contenue dans la page de manuel de pkcs.
Exemples
Interprétation d'un fichier PKCS#12 et sortie vers un fichier :
.Vb 1 & openssl pkcs12 -in fichier.p12 -out fichier.pem .Ve Sortie des certificats clients uniquement :
.Vb 1 & openssl pkcs12 -in fichier.p12 -clcerts -out fichier.pem .Ve Ne pas encoder la clé privée : openssl pkcs12 -in fichier.p12 -out fichier.pem -nodes
Affichage d'informations sur un fichier PKCS#12 :
.Vb 1 & openssl pkcs12 -in fichier.p12 -info -noout .Ve Création d'un fichier PKCS#12 :
.Vb 1 & openssl pkcs12 -export -in fichier.pem -out fichier.p12 -name "Mon Certificat" .Ve Inclure quelques certificats supplémentaires :
.Vb 2 & openssl pkcs12 -export -in fichier.pem -out fichier.p12 -name "Mon Certificat" e & -certfile autrescerts.pem .Ve
Bugs
Certains disent que tout le standard PKCS#12 est un seul grand bogue
Les versions d'OpenSSL avant 0.9.6a avaient un bogue dans les routines de génération de clé PKCS#12. Sous certaines circonstances, ceci pouvait conduire à un fichier PKCS#12 encodé avec une clé invalide. Ainsi certains fichiers PKCS#12 ayant attrapé ce bogue d'autres implémentations (MSIE ou Netscape) ne pouvaient être décryptes par OpenSSL et inversement. La probabilité de produire un tel fichier est relativement petite : 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 valide, mais le décodage des clés privées extraites est voué à l'échec.
Ce problème peut être contourné en extrayant les clés privées et les certificats avec une version ancienne d'OpenSSL puis en régénrant le fichier PKCS#12 avec une version plus récente. Par exemple :
.Vb 2 & old-openssl -in mauvais.p12 -out keycerts.pem & openssl -in keycerts.pem -export -name "Mon PKCS#12 file" -out fixed.p12 .Ve
Voir aussi
pkcs8(1) .rn }` '' .IX Title "PKCS12 1" .IX Name "pkcs12 - utilitaire pour fichiers PKCS#12" .IX Header "NOM" .IX Header "SYNOPSIS" .IX Header "DESCRIPTION" .IX Header "OPTIONS DE LA COMMANDE" .IX Header "OPTIONS D'INTERPRÉTATION" .IX Item "-in nomfichier" .IX Item "-out nomfichier" .IX Item "-pass arg, -passin arg" .IX Item "-passout arg" .IX Item "-noout" .IX Item "-clcerts" .IX Item "-cacerts" .IX Item "-nocerts" .IX Item "-nokeys" .IX Item "-info" .IX Item "-des" .IX Item "-des3" .IX Item "-idea" .IX Item "-nodes" .IX Item "-nomacver" .IX Item "-twopass" .IX Header "OPTIONS DE CRÉATION DE FICHIER" .IX Item "-export" .IX Item "-out nomfichier" .IX Item "-in nomfichier" .IX Item "-inkey nomfichier" .IX Item "-name nomamical" .IX Item "-certfile nomfichier" .IX Item "-caname nomamical" .IX Item "-pass arg, -passout arg" .IX Item "-passin motdepsse" .IX Item "-chain" .IX Item "-descert" .IX Item "-keypbe alg, -certpbe alg" .IX Item "-keyex|-keysig" .IX Item "-nomaciter, -noiter" .IX Item "-maciter" .IX Item "-rand fichier(s)" .IX Header "NOTES" .IX Header "EXEMPLES" .IX Header "BOGUES" .IX Header "VOIR AUSSI"
Poster un commentaire