Il s'agit de la commande pk12util qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
pk12util - Exporter et importer des clés et des certificats vers ou depuis un fichier PKCS #12 et le NSS
base de données
SYNOPSIS
pk12util [-i p12File|-l p12File|-o p12File] [-d [sql:]répertoire] [-h nom_jeton]
[-P préfixe de base de données] [-r] [-v] [-k slotPasswordFile|-K slotPassword]
[-w p12filePasswordFile|-W p12filePassword]
STATUT
Cette documentation est toujours en cours d'élaboration. Veuillez contribuer à l'examen initial dans
Mozilla NSS bug 836477[1]
DESCRIPTION
L'utilitaire PKCS #12, pk12util, permet de partager des certificats entre n'importe quel serveur qui
prend en charge PKCS#12. L'outil peut importer des certificats et des clés à partir de fichiers PKCS#12 dans
bases de données de sécurité, exporter des certificats et répertorier les certificats et les clés.
OPTIONS ET ARGUMENTS
Options
-i fichier p12
Importez des clés et des certificats à partir d'un fichier PKCS#12 dans une base de données de sécurité.
-l fichier p12
Répertoriez les clés et les certificats dans le fichier PKCS#12.
-o fichier p12
Exportez les clés et les certificats de la base de données de sécurité vers un fichier PKCS#12.
Arguments
-c cléCipher
Spécifiez l'algorithme de chiffrement de la clé.
-C chiffrecert
Spécifiez l'algorithme de chiffrement du certificat de clé (package global).
-d [sql:]répertoire
Spécifiez le répertoire de base de données dans lequel importer ou exporter des certificats et
clés.
pk12util prend en charge deux types de bases de données : les bases de données de sécurité héritées (cert8.db,
key3.db et secmod.db) et de nouvelles bases de données SQLite (cert9.db, key4.db et pkcs11.txt).
Si le préfixe sql : n'est pas utilisé, alors l'outil suppose que les bases de données données sont dans
l'ancien format.
-h nom de jeton
Spécifiez le nom du jeton vers lequel importer ou exporter.
-k emplacementFichierMot de Passe
Spécifiez le fichier texte contenant le mot de passe du slot.
-K slotMot de passe
Spécifiez le mot de passe de l'emplacement.
-m | --key-len longueur de la clé
Spécifiez la longueur souhaitée de la clé symétrique à utiliser pour chiffrer la clé privée.
-n | --cert-key-len certKeyLength
Spécifiez la longueur souhaitée de la clé symétrique à utiliser pour chiffrer les certificats
et d'autres métadonnées.
-n nom de certificat
Spécifiez le surnom du certificat et de la clé privée à exporter.
-P préfixe
Spécifiez le préfixe utilisé sur les bases de données de certificats et de clés. Cette option est fournie
comme cas particulier. La modification des noms des bases de données de certificats et de clés n'est pas
recommandé.
-r
Vide toutes les données sous forme brute (binaire). Celui-ci doit être enregistré en tant que fichier DER. Les
par défaut est de renvoyer les informations dans un format ASCII joliment imprimé, qui affiche le
informations sur les certificats et les clés publiques dans le fichier p12.
-v
Activez la journalisation de débogage lors de l'importation.
-w p12fichierFichierMotDePasse
Spécifiez le fichier texte contenant le mot de passe du fichier pkcs #12.
-W p12fileMot de passe
Spécifiez le mot de passe du fichier pkcs #12.
RETOUR CODES
· 0 - Aucune erreur
· 1 - Utilisateur annulé
· 2 - Erreur d'utilisation
· 6 - Erreur d'initialisation NLS
· 8 - Erreur d'ouverture de la base de données de certificat
· 9 - Erreur d'ouverture de la base de données de clés
· 10 - Erreur d'initialisation du fichier
· 11 - Erreur de conversion Unicode
· 12 - Erreur de création de fichier temporaire
· 13 - PKCS11 obtient une erreur d'emplacement
· 14 - Erreur de démarrage du décodeur PKCS12
· 15 - erreur de lecture du fichier d'importation
· 16 - erreur de décodage pkcs12
· 17 - le décodeur pkcs12 vérifie l'erreur
· 18 - erreur de validation des sacs du décodeur pkcs12
· 19 - erreur de sacs d'importation du décodeur pkcs12
· 20 - erreur de conversion de base de données de la version 3 vers la version 2
· 21 - erreur de conversion cert db version 7 en version 5
· 22 - erreur de correctif cert et clé dbs
· 23 - obtenir l'erreur de base de données de certificat par défaut
· 24 - erreur de recherche de certificat par pseudo
· 25 - création d'une erreur de contexte d'exportation
· 26 - PKCS12 ajoute une erreur d'intégrité du mot de passe
· 27 - erreur de création de cert et de clé Safes
· 28 - PKCS12 ajoute un certificat et une erreur de clé
· 29 - Erreur d'encodage PKCS12
EXEMPLES
Importation Clés / Key et Certificats - Sanxin
L'utilisation la plus basique de pk12util pour importer un certificat ou une clé est l'entrée PKCS#12
déposer (-i) et un moyen de spécifier la base de données de sécurité en cours d'accès (soit -d |
répertoire ou -h pour un jeton).
pk12util -i p12File [-h nom_jeton] [-v] [-d [sql:]répertoire] [-P dbprefix] [-k
slotPasswordFile|-K slotPassword] [-w p12filePasswordFile|-W p12filePassword]
Par exemple :
# pk12util -i /tmp/cert-files/users.p12 -d sql:/home/my/sharednssdb
Entrez un mot de passe qui sera utilisé pour crypter vos clés.
Le mot de passe doit comporter au moins 8 caractères,
et doit contenir au moins un caractère non alphabétique.
Entrez un nouveau mot de passe:
Retaper le mot de passe:
Saisissez le mot de passe pour le fichier PKCS12 :
pk12util : IMPORTATION PKCS12 RÉUSSIE
Exportation Clés / Key et Certificats - Sanxin
Le pk12util La commande d'exportation des certificats et des clés requiert à la fois le nom du
certificat à extraire de la base de données (-n) et le fichier de sortie au format PKCS#12 pour
écrire à. Il existe des paramètres facultatifs qui peuvent être utilisés pour crypter le fichier à protéger
le matériel du certificat.
pk12util -o p12File -n nom de certificat [-c keyCipher] [-C certCipher] [-m|--key_len keyLen]
[-n|--cert_key_len certKeyLen] [-d [sql:]répertoire] [-P dbprefix] [-k slotPasswordFile|-K
slotPassword] [-w p12filePasswordFile|-W p12filePassword]
Par exemple :
# pk12util -o certs.p12 -n Server-Cert -d sql:/home/my/sharednssdb
Saisissez le mot de passe pour le fichier PKCS12 :
Retaper le mot de passe:
inscription Clés / Key et Certificats - Sanxin
Les informations contenues dans un fichier .p12 ne sont pas lisibles par l'homme. Les certificats et les clés dans le
le fichier peut être imprimé (listé) dans un joli format lisible par l'homme qui montre
informations pour chaque certificat et toutes les clés publiques dans le fichier .p12.
pk12util -l p12File [-h nom_jeton] [-r] [-d [sql:]répertoire] [-P dbprefix] [-k
slotPasswordFile|-K slotPassword] [-w p12filePasswordFile|-W p12filePassword]
Par exemple, cela imprime la sortie ASCII par défaut :
# pk12util -l certs.p12
Saisissez le mot de passe pour le fichier PKCS12 :
Clé (enveloppée) :
Nom convivial : Thawte Freemail Member's Thawte Consulting (Pty) Ltd. ID
Algorithme de chiffrement : PKCS #12 V2 PBE avec SHA-1 et 3KEY Triple DES-CBC
Paramètres:
Sel:
45:2e:6a:a0:03:4d:7b:a1:63:3c:15:ea:67:37:62:1f
Nombre d'itérations : 1 (0x1)
Certificat:
Dates:
Version : 3 (0x2)
Numéro de série : 13 (0xd)
Algorithme de signature : PKCS #1 SHA-1 avec cryptage RSA
Émetteur : "E=[email protected],CN=Thawte Personal Freemail C
A,OU=Division des services de certification,O=Thawte Consulting,L=Cape T
propre,ST=Cap occidental,C=ZA"
Sinon, la -r imprime les certificats, puis les exporte dans un DER séparé
fichiers binaires. Cela permet aux certificats d'être transmis à une autre application qui prend en charge
fichiers .p12. Chaque certificat est écrit dans un fichier à numéro séquentiel, commençant par
file0001.der et continuez jusqu'à file000N.der, en incrémentant le nombre pour chaque
certificat:
pk12util -l test.p12 -r
Saisissez le mot de passe pour le fichier PKCS12 :
Clé (enveloppée) :
Nom convivial : Thawte Freemail Member's Thawte Consulting (Pty) Ltd. ID
Algorithme de chiffrement : PKCS #12 V2 PBE avec SHA-1 et 3KEY Triple DES-CBC
Paramètres:
Sel:
45:2e:6a:a0:03:4d:7b:a1:63:3c:15:ea:67:37:62:1f
Nombre d'itérations : 1 (0x1)
Nom convivial du certificat : Thawte Personal Freemail Issuing CA - Thawte Consulting
Nom convivial du certificat : Thawte Freemail Member's Thawte Consulting (Pty) Ltd. ID
MOT DE PASSE ENCRYPTION
PKCS#12 assure non seulement la protection des clés privées mais aussi le certificat
et les métadonnées associées aux clés. Le cryptage par mot de passe est utilisé pour protéger
clés privées à l'exportation vers un fichier PKCS#12 et, éventuellement, l'intégralité du package. Sinon
algorithme est spécifié, l'outil utilise par défaut PKCS12 V2 PBE avec SHA1 et 3KEY Tripler
DES-cbc pour le cryptage par clé privée. PKCS12 V2 PBE avec SHA1 et 40 Bit RC4 est la valeur par défaut
pour le chiffrement global du package lorsqu'il n'est pas en mode FIPS. En mode FIPS, il n'y a pas
chiffrement du paquet.
La clé privée est toujours protégée par un cryptage fort par défaut.
Plusieurs types de chiffrements sont pris en charge.
Chiffres CBC symétriques pour PKCS#5 V2
· DES-CBC
· RC2-CBC
· RC5-CBC Pad
· DES-EDE3-CBC (valeur par défaut pour le cryptage des clés)
· AES-128-CBC
· AES-192-CBC
· AES-256-CBC
· CAMÉLIA-128-CBC
· CAMÉLIA-192-CBC
· CAMÉLIA-256-CBC
Chiffres PKCS#12 PBE
· PKCS #12 PBE avec Sha1 et 128 bits RC4
· PKCS #12 PBE avec Sha1 et 40 bits RC4
· PKCS #12 PBE avec Sha1 et Triple DES CBC
· PKCS #12 PBE avec Sha1 et 128 bits RC2 CBC
· PKCS #12 PBE avec Sha1 et 40 bits RC2 CBC
· PKCS12 V2 PBE avec SHA1 et 128 bits RC4
· PKCS12 V2 PBE avec SHA1 et 40 bits RC4 (valeur par défaut pour le mode non-FIPS)
· PKCS12 V2 PBE avec SHA1 et 3KEY Triple DES-cbc
· PKCS12 V2 PBE avec SHA1 et 2KEY Triple DES-cbc
· PKCS12 V2 PBE avec SHA1 et 128 bits RC2 CBC
· PKCS12 V2 PBE avec SHA1 et 40 bits RC2 CBC
Chiffres PKCS#5 PBE
· Chiffrement basé sur le mot de passe PKCS #5 avec MD2 et DES CBC
· Chiffrement basé sur le mot de passe PKCS #5 avec MD5 et DES CBC
· Chiffrement basé sur le mot de passe PKCS #5 avec SHA1 et DES CBC
Avec PKCS#12, le fournisseur de chiffrement peut être le module de jeton logiciel ou un matériel externe
module. Si le module cryptographique ne prend pas en charge l'algorithme demandé, alors le
le prochain meilleur ajustement sera sélectionné (généralement la valeur par défaut). S'il n'y a pas de remplacement approprié pour le
l'algorithme souhaité peut être trouvé, l'outil renvoie l'erreur aucune Sécurité module Vous pouvez effectuer
le demandé la vente au détail XNUMXh/XNUMX.
NSS BASE DE DONNÉES TYPES
NSS utilisait à l'origine les bases de données BerkeleyDB pour stocker les informations de sécurité. Les dernières versions
de ceux-ci héritage les bases de données sont :
· cert8.db pour les certificats
· key3.db pour les clés
· secmod.db pour les informations du module PKCS #11
BerkeleyDB a cependant des limitations de performances, qui l'empêchent d'être facilement utilisé par
plusieurs applications simultanément. NSS a une certaine flexibilité qui permet aux applications de
utiliser leur propre moteur de base de données indépendant tout en conservant une base de données partagée et en travaillant
autour des problèmes d'accès. Néanmoins, NSS a besoin de plus de flexibilité pour fournir un
base de données de sécurité.
En 2009, NSS a introduit un nouvel ensemble de bases de données qui sont des bases de données SQLite plutôt que
BerkleyDB. Ces nouvelles bases de données offrent plus d'accessibilité et de performances :
· cert9.db pour les certificats
· key4.db pour les clés
· pkcs11.txt, qui répertorie tous les modules PKCS #11 contenus dans un nouveau
sous-répertoire dans le répertoire des bases de données de sécurité
Parce que les bases de données SQLite sont conçues pour être partagées, ce sont les a partagé la publication de base de données
taper. Le type de base de données partagée est préféré ; le format hérité est inclus pour l'arrière
compatibilité.
Par défaut, les outils (certutil, pk12util, moduleutil) supposons que la sécurité donnée
les bases de données suivent le type hérité le plus courant. L'utilisation des bases de données SQLite doit être effectuée manuellement
spécifié en utilisant le sql : préfixe avec le répertoire de sécurité donné. Par exemple:
# pk12util -i /tmp/cert-files/users.p12 -d sql:/home/my/sharednssdb
Pour définir le type de base de données partagée comme type par défaut pour les outils, définissez le
NSS_DEFAULT_DB_TYPE variable d'environnement à sql:
exporter NSS_DEFAULT_DB_TYPE="sql"
Cette ligne peut être ajoutée au ~ / .bashrc fichier pour rendre le changement permanent.
La plupart des applications n'utilisent pas la base de données partagée par défaut, mais elles peuvent être configurées pour
Utilise les. Par exemple, cet article explique comment configurer Firefox et Thunderbird
pour utiliser les nouvelles bases de données NSS partagées :
· https://wiki.mozilla.org/NSS_Shared_DB_Howto
Pour un projet d'ingénierie sur les changements dans les bases de données NSS partagées, voir le projet NSS
wiki :
· https://wiki.mozilla.org/NSS_Shared_DB
Utilisez pk12util en ligne à l'aide des services onworks.net