Как вы подписываете свои расширения Firefox?
-
02-07-2019 - |
Вопрос
Я разработал пару расширений для Firefox, и меня раздражает, что так сложно подписать расширение.Когда расширение не подписано, при его установке указывается "Автор не подтвержден", и для меня это просто выглядит неправильно.
У меня есть простой скрипт сборки, который создает мой файл .xpi из исходных текстов, и у меня есть лицензированная копия PKZip (которая, согласно ряду руководств, требуется для создания подписанного файла xpi, который требуется Firefox), но я не нашел способа получить бесплатный / дешевый сертификат, который действительно работает, или набор инструкций, которые делают это.
Поскольку мои расширения бесплатны, я не хочу тратить 400 долларов на коммерческий сертификат, но я не возражаю потратить 50 долларов или около того, чтобы это сделать.У меня есть компьютеры как с Linux, так и с Windows, хотя мой скрипт сборки в настоящее время использует Windows, и это было бы наиболее удобно в использовании.
Как вы решили эту проблему?Что мне нужно сделать, чтобы автоматически и безопасно подписывать мои расширения при их создании?
Редактировать:Я ценю отзывы в Google, но предлагаемые ими шаги недостаточно полны для того, чтобы на самом деле получить работающий сертификат.Чувство, которое я испытываю, напоминает мне эту классику:
Решение
Я использовал сертификат comodo для подписи XPIS.В то время это был самый дешевый вариант.
Я написал несколько постов на эту тему. Форма XPIт и инструкция по подписание использование инструмента командной строки Java.
Мой инструмент XPISigner - разработчик значительно упрощает процесс и может быть интегрирован в системы сборки.
Я удалил этот инструмент, так как он больше не работает с FF4 или выше.Источник доступен на http://code.google.com/p/xpisigner/ если кому-то захочется починить.
Другие советы
Избегайте сертификатов GoDaddy codesigning, поскольку необходимого промежуточного сертификата CA нет в Firefox по умолчанию.C= США, ST= Аризона, L= Скоттсдейл,O=GoDaddy.com \,Inc., OU=http://certificates.godaddy.com/repository ,CN=Перейти Защищенный центр сертификации Daddy,СЕРИЙНЫЙ НОМЕР=07969287'
Если вы войдете в систему с его помощью, ваши пользователи получат ошибки при подписании.
например ,
SIgning could not be verified. -260
То, что я нашел с помощью Google, было следующим: http://www.mercille.org/snippets/xpiSigning.php какие государства:
Если вам не нужен коммерческий сертификат или вы не можете его себе позволить, Констатация могу предоставить вам бесплатный сертификат, но превращение его в сертификат подписи кода требует некоторой дополнительной работы, о которой я подробно рассказал еще одна страница.
Я не могу сказать, что я это пробовал.И дальше http://developer.mozilla.org/en/Signing_a_XPI в нем говорится:
Самый дешевый универсально поддерживаемый (Mozilla, Java, Microsoft) сертификат кажется, предлагает Comodo Instant-SSL .Вы можете получить бесплатный сертификат для разработчиков с открытым исходным кодом от Unizeto Certum, но их корневой сертификат присутствует только в Mozilla Firefox и Opera (не Java или Microsoft).
Да, подписание XPI, к сожалению, довольно нетривиально.Я бы посоветовал поискать / опубликовать в группах новостей mozilla (dev-extensions, владельцы проекта @ mozdev, irc.mozilla.org), а также попытаться связаться с людьми, которые запустили это в работу.
Tucows продает сертификаты подписи кода Comodo за 75 долларов в год, насколько я могу судить, это настолько дешево, насколько это возможно (https://author.tucows.com/, раздел "Сертификаты подписи кода").Это все еще слишком много денег, чтобы я мог их потратить, поэтому я не стал пробовать, как это работает.Не то чтобы я мог попробовать, но из того, что я могу сказать, вам нужно быть зарегистрированной организацией, чтобы купить сертификат Comodo.
Что касается подтверждения, то получить сертификат достаточно просто (http://www.ascertia.com/onlineCA/Issuer/CerIssue.aspx) - но такой сертификат так же бесполезен, как и сертификат, выданный самостоятельно, потому что вам нужно было бы импортировать их корневой сертификат, прежде чем увидеть эффект.
Если у вас проект с открытым исходным кодом, вы можете получить бесплатный сертификат подписи кода от 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, и вы должны увидеть имя автора там, где раньше было (Автор не проверен) сообщение рядом с названием добавочного номера.