不久前,我所有的Firefox扩展都被同时自发禁用(转换为“旧版”状态)。

如何重新启用它们?
Firefox 66.0.3(64位) )

评论

Mozilla针对此问题的博客文章

Ubuntu 16.04中的Firefox Quantum 66.0.3(64位):已禁用about:config中必需的xpinstall.signatures.。他们需要几天的时间来发布修复程序,然后重新启用它。我似乎没有丢失任何设置。

这也会影响Tor浏览器捆绑软件,但不会影响所有Firefox衍生产品。 PaleMoon看起来不错,我看到很多人在谈论Waterfox。

#1 楼

问题

Mozilla用于签署附加组件的中间签署证书已经过期。这使Firefox认为使用该证书签名的加载项不受信任。问题已在Bugzilla 1548973和Mozilla的博客中得到跟踪。

解决方案0:将Firefox更新到66.0.5+或60.6.3+ ESR

Mozilla已发布Firefox 66.0。 .5(适用于台式机,Android和60.6.3 ESR),其中包括用于永久启用自5月3日起禁用的附加组件的永久性修复程序。”建议您将Firefox更新到最新版本。此更新取代了研究,这意味着如果您仅启用“研究”以获取此修复程序,则可以在更新到当前版本的Firefox后再次禁用它们。

对于未选择的用户为了更新到Firefox或Firefox ESR的当前版本,Mozilla计划发布一个更新,该更新将与Firefox 52至65版本一起使用。该计划是将其作为用户可安装的扩展。期望他们将在有更多信息时更新其博客文章。这是截至美国东部时间5月8日19:28可用的所有信息。

要在Windows或MacOS上更新Firefox版本,请单击右上角的菜单,然后选择“帮助”然后是“关于Firefox”。然后,该更新将自动下载,并在重新启动Firefox时将应用。如果您发行版的软件包管理器没有可用的更新,则您可能不得不求助于手动更新(使用首选方法)或尝试以下解决方案之一。

解决方案0.5:对于那些不提供更新的用户, t要更新

从2019-05-14开始,Mozilla的博客列出了可以为不希望更新的旧版Firefox用户安装的扩展(强调):



如果您正在运行Firefox版本61 – 65和1)尚未收到已部署的修补程序,而2)不想更新为当前版本(包括永久性修补程序):安装此扩展程序可解决安全证书过期问题并重新启动。 -启用扩展名和主题。
如果正在运行Firefox版本57 – 60:请安装此扩展名以解决过期的安全证书问题并重新启用扩展名和主题。
如果您正在运行Firefox版本47 – 56:安装此扩展程序可解决过期的安全证书问题并重新启用扩展程序和主题。




解决方案1:适用于大多数台式机用户的自动解决方案:“研究”

[注:以下修补程序要求您启用“研究”,这使Mozilla可以自动下载代码以在受影响的配置文件中的Firefox上运行(大多数用户只有一个配置文件)。另外,它要求您启用“允许Firefox将技术和交互数据发送到Mozilla”。如果您出于隐私考虑已将其关闭,则应考虑是否要这样做。您不必将这些设置保持启用状态,但是需要启用它们才能运行可解决此问题的研究。对于不想启用“研究”和向Mozilla进行数据报告的用户,请参阅解决方案3(如下所示;默认情况下,解决方案2会将数据发送给Mozilla以及他们的合作伙伴)。通过使用替代方法3(直接下载)安装该研究报告(解决方案1)可能无法打开向Mozilla的报告功能,但我尚未对此进行测试。]

Mozilla已针对如果您启用了“研究”功能,则桌面用户在Release,Beta版和Nightly版上会遇到问题。从由Kev Needham编写的Mozilla博客中,该博客已获得CC BY-SA 3.0的许可:


该修复程序将在接下来的几个小时内自动应用到后台。无需采取积极措施即可使附加组件再次运行。

请注意:此修复程序不适用于Firefox ESR或Android版Firefox。我们正在努力为这两个版本发布修复程序,并将在此处和社交媒体上提供更新。

