Firefox 忽略成功签名的 XPI 上的签名 - 如何诊断?

标签 firefox firefox-addon code-signing xpi

我创建了一个 Firefox 插件,一个 Win32 本地代码 DLL - 使用 Firebreath 。我正在 Windows 7/x64 上工作,并且仅针对 Windows。该插件本身运行良好,但我真的很难获得正确签名的 XPI。如果我不签署我的 XPI,FF 3.6 至 10(测试版)就会接受并安装它。当然,在安装过程中,它会将发布者列为(作者未验证)。所以,我花了一周时间调试签名过程...但 FF 9 和 10 仍然说(作者未验证)! FF 3.6 将签名的 XPI 视为无效而拒绝。

如何解决此问题?

重复一遍:我对 xpi 进行了签名,没有出现错误,并且生成的 XPI 在 FF 9 和 10 上成功安装,但 FF 仍然显示(作者未验证)

这是我用来签署 XPI 的批处理代码:

echo * clean out old signing folder and xpi
if exist package rmdir /S /Q package
if exist %package%.xpi del %package%.xpi
echo * copy in files for package
md package
xcopy ..\*.rdf package
md package\plugins
xcopy ..\build\bin\Plugin\Debug\*.dll package\plugins
echo * clean out certificate database
del *.db
echo * import our signing certificate
pk12util -d . -i %keyfile% -K %pwd% -w keypass.txt
echo * adjust trust on base, intermediate and root cert
certutil -M -d . -n "VeriSign" -t "c,c,C"
certutil -M -d . -n "VeriSign Class 3 Code Signing 2010 CA - VeriSign, Inc." -t "TC,TC,TC"
certutil -M -d . -n "%certname%" -t "u,u,Cu"
certutil -L -d .
echo * create signed package
signtool -d . -X -Z %package%.xpi -k "%certname%" -p %pwd% package

最佳答案

我在 Mozilla 工作,但这不是一个权威的答案,只是我四处询问的结果:

因此,本质上,每个证书颁发机构都具有 Mozilla 可能授予的三个信任位:他们可能信任它来签署网站、和/或邮件、和/或代码。您的证书来自 Mozilla 不信任的证书颁发机构来签署代码。 (这就是为什么在您的偏好中手动设置该位可以让它为您工作。)

我听说很少有人尝试在 xpi 中使用二进制代码,因此 Mozilla 并没有真正有组织的方法来找出哪些权限可以用来做什么。但是,您可以查看此列表:查看“代码信任位”:

https://spreadsheets.google.com/pub?key=ttwCVzDVuWzZYaDosdU6e3w&single=true&gid=0&output=html

例如(完全随机选择),ComSign Secured CA 设置了“网站”和“代码”信任位。

据我所知,Mozilla 公开讨论了向每个 CA 授予哪些权利,并定期重新评估每个 CA:

https://wiki.mozilla.org/CA:Schedule#Queue_for_Public_Discussion

关于Firefox 忽略成功签名的 XPI 上的签名 - 如何诊断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8790819/

相关文章:

html - Firefox 不会加载/渲染自定义字体

javascript - 如何在导航单击按钮上保持打开 Firefox 扩展弹出窗口

javascript - Firefox - 显示来自扩展程序/插件的网络通知

Iphone:如何验证消息验证码(Mac)

javascript - 如何在 C# 中验证 Javascript 的authenticode

ios - 该应用 ID 无法注册到您的开发团队

javascript - html5 和 js 中的地理定位 - 我拒绝但我想接受 - 如何重置?

javascript - 在浏览器中查看源代码时显示的源代码是否始终准确/完整?

html - Bootstrap 4 Card Flex Width 在 Firefox 上无法正常工作

html - 用于复制具有样式的页面元素的附加组件