Description générale du projet:

Titre: Comment signer un fichier xpi pour firefox (LE BON)
3.1 Description sommaire de la section4
Inspiré de:
http://oyoy.eu/huh/firefox-extension-code-signed-with-spc-pvk/
http://developer.mozilla.org/fr/docs/Extraits_de_code:Signer_un_XPI


AVANT TOUTES CHOSES ASSURER VOUS QUE VOUS AVEZ AJOUTER LE MIME TYPE SUIVANT DANS IIS:
extension: .xpi
MIME TYPE: application/x-xpinstall


Voici par étape ce qu'il faut faire pour signer une extension .XPI pour firefox
Faite pour la toolbarCI


1- INSTALLER NSPR
Télécharger:
http://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v4.6/WINNT5.0_OPT.OBJ/nspr-4.6.zip
et mettre dans le rep:
C:\Apps
ensuite décompresser 'ICI'
cette action va créer le rep C:\Apps\nspr-4.6\ et ajouter tous les fichiers nécessaires

2- INSTALLER NSS
Télécharger:
http://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_9_RTM/WINNT5.0_DBG.OBJ/nss-3.9.zip
et mettre dans le rep:
C:\Apps
ensuite décompresser 'ICI'
cette action va créer le rep C:\Apps\nss-3.9 et ajouter tous les fichiers nécessaires

3- SET DU PATH
Ensuite ajouter à la variable PATH:
C:\Apps\nss-3.9\bin\;C:\Apps\nss-3.9\lib\;C:\Apps\nspr-4.6\libDans:
Panneau de configuration->Propriétés système->Avancé->Variables d'environnement->Variables système 

Si ca marche pas, faire en DOS :

set PATH=C:\Apps\nss-3.9\bin\;C:\Apps\nss-3.9\lib\;C:\Apps\nspr-4.6\lib;%PATH%

4- INSTALLER pvkimprt.exe
Le télécharger à cette adresse:
http://www.microsoft.com/downloads/details.aspx?familyid=F9992C94-B129-46BC-B240-414BDFF679A7&displaylang=en

Le fichier télécharger se nomme pvkimprt.exe mais c'est un zip
Avant de le dizipper, le renomer pvkimprt1.exe car y a dedant le fichier pvkimprt.exe
Dézipper le tous dans c:\apps\pvkimprt
Ensuite il faut exécuter pvkimprt.exe suivre les étapes et à la fin rebooter l'ordinateur