为了在短时间内提供此修复程序,我们正在使用研究系统。该系统默认情况下处于启用状态,除非禁用研究,否则无需采取任何措施。 Firefox用户可以通过以下方法检查是否启用了研究功能:



Firefox选项/首选项->隐私和安全->允许Firefox安装和运行研究功能(向下滚动以查找设置) )




重新启用加载项后,可以再次禁用研究

该研究需要六个小时才能应用于Firefox。要检查是否已应用此修复程序,可以在位置栏中输入“ about:studies”。如果该修复程序处于活动状态,您将看到“ hotfix-update-xpi-signing-intermediate-bug-1548973”,如下所示:



您可能还会看到“列出了hotfix-reset-xpi-verification-timestamp-1548973”,它是修复程序的一部分,可能在“活动研究”或“已完成研究”部分中。


Mozilla正在运行他们知道有些用户报告说,即使同时安装了上述两项研究,他们的扩展仍保持禁用状态。该错误已在错误1549078中进行跟踪。

可以更快地安装研究报告

如果启用了研究报告,则Firefox最多可能需要6个小时才能检查这些新研究报告。

替代方法1:将Firefox设置为更快地检查研究结果

用户David在博客中的评论中建议采取以下措施,以使Firefox更快地检查研究结果:


如果您临时更改app.normandy.run_interval_seconds中的“ about:config”的值,重新启动,然后在事后将其更改回21600(六个小时),则可以将六小时的等待时间缩短为秒工作。


我建议您不要将其设置在60秒以下。可以肯定的是,自Firefox上次检查研究以来已经超过1分钟,否则您已经安装了研究。使用60之类的数字将给您足够的时间来安装研究并将其设置回21600,而无需Firefox连续检查研究。只要准备好在安装研究后将其更改回21600,然后再次重新启动Firefox。替代方法2 :(不起作用)创建启用了研究的新配置文件并将该研究复制到您的主配置文件中

我尝试从另一个配置文件复制研究/修补程序。手动将研究/修补程序文件添加到另一个配置文件不起作用。以这种方式加载时,它被认为是常规扩展。但是,它似乎使用了WebExtension Experiments,在Firefox的发行版中未启用普通扩展。

很可能可以修改配置文件目录中的配置文件以使其正常工作(它们大多是JSON)。但是,我没有深入研究它来找出需要的内容。

替代方法3:直接下载研究内容

您似乎可以直接安装主要的“研究” ”直接转到用于下载它的URL。我首先在Mozilla博客文章的Samuel Vuorela的评论中看到了hotfix-update-xpi-intermediate@mozilla.com.xpi的URL。

Machavity对这个问题有一个答案,描述了他从该URL下载研究的经验,并详细描述了该URL在Mozilla的研究供稿中可以找到的位置。正是他的回答使我可以尝试直接下载它,因此,如果您发现直接安装URL有用,则推荐他的回答是适当的。在该答案中,描述了在直接下载/安装研究* .xpi文件的功能时,这样做不会导致此修复程序显示在研究列表或加载项列表中。如果Firefox以后通过其研究更新下载它,则会显示为研究。

