Voici quelques ressources pour savoir signer une extension. L'avantage de signer une extension est de permettre de certifier l'origine d'une extension (et accessoirement, d'éviter lors de l'installation de celle-ci, l'affichage du message en rouge indiquant que le xpi est non signé ;-) ). Pour cela, il vous faut avant tout un certificat validé auprés d'une autorité de certification comme Verisign.
A noter l'existence d'un autre tutoriel en anglais : http://www.mozdevgroup.com/docs/pete/Sig(..)
Et d'un autre dans le livre Creating Application With Mozilla : http://books.mozdev.org/html/mozilla-chp(..)
Toute la procédure de création/gestion/utilisation des certificats est indiquée sur SignerUneAppli .
Mais il s'avère que, même en suivant cette procédure à la lettre pour signer votre xpi, firefox/mozilla s'évertuera à ne pas reconnaître cette signature.
En effet, il faut que le fichier META-INF/zigbert.rsa, généré par la procédure de signature, soit le premier fichier du package xpi. Pour ce faire, il ne faut pas faire la signature ET le xpi en une seule fois (option -Z de signtool).
Il faut au contraire, dans l'ordre suivant :
Soit monExt le nom de votre extension, et supposons que votre xpi doive contenir le strict minimum, c'est à dire chrome/monExt.jar (Je rappelle que pour les dernières versions de firefox, monExt.jar doit impérativement se trouver dans le répertoire chrome) et install.rdf.
Vous avez donc l'arborescence très simple ci-dessous :
/le/chemin/monExt/install.rdf
/le/chemin/monExt/chrome/monExt.jar
vous vous placez dans le répertoire père du répertoire à signer :
cd /le/chemin
signez ce répertoire par la commande habituelle :
signtool -d /le_chemin_du_certificat -k "nom_du_certificat" -p "passwd" monExt/
la signature va créer le répertoire monExt/META-INF/ contenant les fichiers :
vous vous placez dans le répertoire monExt/ et créez le xpi avec le premier fichier à y placer :
cd monExt/
zip ../monExt.xpi META-INF/zigbert.rsa
vous y rajoutez tous les autres fichiers (en excluant le premier déjà placé) :
zip -r -D ../monExt.xpi * -x META-INF/zigbert.rsa
cd ..
Ça y est, votre package /le/chemin/monExt.xpi est signé, et cette signature sera reconnue par firefox/mozilla à son installation.
Bien entendu, il faut ensuite que l'autorité de certification soit connue de votre navigateur, que le certificat soit valide etc... pour que l'extension s'installe effectivement.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.