Полезная информация

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№121-12-2007 12:59:20

evshi
Участник
 
Группа: Members
Зарегистрирован: 29-01-2007
Сообщений: 13
UA: Firefox 2.0

Процедура добавления подписи в плагин?

Здравствуйте.

Подскажите, пожалуйста, каким образом можно добавить подпись в свой плагин для Firefox? Т.е. написал плагин, но при установке он говорит, что плагин без подписи, как это можно исправить?

Отсутствует

 

№221-12-2007 13:09:53

TLemur
Забанен
 
Группа: Members
Зарегистрирован: 18-10-2004
Сообщений: 1764
UA: Firefox 2.0

Re: Процедура добавления подписи в плагин?

http://o-regan.org/releases/xpisigner1.6.zip

Программа для подписывания. Еще надо сертификат в формате PFX/PKCS#12.

Отсутствует

 

№318-08-2008 13:28:56

yAndre
Участник
 
Группа: Members
Зарегистрирован: 15-07-2008
Сообщений: 17
UA: Firefox 3.0

Re: Процедура добавления подписи в плагин?

TLemur пишет

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 не очень дружу.
Спасибо !

Отсутствует

 

№418-08-2008 15:25:45

banbot
Moderator
 
Группа: Moderators
Зарегистрирован: 23-12-2007
Сообщений: 5284
UA: Firefox 3.0

Re: Процедура добавления подписи в плагин?

yAndre
По моему проще всего подписать расширение, используя расширение Key manager


Do you feel lucky, punk?

Отсутствует

 

№521-08-2008 15:22:02

yAndre
Участник
 
Группа: Members
Зарегистрирован: 15-07-2008
Сообщений: 17
UA: Firefox 3.0

Re: Процедура добавления подписи в плагин?

Спасибо всем ответившим ! :beer:
Нелинейная оказалась эта задача - XPI подписывать :iron:
В конечном счете все решил командной строкой написанием БАТ-файла на след. разы

Отсутствует

 

№623-04-2009 18:16:32

david141
Участник
 
Группа: Members
Зарегистрирован: 23-04-2009
Сообщений: 52
UA: Firefox 3.0

Re: Процедура добавления подписи в плагин?

А дальше описать не судьба?

Отсутствует

 

№723-04-2009 18:40:42

yAndre
Участник
 
Группа: Members
Зарегистрирован: 15-07-2008
Сообщений: 17
UA: Firefox 3.0

Re: Процедура добавления подписи в плагин?

david141 пишет

А дальше описать не судьба?

не стОит писать в личку, достаточно здесь

я решил эту задачу совсем не так как предполагал изначально, задавая вопрос здесь. И, возможно, это далеко не самый простой вариант.
Постараюсь описать в ближ. дни (т.к реально ОЧЕНЬ не просто)

Отсутствует

 

№823-04-2009 19:24:52

david141
Участник
 
Группа: Members
Зарегистрирован: 23-04-2009
Сообщений: 52
UA: Firefox 3.0

Re: Процедура добавления подписи в плагин?

Спасибо

Отсутствует

 

№924-04-2009 12:58:04

yAndre
Участник
 
Группа: Members
Зарегистрирован: 15-07-2008
Сообщений: 17
UA: Firefox 3.0

Re: Процедура добавления подписи в плагин?

Сорри, возможно немного сумбурно:

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 заменяем на свое

Отсутствует

 

№1012-06-2010 14:23:12

david141
Участник
 
Группа: Members
Зарегистрирован: 23-04-2009
Сообщений: 52
UA: Firefox 3.6

Re: Процедура добавления подписи в плагин?

Третий пункт можно подробнее?

Отсутствует

 

№1115-06-2010 10:48:51

yAndre
Участник
 
Группа: Members
Зарегистрирован: 15-07-2008
Сообщений: 17
UA: Firefox 3.6

Re: Процедура добавления подписи в плагин?

david141 пишет

Третий пункт можно подробнее?

все есть в принципе по адресу, что я указал выше: https://developer.mozilla.org/En/Code_snippets:Signing_a_XPI
Вам надо только иметь свой сертификат
Делать свое описание это фактически делать перевод исходной страницы, а в переводах я, к сожалению, не силен

Отсутствует

 

№1215-02-2016 16:36:13

david141
Участник
 
Группа: Members
Зарегистрирован: 23-04-2009
Сообщений: 52
UA: Firefox 44.0

Re: Процедура добавления подписи в плагин?

Подпись ваших расширений Firefox
В отличие от Google в Mozilla разрешают распространять расширения для своего браузера не только через центральный репозиторий, но и на других сайтах. Это более либеральный подход, в то же время снижающий защищенность браузера.
Уже известны расширения, умеющие менять стартовую страницу или поисковик в браузере, и даже вставлять рекламу на сайты и запускать вредоносный код.
Mozilla по-прежнему не хочет ограничивать пользователей Firefox одним единственным репозиторием, и чтобы обойти актуальную проблему, добавляет в 2015 году подпись в расширениях.
Это позволит всем расширениям, находящимся в центральном репозитории получить лицензию о соответствии правилам Mozilla, и распространяться с полученной подписью на других сайтах.

node-png.156
Скачать:
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, они могут сделать специальный невидимый аккаунт, подписать расширение и по-прежнему распространять его только через свой сайт.
2672e3dff908b58d24e63c2e23fb9ced-png.157

ПРИМЕР ПОДПИСАННОГО РАСШИРЕНИЯ

Отредактировано david141 (19-02-2016 23:32:53)

Отсутствует

 

№1325-01-2017 03:40:22

Mozillafan
Участник
 
Группа: Members
Зарегистрирован: 02-05-2016
Сообщений: 16
UA: Firefox 51.0

Re: Процедура добавления подписи в плагин?

Здравствуйте.
Кто использует в разработке 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)

Отсутствует

 

№1425-01-2017 15:50:55

Mozillafan
Участник
 
Группа: Members
Зарегистрирован: 02-05-2016
Сообщений: 16
UA: Firefox 51.0

Re: Процедура добавления подписи в плагин?

Всё, разобрался. Команда build не нужна (зачем они это пишут на сайте?), web-ext собирает xpi из отдельных файлов и подписывает его, т. е. подписывать надо не zip, а папку с файлами расширения (при этом не важно, как она называется, при подписани она будет переименована).

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]