上述URL上的下载内容与hotfix-update-xpi-intermediate@mozilla.com完全匹配。通过普通的“研究”源安装后,.xpi文件存储在扩展目录中。在浏览器控制台中查看表明,直接从下载中安装不会出现与从先前下载的副本中手动安装* .xpi相同的问题(即,它不具有使通过替代2安装非解决方案2:使用Developer Edition或Nightly并禁用签名检查(在Firefox版本66.0.3的Debian和Ubuntu 16.04中也报告了功能)

如果您在about:config中安装了Firefox Developer Edition或Firefox Nightly,则可以将xpinstall.signatures.required设置为false。这将禁用扩展签名测试。

Firefox Nightly是Firefox开发最前沿的每夜版本。仅在您愿意忍受可能存在的错误的情况下才建议使用。

Developer Edition和Nightly都将“数据发送给Mozilla-有时是我们[Mozilla的]合作伙伴-帮助我们[Mozilla]处理问题并尝试想法。了解共享的内容。“

Firefox允许您在一台计算机上一次安装多个版本的Firefox。就个人而言,我安装了多个版本。一个相当简单的解决方案是安装Developer Edition并将xpinstall.signatures.required设置为false。然后,您可以使用Developer Edition几天,直到Mozilla弄清楚并修复了所有问题。然后,您可以仅通过运行Firefox发行版来使用该版本。

xpinstall.signatures.required设置为false不适用于Mac或Windows上的Firefox Beta或发行版。这样做没有效果。在Linux上,取决于您的发行版,该设置可能会受到尊重,并且可以在Firefox发行版的某些发行版上使用。


解决方案3:在发行版/测试版上禁用签名检查

首选解决方案是使用上述“研究”。但是,如果这对您不起作用,则可以通过禁用签名检查来解决此问题。

签名检查是一项安全功能。禁用它会降低Firefox的安全性。一旦Mozilla解决了其证书问题,建议您删除此代码以重新启用签名检查。安装此代码以禁用签名检查后,您应该注意仅安装完全信任的扩展(例如Mozilla附加组件上托管的扩展)。

注意:此答案的其余部分是最初从我如何禁用Firefox加载项的签名检查的答案中复制而来?在Stack Overflow上,但已被修改。

在Firefox的发行(所有)版本中禁用附加签名检查

Firefox 66+(可能是60+)版本

以下说明将禁用Firefox中针对安装文件的Firefox配置文件的签名检查。您将要在Firefox Profile目录下的chrome目录中添加一些文件。

我已经在Firefox 66.0.3+上对此进行了测试。

从Firefox 69+开始,除了以下说明之外,还需要将toolkit.legacyUserProfileCustomizations.stylesheets中的true设置为about:config。如果它不存在,那么您将需要创建它(右键单击上下文菜单中的“新建”)作为布尔选项。有关此选项添加的更多详细信息,请参见Bugzilla1541233。

IIRC,Firefox 65需要一些稍微不同的代码。我相信当我将其修改为Firefox 66,但我不确定。

如果将try中的catch设置为javascript.enabled,则此方法将不起作用。该配置选项的默认值为false,因此除非您已专门将其禁用,否则应该没问题。

我们将使用一种允许您在浏览器中运行任意JavaScript代码的技术Firefox配置文件目录中存储的文件的上下文。我从Haggai Nuchi的GitHub存储库(与Firefox Quantum兼容的userChrome.js)中找到了实现方法。此代码在Firefox启动时运行一次,然后在每次打开新窗口时再次运行。

在Windows上,您的Firefox配置文件目录为about:config。如果只有一个配置文件,则true将是%appdata%\Mozilla\Firefox\Profiles\[profileID]目录中的唯一目录。如果您有多个配置文件,则需要选择要将此hack安装到的配置文件。

进入配置文件目录后,需要创建一个名为[profileID]的目录,如果尚不存在。您将在下面的目录中添加以下2个文件:


%appdata%\Mozilla\Firefox\Profiles
chrome

然后在userChrome.css中需要以下代码,即可从Haggai Nuchi的GitHub存储库中获得:

/*Enable userChrome.js */
/* Copyright (c) 2017 Haggai Nuchi
Available for use under the MIT License:
https://opensource.org/licenses/MIT
*/

@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);

toolbarbutton#alltabs-button {
    -moz-binding: url("userChrome.xml#js");
}


在个人资料的chrome目录中添加这两个文件后,您将需要重新启动Firefox。您可以通过查找“禁用附加签名”来验证代码是否正在运行。 (在FF66 +中;在Firefox的早期版本中可能不会显示控制台的输出)。您可能需要重新安装它们,或者至少从userChrome.xml手动启用它们。您可以通过将* .xpi文件拖放到Firefox窗口并确认要安装来安装它们,或转到Mozilla附加组件上的附加页面。

如果您想从Mozilla附加组件获取任何特定扩展名的* .xpi文件,可以通过右键单击“安装”按钮并选择“另存为”或“删除”来下载该文件。

Firefox版本<57(左右)

