操作环境
操作系统:Windows 10 中文家庭版 64 位
Firefox 版本:66.0.3 (64-bit) 英文国际版
问题说明
2019年5月4日,我发现我的 Firefox 浏览器显示插件的位置一个插件都没有了,如图 1:
之后,打开 Firefox 的扩展页面 about:addons
, 看到所有扩展都有了如下报错并被禁用,如图 2:
报错的文本内容如下:
XXX could not be verified for use in Firefox and has been disabled.
随后,我在“火狐社区(mozilla.com.cn)”中找到了对这个问题的说明和解决方案:
http://mozilla.com.cn/thread-413298-1-1.html
火狐社区对该问题的解释是:
由于 AMO(Firefox 扩展中心)中间签名证书过期,导致 Firefox 认为这些扩展是未签名的,所以会被禁用。
http://mozilla.com.cn/thread-413298-1-1.html
解决过程
依次打开火狐的”Options / Privacy & Security / Firefox Data Collection and Use”, 地址:
about:preferences#privacy
勾选”Allow Firefox to install and run studies”.
之后,点击该选项后面的”View Firefox studies”可以查看 Firefox 曾经安装和正在安装的一些实验项目(地址:about:studies
.), 如图 3:
我的 about:studies
页面如图 4,但是,可以看到,在我进行了上面的操作之后,并没有和本次事件有关的实验项目的安装记录:
不过,在火狐社区该帖子(http://mozilla.com.cn/thread-413298-1-1.html)的下面的附件中给出了修复问题的扩展文件,可以手动下载之后拖到 Firefox 浏览器中安装,安装完成之后就恢复正常了,所有插件都可以正常使用了,如图 5 和 图 6:
问题分析
下载下来的扩展文件是后缀为 .xpi
的文件,全名如下:
hotfix-update-xpi-intermediate@mozilla.com-1.0.2-signed.xpi
使用 7-ZIP 对该文件解压后得到如下文件与文件夹(如图 7 所示):
在 META-INF
文件夹中包含如下三个文件:
- manifest.mf
- mozilla.rsa
- mozilla.sf
其中 mozilla.rsa
应该是和 Firefox 扩展中心的中间签名有关的文件了。在火狐社区中,Mozilla 员工 (ID: xuyuehang) 发表的回复中说明了 hotfix-update-xpi-intermediate@mozilla.com-1.0.2-signed.xpi
这个插件解决该问题的方式:
大约2小时前我们推送了部分修复:使用相同的名称/密钥生成了一个新的中间证书,但更新了有效时限,通过Firefox内置的热更新推送给用户,应该大多数用户会在未来几小时内看到扩展已恢复,已经有部分用户收到了更新
http://mozilla.com.cn/thread-413298-1-1.html
根据来自网络上的消息,自从 2016 年夏天的 FF48 后,正式版和 beta 版的 Firefox 安装的插件必须被 AMO 签名,Nightly 版和 Developer Edition 版可以加载未签名的插件,而这次问题发生的直接原因是 AMO 证书过期导致的。根据我查找到的资料,”AMO” 的全称应该是”Addons Mozilla Org”, 其网址为”https://addons.mozilla.org”.
MozillaWiki 上关于”AMO”的词条:https://wiki.mozilla.org/AMO
Firefox 官方对插件签名的说明:https://developer.mozilla.org/zh-CN/docs/Mozilla/Add-ons/Distribution
Firefox 官方对扩展和插件签名的说明:https://wiki.mozilla.org/Add-ons/Extension_Signing