Comment signez-vous vos extensions Firefox?
-
02-07-2019 - |
Question
J'ai développé quelques extensions pour Firefox et je suis contrarié par le fait qu'il est si difficile de faire signer l'extension. Lorsqu'une extension n'est pas signée, le message " Auteur non vérifié " quand il est installé, et pour moi, cela ne me semble pas correct.
J'ai un script de construction simple qui construit mon fichier .xpi à partir de sources et une copie sous licence de PKZip (qui, selon de nombreux tutoriels, est nécessaire pour créer un fichier xpi signé que Firefox exige), mais je n'ai Vous n'avez pas trouvé le moyen d'obtenir un certificat gratuit / bon marché qui fonctionne réellement ou un ensemble d'instructions qui font l'affaire.
Étant donné que mes extensions sont gratuites, je ne souhaite pas dépenser 400 USD en certificat commercial, mais cela ne me dérange pas de dépenser environ 50 USD pour le faire. Je dispose de machines Linux et Windows, bien que mon script de construction utilise actuellement Windows, ce qui serait plus pratique à utiliser.
Comment avez-vous résolu ce problème? Que dois-je faire pour signer automatiquement et en toute sécurité mes extensions lors de leur construction?
Modifier: j'apprécie les résultats Google, mais les étapes qu'ils fournissent ne sont pas assez complètes pour obtenir un certificat qui fonctionne. Le sentiment que je ressens me rappelle ce classique:
La solution
J'ai utilisé le certificat comodo pour signer des XPI. C'était l'option la moins chère à l'époque.
J'ai écrit quelques articles sur XPI Forma et un guide pour signer à l'aide d'un outil de ligne de commande java.
Mon outil XPISigner simplifie considérablement le processus et peut être intégré dans les systèmes de build.
J'ai supprimé l'outil car il ne fonctionne plus avec FF4 ou supérieur. La source est disponible sur http://code.google.com/p/xpisigner/ si tout le monde a envie de réparer.
Autres conseils
Évitez les codes de GoDaddy qui signent des certificats car le certificat d’autorité de certification intermédiaire nécessaire n’est pas dans Firefox par défaut. C = US, ST = Arizona, L = Scottsdale, O = GoDaddy.com \, Inc., OU = http://certificates.godaddy.com/repository,CN=Go Autorité de certification Daddy Secure, SERIALNUMBER = 07969287 '
Si vous signez avec, vos utilisateurs auront des erreurs de signature.
par exemple.
SIgning could not be verified. -260
Voici ce que j'ai trouvé avec Google: http://www.mercille.org/snippets /xpiSigning.php qui indique:
Si vous ne voulez pas de publicité certificat ou ne peut pas en payer un, Ascertia peut vous fournir gratuitement un certificat, mais en le transformant en un certificat de signature de code nécessite un peu travail supplémentaire, que j’ai détaillé sur une autre page .
Je ne peux pas dire que je l'ai essayé. Et sur http://developer.mozilla.org/en/Signing_a_XPI , il est dit:
Le moins cher universellement supporté Certificat (Mozilla, Java, Microsoft) semble être le Comodo Instant-SSL offre. Vous pouvez obtenir un gratuit certificat pour les développeurs open-source de Unizeto Certum, mais leur racine certificat n'est présent que dans Mozilla Firefox et Opera (pas Java ou Microsoft).
Oui, la signature XPI n’est malheureusement pas très transparente. Je conseillerais de rechercher / publier dans les groupes de discussion mozilla (dev-extensions, propriétaires de projets @ mozdev, irc.mozilla.org) et d'essayer également de contacter les personnes qui l'ont fait fonctionner.
Tucows vend des certificats de signature de code Comodo à 75 USD par an, c'est aussi bon marché que ce que je peux dire ( https : //author.tucows.com/ , section "Certificats de signature de code". C’est encore trop d’argent à dépenser, je n’ai donc pas essayé de savoir comment cela fonctionnait. Ce n’est pas que je puisse essayer. D’après ce que je peux dire, vous devez être un organisme enregistré pour acheter un certificat Comodo.
Pour ce qui est d’Ascertia, il est assez facile d’obtenir un certificat ( http: // www. ascertia.com/onlineCA/Issuer/CerIssue.aspx ), mais un tel certificat est aussi inutile qu'un certificat auto-émis car vous devez importer leur certificat racine avant de voir un effet.
Si vous avez un projet Open Source, vous pouvez obtenir un certificat de signature de code gratuit d'Unizeto.
Les étapes à suivre pour obtenir le certificat lui-même sont décrites en détail ici .
Une fois le certificat obtenu, procédez comme suit:
- récupérez la clé privée dans votre navigateur (par exemple, téléchargez-la au format .p12 depuis votre trousseau - ne définissez pas de mot de passe) et convertissez-la au format PEM via
openssl pkcs12 -in key.p12 -nodes -out private. clé -nocerts
-
Ouvrez le fichier .pem que vous avez téléchargé depuis Unicert, ajoutez votre clé privée dessous et la
clé publique de Certum Niveau III CA
à partir de ici sous la clé privée, ainsi il se présente comme suit:----- BEGIN CERTIFICATE ----- [votre certificat de Certum] ----- CERTIFICAT FINAL ----- ----- COMMENCER LA CLÉ PRIVÉE RSA ----- [la clé privée que vous venez de convertir à partir du fichier .p12 de votre trousseau] ----- FIN RSA PRIVATE KEY ----- ----- COMMENCER CERTIFICAT ----- [la clé publique Certum de niveau III que vous venez de télécharger] ----- CERTIFICAT FINAL -----
- Enregistrez ce fichier sous
cert_with_key_and_ca.pem
- Installez xpisign.py avec
installation par pip https://github.com /nmaier/xpisign.py/zipball/master
- Exécuter
xpisign -k cert_with_key_and_ca.pem unsigned.xpi signed.xpi
- Drag & amp; Déposez le
signed.xpi
dans Firefox et vous devriez voir le nom de l'auteur là où il y avait auparavant un message (Auteur non vérifié) à côté du nom de l'extension.