(chose bisare ici, si ont choisie de l'exporter dans le rep windows, sa demande pas de rebooter)

Ce programme à pas besoin de set path


5- CRÉER LE RÉPERTOIRE DE TRAVAIL
Créer le rep suivant:
C:\projects\ff\codesign>

2essait:
D:\Asource\carrefourinternet_dev\WEBETSQL\www.carrefourinternet.com\toolbar\thawte\bdcertificats>


6- CRÉER LA BASE DE DONNÉES DES CERTIFICATS
En DOS aller dans 
C:\projects\ff\codesign>
2essait:
D:\Asource\carrefourinternet_dev\WEBETSQL\www.carrefourinternet.com\toolbar\thawte\bdcertificats>

Faire:
certutil -N -d .
NE PAS OBLIER LE .

Il faut entrer un mot de passe de 8 lettre.
Moi j'ai mis: 
bnmbnm11

7- TRANSFORMER LES DEUX CLÉS THAWTE EN PKCS#12 file (.pfx)
Pour importer les clés dans l'ordi et les exporter en fichier .pfx
faire la commande suivante:

pvkimprt -import -pfx "d:\Asource\carrefourinternet_dev\WEBETSQL\www.carrefourinternet.com\toolbar\thawte\mykeys\mycert.spc" "c:/mykey.pvk"

La il faut entrer le mot de passe des clés (je pense)
Donc j'ai mis :
bnmbnm

Un wisard windows apparait
Choisir Yes, export the private key
Ensuite laisser les coches par défaut

2essait:
ATTENTION:
Si vous voulez créer un autre répertoire de signature, vous devez changer 
le nom de la clé PFX et cocher 'Include all certificat in the certification path if possible'
NE LE FAITE SURTOUT PAS AVEC LE MEME NOM SINON VOUS DEVREZ RECHANGER DE REPERTOIRE

Ensuite mettre encore le mot de passe:
bnmbnm

Finalement enregistrer la clé sous le nom:
mycert.pfx (OU UN NOUVEAU NOM)
2essait:
moncertificat.pfx
dans:
C:\projects\ff\codesign>
2essait:
D:\Asource\carrefourinternet_dev\WEBETSQL\www.carrefourinternet.com\toolbar\thawte\bdcertificats>


8- IMPORTER LE FICHIER PKCS#12 mycert.pfx LA BASE DE DONNÉ DES CERTIFICATS

Aller dans ce repertoire:
C:\projects\ff\codesign>
2essait:
D:\Asource\carrefourinternet_dev\WEBETSQL\www.carrefourinternet.com\toolbar\thawte\bdcertificats>


Faire la commande suivante:
pk12util -i mycert.pfx -d .

Entrer le premier mot de passe du PFX 
(Enter Password or Pin for "NSS Certificate DB":):
bnmbnm

Ensuite le deuxième mot de passe du PFX:
(Enter password for PKCS12 file:):
bnmbnm


9- VÉRIFIER QUE LE PFX C'EST BIEN MIS DANS LA BASE DE DONNÉES DES CERTIFICATS
Aller dans ce repertoire:
C:\projects\ff\codesign>
2essait:
D:\Asource\carrefourinternet_dev\WEBETSQL\www.carrefourinternet.com\toolbar\thawte\bdcertificats>

Faire la commande suivante:
certutil -L -d .

Résultat:
Thawte Code Signing CA - Thawte Consulting cc                c,,c
c70a9777-cda7-41af-8786-8970f9344a3e                         u,u,u

2essait:
1d2cf373-017f-4582-9058-3b48d746719f                         u,u,u
Thawte Code Signing CA - Thawte Consulting cc                c,,c

10- CRÉER LE RÉPERTOIRE DE SIGNATURE:
Faire le rep 'signed'
C:\projects\ff\codesign\signed>

2essait:
Faire le rep 'sigature'
D:\Asource\carrefourinternet_dev\WEBETSQL\www.carrefourinternet.com\toolbar\thawte\bdcertificats\signature>



11- DÉZIPPPER LE FICHIER XPI DANS LE REP DE SIGANTURE
(Si vousa avez déjà signé un xpi par cette procédure, il est important ici 
de TOUT DÉTRUIRE les fichiers ancien dans le rep signature et dans le d:)

Copier le xpi dans le rep de siganture.
Le renomer en .ZIP
Le dézipper avec la structure des répertoire
Détruire le fichier .ZIP

12- SIGNER LE XPI
Aller dans le répertoire:
c:\projects\ff\codesign>

2essait:
D:\Asource\carrefourinternet_dev\WEBETSQL\www.carrefourinternet.com\toolbar\thawte\bdcertificats>


Faire la commande suivante:
signtool -d . -k c70a9777-cda7-41af-8786-8970f9344a3e -p "bnmbnm" signed/

2essait:
signtool -d . -k 1d2cf373-017f-4582-9058-3b48d746719f -p "bnmbnm11" signature/


MERDE SA SEMBLE ÊTRE LE MOT DE PASSE DE LA BASE NSS!!!!
(Noter que je viens aussi d'importer la clé dans firefox 
tool option advanced encryption view certificat your certificat)

13- REPACKTER LE .XPI

Remmetre dans un .ZIP les nouveaux fichiers.

IMPORTANT LE FICHIER zigbert.rsa doit être le premier dans le zip

Il est très important de garder la structure des répertoire initial dans le ZIP

Avec winzip j'ai été obligé de mettre le rep META-INF et chrome dans le c:/ ainsi que intall.rdf

Prendre winzip pro!

SURTOUT NE PAS METTRE LE REP SIGNATURE SUR SVN sinon sa sign pas


et les autres fichiers de siganteure doivent
être en premier dans le ZIP

Renomer le fichier en .XPI

14- TESTER AVEC FIREFOX
Aller dans file - OPEN FILE
Choisir le nouveau fichier .XPI

Voila moi sa fonctionne pares plus de 40 heures de recherches intense grrr








signtool -d . -k 6bf106a0-1bd4-4944-895b-84d4d8456595 -p "bnmbnm" signed/