Страницы: 1
Здравствуйте.
Подскажите, пожалуйста, каким образом можно добавить подпись в свой плагин для Firefox? Т.е. написал плагин, но при установке он говорит, что плагин без подписи, как это можно исправить?
Отсутствует
http://o-regan.org/releases/xpisigner1.6.zip
Программа для подписывания. Еще надо сертификат в формате PFX/PKCS#12.
запускаю из ком. строки как написано в readme.txt
xpisigner.cmd "сертификат Thawte Code Signing CA" "пароль" "папка с файлами" "XPI-file"
далее говорит след. :
XPISigner v1.6 (http://o-regan.org/xpisigner-secure-your-firefox-extensions) Copyright 2007 - Kevin O'Regan Excluding: [META-INF/zigbert.rsa, META-INF/manifest.mf, META-INF/zigbert.sf] java.lang.ClassCastException: org.bouncycastle.asn1.DERObjectIdentifier cannot be cast to org.bouncycastle.asn1.DERInteger at org.bouncycastle.asn1.pkcs.Pfx.<init>(Unknown Source) at org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineLoad(Unknown Source) at java.security.KeyStore.load(Unknown Source) at org.oregan.xpi.bc.XPISignerImpl.sign(Unknown Source) at org.oregan.xpi.XPISigner.generateXPI(Unknown Source) at org.oregan.xpi.Main.doSign(Unknown Source) at org.oregan.xpi.Main.main(Unknown Source) Signing failed:org.bouncycastle.asn1.DERObjectIdentifier cannot be cast to org.bouncycastle.asn1.DERInteger
в чем может быть беда ? сорри, если вопрос глупый, но с JAVA не очень дружу.
Спасибо !
Отсутствует
yAndre
По моему проще всего подписать расширение, используя расширение Key manager
Do you feel lucky, punk?
Отсутствует
А дальше описать не судьба?
не стОит писать в личку, достаточно здесь
я решил эту задачу совсем не так как предполагал изначально, задавая вопрос здесь. И, возможно, это далеко не самый простой вариант.
Постараюсь описать в ближ. дни (т.к реально ОЧЕНЬ не просто)
Отсутствует
Сорри, возможно немного сумбурно:
1) Сначала готовим Install Manifests - https://developer.mozilla.org/en/Install_Manifests, https://developer.mozilla.org/en/install.rdf
2) делаем update.rdf (пока "рыбу", сам он чуть позже пригодится)
пока просто прописываем в них необх. инфу
3) Читаем https://developer.mozilla.org/En/Code_snippets:Signing_a_XPI
устанавливаем по ссылкам на этой странице Network Security Services (NSS), Get Netscape Portable Runtime
и делаем базу сертификатов. Эта задача поначалу отняла у меня максимум времени. Надо делать внимательно по пунктам и неспеша.
На выходе у нас должен получиться подписанный пакет, который при установке в ФФ покажет название вашего сертификата и установится.
Но этот пакет еще не будет поддерживать обновление. Здесь нам уже и понадобится update.rdf.
В поле updateURL install.rdf пишем путь, где в дальнейшем будет лежать update.rdf.
Устанавливаем
- https://developer.mozilla.org/en/McCoy
- HashTab (http://beeblebrox.org/hashtab/) (обязательно выбрать при установке "Интеграцию в Shell")
(в п.3 мы сделали базу сертификатов, п.э. все действия по ее подготовки далее опускаем. Нам надо только подписать пакет уже существующим ключом.)
К этом моменту у нас уже должны быть подготовлены все файлы для установки включая "install.rdf" и "update.rdf".
* Запускаем McCoy (если запуск программы происходит впервые, то создаем ключ).
* Выбираем п. "Add Key to Install Manifest" и в диалоге выбора файла указываем наш "install.rdf"
* Создаем XPI-файл (для этого по следам п. 3 лучше сделать БАТ-файл)
* Выбираем в Проводнике XPI-файл,
o по правой кн. мышки открываем Свойства файла и переходим на вкладку "Контрольные суммы"
o выбираем п. "SHA-1", правая кн. мышки - "Copy"
o вписываем этот ключ в "update.rdf" для соотв XPI-файла в след. формате: em:updateHash="sha1:04EC582CE95D486D59FB257B5CD3308911429254"
* Возвращаемся в McCoy, активируем п. "Sign" и в диалоге выбора файла выбираем наш "update.rdf"
* Для проверки подписи используем п. "Verify"
* Готово !
Теперь, если установить Плагин, положить "update.rdf" в место указанное в updateURL ("install.rdf") и увеличить № версии Плагина, то при поиске обновлений (Главное Меню - Инструменты - Дополнения - кн. "Найти обновления") должны увидеть , что доступна нов. версия Плагина
Внимание !
Backing up data
If you need to backup your data or move it from one machine to another you need to take a copy of the profile folder. This is located in:
* %APPDATA%\Mozilla\McCoy (Windows)
* ~/.mozilla/mccoy (Linux)
* ~/Library/Application Support/McCoy (Mac OS X)It is highly recommended that you back up your profile folder and store it in a safe location whenever you create a new key; without a backup, there is no way to recover your private keys if they are lost!
Источник: https://developer.mozilla.org/en/McCoy
Исходный install.rdf
<?xml version="1.0"?> <RDF:RDF xmlns:em="http://www.mozilla.org/2004/em-rdf#" xmlns:NC="http://home.netscape.com/NC-rdf#" xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <RDF:Description RDF:about="urn:mozilla:install-manifest" em:id="my-plugin@mysite.com" em:name="My Plugin" em:version="1.0.0.1" em:homepageURL="http://www.mysite.com/" em:targetPlatform="WINNT_x86-msvc"> <em:targetApplication RDF:resource="rdf:#$MpRJv"/> </RDF:Description> <RDF:Description RDF:about="rdf:#$MpRJv" em:id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" em:minVersion="2.0" em:maxVersion="3.0.*" /> </RDF:RDF>
Исходный update.rdf
<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <RDF:Description about="urn:mozilla:extension:my-plugin@mysite.com"> <em:updates> <RDF:Seq> <RDF:li resource="urn:mozilla:extension:my-plugin@mysite.com:1.0.1"/> </RDF:Seq> </em:updates> </RDF:Description> <RDF:Description about="urn:mozilla:extension:my-plugin@mysite.com:1.0.1"> <em:version>1.0.10</em:version> <em:targetApplication> <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>2.0</em:minVersion> <em:maxVersion>3.0.*</em:maxVersion> <em:updateLink>http://share.mysite.com/plugin/plugin-1.0.1.xpi</em:updateLink> </Description> </em:targetApplication> </RDF:Description> </RDF:RDF>
соотв. mysite, my plugin заменяем на свое
Отсутствует
Третий пункт можно подробнее?
все есть в принципе по адресу, что я указал выше: https://developer.mozilla.org/En/Code_snippets:Signing_a_XPI
Вам надо только иметь свой сертификат
Делать свое описание это фактически делать перевод исходной страницы, а в переводах я, к сожалению, не силен
Отсутствует
Подпись ваших расширений Firefox
В отличие от Google в Mozilla разрешают распространять расширения для своего браузера не только через центральный репозиторий, но и на других сайтах. Это более либеральный подход, в то же время снижающий защищенность браузера.
Уже известны расширения, умеющие менять стартовую страницу или поисковик в браузере, и даже вставлять рекламу на сайты и запускать вредоносный код.
Mozilla по-прежнему не хочет ограничивать пользователей Firefox одним единственным репозиторием, и чтобы обойти актуальную проблему, добавляет в 2015 году подпись в расширениях.
Это позволит всем расширениям, находящимся в центральном репозитории получить лицензию о соответствии правилам Mozilla, и распространяться с полученной подписью на других сайтах.
Скачать:
Node.js
Установить по умолчанию в C:\Program Files\nodejs
Получите свой API Keys на сайте addons.mozilla.org.
----------------
Устанавливаем из командной строки jpm командой npm install jpm --global (читать по теме )или тут.
Создаете папку: mkdir hello-ffext
заходите в неё: cd hello-ffext
снова командная строка: jpm init - создаст вам скелет приложения HelloWorld.
jpm xpi - сборка расширения в пакет.
Отпровляете расширение на addons.mozilla.org на подпись.
Командой: jpm sign --api-key "Ваш JWT issuer" --api-secret "Ваш JWT secret"
Или
jpm sign --api-key "Ваш JWT issuer" --api-secret "Ваш JWT secret" --xpi search@pusk.by_2.2.4.xpi
Ваше расширение будет отправлено на сервер Mozilla; Mozilla проверит и если все работает вы увидите что-то вроде этого:
JPM [info] Downloaded:
JPM [info] ./simple_extension-0.0.1-fx.xpi
JPM [info] SUCCESS
Имейте в виду, что вы не можете подписать одну и ту же версию дважды. Вы получите следующее сообщение об ошибке:
JPM [error] Server response: Version already exists. ( status: 409 )
JPM [info] FAIL
Храните значения api-key в секрете. Любой кто в состоянии прочитать эти значения может подписать расширение от вашего имени.
Заходим в Управление моими представлениями и видим наше подписанное расширение.
Если разработчики по каким-то причинам не хотят чтобы их расширение было доступно на addons.mozilla.org, они могут сделать специальный невидимый аккаунт, подписать расширение и по-прежнему распространять его только через свой сайт.
ПРИМЕР ПОДПИСАННОГО РАСШИРЕНИЯ
Отредактировано david141 (19-02-2016 23:32:53)
Отсутствует
Здравствуйте.
Кто использует в разработке web-ext, может сталкивались с проблемой, что невозможно подписать расширение? Файлы валидацию проходят (lint — 0 ошибок), zip собирается, а при попытке подписать, выдаёт такое:
sign: InvalidManifest: Could not read manifest.json file at C:\Users\User\manifest.json: Error: ENOENT: no such file or directory, open 'C:\Users\User\manifest.json'.
Манифест нормальный, с помощью run всё запускается и работает… В чём может быть причина?
Отредактировано Mozillafan (25-01-2017 03:43:14)
Отсутствует
Всё, разобрался. Команда build не нужна (зачем они это пишут на сайте?), web-ext собирает xpi из отдельных файлов и подписывает его, т. е. подписывать надо не zip, а папку с файлами расширения (при этом не важно, как она называется, при подписани она будет переименована).
Отсутствует
Страницы: 1