В основном ваша подпись должна включать полную цепочку сертификатов вплоть до доверенного корневого сертификата VeriSign, минуя «Открытый первичный центр сертификации VeriSign Class 3 - G5» с неизвестным доверием к Mozilla ( ошибка 602107 ), так какпо умолчанию цепочка заканчивается слишком рано.
Ваш XPI в настоящее время подписан вашим сертификатом, без дополнительной цепочки сертификатов, что означает, что браузер пользователя будет доверять издателю вашего сертификата немедленно.Вы можете проверить это с помощью инструмента jarsigner
Mozilla (см. Инструменты NSS Mozilla ):
Tools\nss-3.11>jarsigner -verify -verbose -certs my-old.xpi
2057 Thu Sep 15 15:17:44 CEST 2011 META-INF/zigbert.rsa
sm 87 Thu Sep 15 15:17:44 CEST 2011 chrome.manifest
X.509, CN=Company Name inc., OU=General, OU=Digital ID Class 3 - Microsoft Software Validation v2, O=Company Name inc., L=City, ST=State, C=XX
[certificate will expire on 26.4.13 0:59]
(показывает только вывод для 1-го файла)
Вам нужнодобавить еще несколько сертификатов для завершения цепочки к сертификату, которому по умолчанию явно доверяют в браузере конечного пользователя.В конце это должно выглядеть так:
jarsigner -verify -verbose -certs my-newly-signed.xpi
2057 Thu Sep 15 15:17:44 CEST 2011 META-INF/zigbert.rsa
sm 87 Thu Sep 15 15:17:44 CEST 2011 chrome.manifest
X.509, CN=Company Name inc., OU=General, OU=Digital ID Class 3 - Microsoft Software Validation v2, O=Company Name inc., L=City, ST=State, C=XX
[certificate will expire on 26.4.13 0:59]
X.509, CN=VeriSign Class 3 Code Signing 2010 CA, OU=Terms of use at https://www.verisign.com/rpa (c)10, OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
[certificate is valid from 8.2.10 1:00 to 8.2.20 0:59]
[KeyUsage extension does not support code signing]
X.509, CN=VeriSign Class 3 Public Primary Certification Authority - G5, OU="(c) 2006 VeriSign, Inc. - For authorized use only", OU=VeriSign Trust Network, O="VeriSign, Inc.", C=US
[certificate is valid from 8.11.06 1:00 to 8.11.21 0:59]
[KeyUsage extension does not support code signing]
X.509, OU=Class 3 Public Primary Certification Authority, O="VeriSign, Inc.", C=US
[certificate is valid from 23.5.06 19:01 to 23.5.16 19:11]
Для этого вам необходимо:
- удалить встроенные сертификаты VeriSing, не являющиеся явно доверенными, из базы данных сертификатовс помощью
certutil
инструмента Mozilla - Создайте цепочку доверия сертификатов для вашего сертификата вплоть до «Общедоступного первичного центра сертификации 3» Microsoft.
- подписывают xpi (на этот раз полная цепочка сертификатовбудет включен в подпись)
- проверьте xpi с
jarsigner
, как описано выше - протестируйте xpi в Firefox - вы не должны видеть " Автор не проверен "больше.
Предупреждения:
- Биты доверия во встроенном хранилище сертификатов Firefox на самом деле имеют три состояния (доверенные, ненадежные и неизвестные), хотя отображаются только какФлажок с 2 состояниями в графическом интерфейсе FF (проверено = доверенное, непроверенное = недоверенное ИЛИ неизвестно).По умолчанию доверие равно unknown , что позволяет обходить сертификат VeriSign, как описано.Если вы когда-либо включали доверие через флажки FF, оно все равно будет работать, но если вы снимите флажок доверия, доверие будет установлено на ненадежное , что предотвратит обход этого сертификата в цепочке.Самый простой (только?) Способ вернуть его обратно к исходному неизвестному - это удалить ваш профиль Firefox.
- После того, как Mozilla в конечном итоге включит бит доверия для подписи кода (см. Ошибку выше), вам все равно нужно будет подписать какэто если вы хотите поддерживать более старые версии Firefox.
Надеюсь, это поможет!