Подтвердить что ты не робот

Как вы подписываете расширения Firefox?

Я разработал несколько расширений для Firefox, и меня раздражает, что так сложно подписать расширение. Когда расширение не подписано, оно говорит "Автор не проверен", когда оно установлено, и для меня это выглядит неправильно.

У меня есть простой сценарий сборки, который собирает мой файл .xpi из исходных кодов, и у меня есть лицензионная копия PKZip (которая, согласно ряду руководств, необходима для создания подписанного xpi файла, который требуется Firefox), но я не нашел способ получить бесплатный/дешевый сертификат, который действительно работает, или набор инструкций, которые делают свое дело.

Поскольку мои расширения бесплатны, я не хочу тратить 400 долларов на коммерческий сертификат, но я не возражаю потратить около 50 долларов, чтобы сделать это. У меня есть машины с Linux и Windows, хотя мой сценарий сборки в настоящее время использует Windows, и это было бы наиболее удобно для использования.

Как вы решили это? Что мне нужно сделать, чтобы автоматически и безопасно подписывать мои расширения при их сборке?

Изменение: я ценю хиты Google, но шаги, которые они предоставляют, не достаточно, чтобы на самом деле получить сертификат, который работает. Ощущение, которое я получаю, напоминает мне эту классику:

alt text

4b9b3361

Ответ 1

Я использовал сертификат comodo для подписания XPI. Это был самый дешевый вариант в то время.

Я написал несколько сообщений в XPI Forma и для signing с помощью инструмента командной строки java.

Мой инструмент XPISigner значительно упрощает процесс и интегрируется в системы сборки.

Я удалил инструмент, поскольку он больше не работает с FF4 или выше. Источник доступен на http://code.google.com/p/xpisigner/, если кто-то чувствует себя как исправление.

Ответ 2

Избегайте сопоставления сертификатов GoDaddy, присваивающих сертификаты, поскольку необходимый промежуточный сертификат CA не находится в Firefox по умолчанию.   C = US, ST = Arizona, L = Scottsdale, O = GoDaddy.com \, Inc., OU = http://certificates.godaddy.com/repository,CN=Go Daddy Secure Certification орган, SERIALNUMBER = 07969287'

Если вы подпишете с ним, ваши пользователи получат с ним ошибки подписи.

например.

SIgning could not be verified. -260

Ответ 3

То, что я нашел с Google, было следующим: http://www.mercille.org/snippets/xpiSigning.php, который гласит:

Если вы не хотите коммерческого сертификат или не может позволить себе, Ascertia может предоставить вам бесплатный сертификата, но превратив его в сертификат подписи кода требует некоторых дополнительная работа, которую я подробно описал другая страница.

Я не могу сказать, что я пробовал. И на http://developer.mozilla.org/en/Signing_a_XPI говорится:

Самый дешевый универсальный (Mozilla, Java, Microsoft) сертификат похоже, Comodo Instant-SSL предложение. Вы можете бесплатно получить сертификат для разработчиков с открытым исходным кодом от Unizeto Certum, но их корень сертификат присутствует только в Mozilla Firefox и Opera (не Java или Microsoft).

Ответ 4

Да, подписание XPI, к сожалению, довольно нетривиально. Я бы посоветовал искать/размещать в новостных группах mozilla (dev-расширения, владельцы проектов @mozdev, irc.mozilla.org), а также пытаться связаться с людьми, которые получили его для работы.

Ответ 5

Tucows продает сертификаты подписи кода Comodo за 75 долларов в год, что так же дешево, как и от того, что я могу сказать (https://author.tucows.com/, "Сертификаты подписи кода" ). Это все еще слишком много денег для меня, поэтому я не пробовал, как это работает. Не то чтобы я мог попробовать, из того, что я могу сказать, вам нужно быть зарегистрированной организацией, чтобы купить сертификат Comodo.

Что касается Ascertia, получение сертификата достаточно просто (http://www.ascertia.com/onlineCA/Issuer/CerIssue.aspx), но такой сертификат не имеет ничего общего с самооценкой, потому что вам нужно будет импортировать свой корневой сертификат перед тем, как увидеть эффект.

Ответ 6

Если у вас есть проект с открытым исходным кодом, вы можете получить бесплатный сертификат подписи кода от Unizeto.

Шаги по получению самого сертификата подробно описаны здесь.

Как только у вас есть сертификат, сделайте следующее:

  • получить секретный ключ из вашего браузера (например, загрузить его как .p12 из вашей брелка - не устанавливать пароль) и преобразовать его в формат PEM через openssl pkcs12 -in key.p12 -nodes -out private.key -nocerts
  • Откройте ваш .pem файл, который вы загрузили из Unicert, добавьте свой секретный ключ под ним, а Public Key of Certum Level III CA из здесь под закрытым ключом, поэтому он выглядит так:

    -----BEGIN CERTIFICATE----- [your certificate from Certum] -----END CERTIFICATE----- -----BEGIN RSA PRIVATE KEY----- [the private key you just converted from the .p12 file from your keychain] -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE----- [the Certum Level III CA public key you just downloaded] -----END CERTIFICATE-----

  • Сохраните этот файл как cert_with_key_and_ca.pem
  • Установите xpisign.py с помощью pip install https://github.com/nmaier/xpisign.py/zipball/master
  • Выполнить xpisign -k cert_with_key_and_ca.pem unsigned.xpi signed.xpi
  • Перетащите signed.xpi в Firefox, и вы должны увидеть имя автора, перед тем как появилось сообщение (автор не проверено) рядом с именем расширения.