Как вы подписываете расширения Firefox?
Я разработал несколько расширений для Firefox, и меня раздражает, что так сложно подписать расширение. Когда расширение не подписано, оно говорит "Автор не проверен", когда оно установлено, и для меня это выглядит неправильно.
У меня есть простой сценарий сборки, который собирает мой файл .xpi из исходных кодов, и у меня есть лицензионная копия PKZip (которая, согласно ряду руководств, необходима для создания подписанного xpi файла, который требуется Firefox), но я не нашел способ получить бесплатный/дешевый сертификат, который действительно работает, или набор инструкций, которые делают свое дело.
Поскольку мои расширения бесплатны, я не хочу тратить 400 долларов на коммерческий сертификат, но я не возражаю потратить около 50 долларов, чтобы сделать это. У меня есть машины с Linux и Windows, хотя мой сценарий сборки в настоящее время использует Windows, и это было бы наиболее удобно для использования.
Как вы решили это? Что мне нужно сделать, чтобы автоматически и безопасно подписывать мои расширения при их сборке?
Изменение: я ценю хиты Google, но шаги, которые они предоставляют, не достаточно, чтобы на самом деле получить сертификат, который работает. Ощущение, которое я получаю, напоминает мне эту классику:
![Then a miracle occurs... alt text]()
Ответы
Ответ 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, и вы должны увидеть имя автора, перед тем как появилось сообщение (автор не проверено) рядом с именем расширения.