« PKCS#12 » est un des formats de fichier de l'ensemble PKCS. Les fichiers ayant ce format ont souvent l'extension « .p12 ».

PKCS#12 est généralement utilisé pour stocker la clé privée, le certificat de clé publique correspondant et les certificats de la chaîne de certification, en les protégeant par un mot de passe.

Dans le cas d'un certificat émis par la PKI de l'AUF, un fichier PKCS (extension .p12) contient :

Obtenir un fichier PKCS#12 depuis la PKI de l'AUF

Lorsque vous allez chercher un certificat sur la PKI de l'AUF (http://igc.auf.org), vous cliquez sur "Obtenir un certificat". Vous devez alors donner le nom d'utilisateur et le mot de passe de votre entité.

Si vous arrivez sur un formulaire qui vous propose le choix Taille de la clé en nombre (1024, 2048, 4096, etc) alors c'est que vous allez recevoir un fichier PKCS#12. C'est le créateur de l'entité, donc le responsable de votre autorité de certification régionale, qui a choisi votre mot de récupération de certificat. En général, PKCS#12 est choisi pour les certificats serveurs (SSL/TLS et OpenVPN).

Choisissez la taille de la clé, puis cliquez sur OK.

Vous recevrez un fichier PKCS#12 protégé avec le mot de passe de votre entité (celui que vous avez saisi pour obtenir le certificat).

Extraire un fichier PKCS#12 depuis Firefox

Lorsqu'on dispose d'un certificat utilisateur enregistré dans la base des certificats, voici comment l'extraire au format PKCS#12 :

  1. Aller sur Firefox, dans le menu Édition / Préférences, sous-menu "Avancé", onglet "Chiffrement". Cliquer alors sur "Afficher les certificats". Ouf !
    • preferences-firefox.png

  2. Choisir l'onglet "Vos certificats", sélectionner le certificat à exporter, puis cliquer sur "Sauvegarder".
    • sauvegarde-certif.png

  3. Choisir un nom de fichier. Lui donner l'extension ".p12" afin de le retrouver facilement plus tard.
  4. Si vous disposez d'un mot de passe principal dans Firefox (ce qui est conseillé), Firefox vous le demandera à ce moment afin de pouvoir lire le certificat.

  5. Firefox demande ensuite un mot de passe pour protéger le fichier ".p12", c'est-à-dire pour crypter les données qu'il contient.
    • mot-de-passe-p12.png

  6. Cliquer sur OK : le fichier certificat.p12 est enregistré.

Décomposer un PKCS#12 en fichiers PEM

Certains logiciels ne savent pas gérer directement le format PKCS#12. La plupart du temps, ils nécessitent des fichiers séparés au format PEM. Un fichier contiendra la clé, l'autre le certificat, et un troisième les certificats des autorités de certification.

Voici la procédure pour extraire les données au format PEM depuis un fichier PKCS#12 :

Extraction de la clé privée (key.pem)
  • $ openssl pkcs12 -in test.p12 -nocerts -out client-key.pem

  • OpenSSL demande alors le mot de passe qui protège le fichiers PKCS#12, puis le mot de passe pour crypter la clé privée key.pem.

  • Note : si le certificat est destiné à un serveur SSL/TLS (web, smtp, pop, imap, openvpn), il faut extraire une clé non cryptée. Pour cela, on ajoute l'option -nodes :

  • $ openssl pkcs12 -in test.p12 -nocerts -nodes -out client-key.pem

Extraction du certificat (cert.pem)
  • $ openssl pkcs12 -in test.p12 -clcerts -nokeys -out client-cert.pem

Extraction de la chaîne de certificat (CAs-cert.pem)
  • Il s'agit de l'ensemble des certificats des autorités de certifications. Pour un certificat AUF, c'est l'AC régionale et l'AC racine. Les certificats sont mis les uns à la suite des autres dans le fichier de sortie
  • $ openssl pkcs12 -in test.p12 -cacerts -nokeys -out CAs-cert.pem

PKI/PKCS12 (dernière édition le 2010-10-18 11:11:58 par JeanChristopheAndré)