如果FF <57有问题,请参阅我的回答“如何禁用Firefox加载项的签名检查” ?在堆栈溢出。我相信我已经将该问题的注释纳入了所有内容,但是这些注释描述了其他人遇到的一些问题。我知道我在Firefox 54,55,52ESR和FF56上使用它。该答案中的(经过某种程度的修改)代码。进行这些更改将使您可以使用修改的Firefox发行版将未签名的加载项安装到配置文件中。对于大多数人来说,这将是您的主要Firefox安装。但是,如果您安装了多个版本,则需要在每次安装中进行此修改。但是,一旦进行了修改,它们将保留在正常的Firefox更新中。

您将需要在Firefox安装目录中添加几个文件。您可以在mozillaZine上找到Windows,Linux和Mac OS的安装目录示例列表。最常见的安装目录是:


Windows


C:\ Program Files \ Mozilla Firefox \
C:\ Program Files (x86)\ Mozilla Firefox \


Linux


/ usr / lib / firefox- <版本>


OSX


/Applications/Firefox.app



添加第一个文件

然后,您需要在下面添加代码作为文件userChrome.css(Windows:userChrome.xml):


<?xml version="1.0"?>
<!-- Copyright (c) 2017 Haggai Nuchi
Available for use under the MIT License:
https://opensource.org/licenses/MIT
 -->
<!-- This has been modified from the version available from
https://github.com/nuchi/firefox-quantum-userchromejs/blob/master/userChrome.xml
to include code by Makyen to disable add-on signing. If you want to load an additional JavaScript
file of your own, please see the original file by Haggai Nuchi.
This modified version is released under both the MIT and CC BY-SA 3.0 licenses.
 -->

<bindings id="generalBindings"
   xmlns="http://www.mozilla.org/xbl"
   xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
   xmlns:xbl="http://www.mozilla.org/xbl">

  <binding id="js" extends="chrome://global/content/bindings/toolbarbutton.xml#toolbarbutton-badged">
    <implementation>
        <constructor><![CDATA[
            //Worked on FF65 and lower. The 3 different resources are used in different versions of FF.
            try {
                Components.utils.import("resource://gre/modules/addons/XPIProvider.jsm", {}).eval("SIGNED_TYPES.clear()");
            } catch(e) {}
            try {
                Components.utils.import("resource://gre/modules/addons/XPIInstall.jsm", {}).eval("SIGNED_TYPES.clear()");
            } catch(e) {}
            try {
                Components.utils.import("resource://gre/modules/addons/XPIDatabase.jsm", {}).eval("SIGNED_TYPES.clear()");
            } catch(e) {}

            //Tested on Firefox 66
            try {
                const {XPCOMUtils} = ChromeUtils.import("resource://gre/modules/XPCOMUtils.jsm");
                XPCOMUtils.defineLazyModuleGetters(this, {
                    XPIDatabase: "resource://gre/modules/addons/XPIDatabase.jsm",
                });
                XPIDatabase.SIGNED_TYPES.clear();
                console.log('Add-on signing disabled.');
            } catch(e) {
                console.error(e);
            }
        ]]></constructor>
    </implementation>
  </binding>
</bindings>


添加第二个文件

您还需要将以下代码添加为文件about:addons(Windows:<Install directory>/defaults/pref/disable-add-on-signing-prefs.js):1

//This file should be placed in the defaults/pref directory (folder)
//within the Firefox installation directory with the with the name:
//  disable-add-on-signing-prefs.js
pref("general.config.obscure_value", 0);
pref("general.config.filename", "disable-add-on-signing.js");

结果结果

与Firefox,我使用该解决方案已有一段时间了,它安装了一些为自己使用而构建的扩展,并测试了我正在使用的扩展的新版本(当我想在Release版本而不是Firefox中测试Developer Edition或Nightly)。

注意:在<Install directory>\defaults\pref\disable-add-on-signing-prefs.js中,Firefox可能会显示(在某些情况下) e加载项已启用(未变灰),但有文字说明该加载项“无法验证且已被禁用”。文字不正确!该附加组件已启用并起作用。

它如何工作

[这是对较早代码的解释,但当前代码非常相似。]

<Install directory>/disable-add-on-signing.js中,将<Install directory>\disable-add-on-signing.js定义为about:addons。为了使附件需要签名,其类型必须是该resource://gre/modules/addons/XPIProvider.jsm的成员。 const SIGNED_TYPES方法用于清除Set中的所有条目。这将导致没有需要签名的附加类型(代码1,代码2)。

如果需要,可以单独禁用以下任何类型的签名检查:SetSet.prototype.clear()Set"webextension"

评论


如果在about:studies页面上没有看到任何有效的研究,请尝试禁用防火墙。

–DxTx
19年5月4日在19:52

仅供参考,解决方案3仅在about:config中未将javascript.enabled设置为False时有效。当Mozilla在2019年5月04日杀死所有加载项时,我暂时禁用了Javascript以防止加载令人反感的,通常被阻止的内容-然后发现这样做阻止了此解决方案3的正常运行。

–dbc
19年5月4日23:00

备选方案3可能需要注意的一件事是,您首先需要保存文件,然后将其拖放到Firefox中。至少,我必须这样做。由于某种原因,自动下载的学习修复不适用于我。

–严重性一
19年5月5日在7:06

Firefox 56的另一种解决方案:stackoverflow.com/a/55990005

– Athari
19年5月5日在8:10

@interfect如果恶意软件可以访问您的文件以更改配置文件目录中的内容,那么与可能在FF中添加恶意扩展名相比,您遇到的问题更大。在引入扩展名签名时,问题在于Mozilla希望阻止从Internet上安装扩展名,而该扩展名尚未通过审核流程才能在Mozilla附加组件中列出。此外,他们希望能够将在野外发现的恶意附件列入黑名单。威胁模型并不是要防止恶意代码已经在FF之外的用户计算机上运行。

–麦肯
19年5月6日在21:18

#2 楼

中间代码签名证书已过期。这意味着不再信任所有使用证书签名的加载项。在这种情况下,浏览器正在完成任务。

Mozilla将需要让附加组件辞职和/或推出新证书。正在进行修复工作。除非您位于开发人员代码分支上,否则您现在无法解析,可以进入about:config并将xpinstall.signatures.required设置为false

这不适用于大多数用户,如果不重新设置,可能会给您带来一些安全隐患。最好的选择是等待。我想他们会在几个小时内解决此问题。

https://bugzilla.mozilla.org/show_bug.cgi?id=1548973

评论


来自Reddit的帖子演示了如何在此期间手动临时加载插件:reddit.com/r/firefox/comments/bkcjoa/…

– Marc.2377
19年5月4日在3:27

显然,只要您通过Firefox偏好设置->隐私和安全->允许Firefox在Firefox中安装和运行研究功能启用了研究,则应该很快推出更新:discourse.mozilla.org/t/…

–Mokubai♦
19年5月4日在12:35

更新已经推出,例如我的Firefox已经修复。

–罗伯特·朗森(Robert Longson)
19年5月4日在13:12



@Graham是的,我敢肯定,Firefox每6个小时检查一次更新,因此,鉴于该修复在一小时前已经推出,因此在接下来的5个小时内您将得到修复。

–罗伯特·朗森(Robert Longson)
19年5月4日14:12



Mozilla针对此问题的博客文章

–user453487
19年5月4日在16:16

#3 楼

此问题是由于附加证书的大量过期所致。正如其他人提到的,正在修复。

要临时重新启用加载项,可以导航到about:config并将
xpinstall.signatures.required设置为false。 />这将重新启用已安装的具有过期证书的附加组件,但不建议长期保持启用状态。我建议在问题解决后立即将其关闭。

评论


xpinstall修复仅适用于开发人员或夜间构建。大多数用户不应该这样做!

–肖恩
19年5月4日,3:12

我正在运行版本66.0.3,对我来说很好。正如我在答案中提到的,不建议长期使用。

– Ulincsys
19年5月4日,3:13

我使用的是同一发行版,但对我不起作用。

– Marc.2377
19年5月4日,3:28

似乎此解决方法仅适用于Linux发行版,请参见news.ycombinator.com/item?id=19823928:“但是,如果您正在运行稳定版或Beta版,则只能在Linux下使用。在Windows和MacOS上您需要下载Nightly或Developer Edition。”

–ks1322
19年5月5日在9:15

@ ks1322这很有意义,我使用Ubuntu作为我的主要操作系统,因此我什至没有在Windows版Firefox上遇到此问题。我只是假设所有标志在每个平台上均能正常工作。

– Ulincsys
19年5月6日在5:49

#4 楼

我找到了获取此修补程序的另一种方法。与上面的修复方法相同,但是修改设置以尝试下载研究版无法在我的计算机上进行。我发现了一个GitHub问题,描述了另一种安装此修补程序的方法


完整的Mozilla Studies feed(称为Normandy)位于https://normandy.cdn.mozilla.net/api / v1 / recipe /

该修补程序称为修补程序:更新XPI签名中间件[错误1548973]

它提供的URL实际上是一个插件。如果单击此链接(与提要相同),将要求您安装插件。忽略警告并安装https://storage.googleapis.com/moz-fx-normandy-prod-addons/extensions/hotfix-update-xpi-intermediate@mozilla.com-1.0.2-signed.xpi


这样做后,我的插件立即又开始工作了。我不知道您是否必须先启用研究(我已启用我的研究)。我也没有在扩展程序或“研究”窗口中显示它,因此请注意,您可能无法将其禁用(可能要等到“研究”自行更新)。

更新:我的浏览器终于​​退出了研究供稿和修补程序显示在about:studies中(将其放在您的URL栏中以查看所有研究),实际上您可以在其中将其删除。因此,所有这些操作可以更快地将其修复到Firefox中,但请确保启用Makyen的答案中概述的研究

评论


重新启动Firefix可能会在研究列表中显示它。要么显示,要么自动下载。

–亚历山大·奥玛拉(Alexander O'Mara)
19年5月5日在2:42



我修改了下载时间,然后重新启动了六次。 FWIW,此方法立即可用

–Machavity
19年5月5日,下午2:44

另外,有人报告仅启用研究并不能解决问题。目前还不清楚他们的机器是否不会下载文件

–Machavity
19年5月5日,下午2:47

Firefox似乎不允许您忽略该警告:“ Firefox阻止了该站点要求您在计算机上安装软件。”

–桅杆
19年5月5日在10:36

#5 楼

尽管公认的答案提到了量子之前的版本(FF <57),但它对我不起作用(我使用的是firefox ESR-52.9)。经过几个小时的研究,我设法解决了这个问题。我是怎么做的:
抽象
抽象地讲,该解决方案有3个步骤:

获取更新的证书
安装更新的证书
重置附加组件状态

当然,应该先备份个人资料,然后再继续。
详细信息


从mozilla下载修补程序。
https:// storage.googleapis.com/moz-fx-normandy-prod-addons/extensions/hotfix-update-xpi-intermediate@mozilla.com-1.0.2-signed.xpi


提取它(.xpi只是.zip),然后在其中打开{提取的文件夹} /experiments/skeleton/api.js。


从.js文件中复制base64编码的中间证书并粘贴到新的文本文件中。该证书如下所示。只需复制双引号(“”)字符串(MII ...东西)


 let intermediate = "MII...




解码base64编码的证书并保存作为.der证书。


转到options-advanced-certificates-Authorities并将证书安装为CA。信任它以识别软件开发人员。


打开您的个人资料页面,然后删除extensions.json,extensions.ini。
警告:它将重置您的加载项启用/安装状态!在继续此步骤之前,请备份您的个人资料。


重新启动FF并检查问题是否解决。



#6 楼

解决此问题的更新应自动推送。如果不是,请确保启用允许Firefox安装和运行研究的选项。

从https://blog.mozilla.org/addons/2019/05/04/update-复制about-add-ons-in-firefox /


为了在短期内提供此修复程序,我们使用了研究系统。
默认情况下启用此系统,并且没有除非已禁用研究,否则需要采取措施。 Firefox用户可以通过以下方法检查是否已启用研究:

Firefox Options/Preferences -> Privacy & Security -> Allow Firefox to install and run studies (scroll down to find the setting)