通过 HTTP 更新自托管扩展
Updating self-hosted extensions through HTTP
我正在将我基于 SDK 的 Firefox 扩展转换为 WebExtensions,并且我遇到了更新扩展的问题。当前扩展托管在我自己的域(这是一个 HTTP 域),以及 update.rdf 文件。
现在,对于基于 SDK 的附加组件,只要使用 McCoy 工具对更新清单进行签名并且清单中提供了更新文件的有效哈希值,就可以通过 HTTP 进行更新。除此之外,install.rdf 将保存用于签署 update.rdf[=23 的密钥的 public 密钥部分=].
似乎没有使用网络扩展来执行此操作的选项(public 密钥没有清单条目,也没有更新清单(.json) 签名条目).
这是否意味着 Firefox 将只允许自托管扩展通过 HTTPS 进行更新?这将如何影响当前托管在 HTTP 域上的基于 SDK 的扩展?他们能收到(至少一次)更新吗?
您似乎已经确定,基于 WebExtensions 的附加组件的 update.rdf 必须通过 HTTPS 而不是 HTTP 提供。 update.rdf 文件的 URL 必须是 HTTPS。 documentation for the update_url
property in the manifest.json applications
key 在这一点上是明确的:
update_url
is a link to an add-on update manifest. Note that the link must begin with "https". This key is for managing extension updates yourself (i.e. not through AMO).
无法使用可供其他类型的附加组件使用的备用安全方法,即提供包含在扩展中的 updateKey
(and signing the update.rdf) in an install.rdf 文件。
基于附加 SDK 的扩展和其他类型的非 WebExtensions 附加组件,将继续能够通过 HTTP 在他们一直在做的同样的方式。
如果您的问题是将附加组件从基于附加 SDK 的附加组件转换为基于 WebExtensions 的附加组件,那么您将需要对该扩展进行更新,从而更改 URL 从中提供更新。这可以是在过渡到 WebExtensions 之前的某个版本中,也可以是同时。无论哪种方式,它都只是附加组件的新版本(用 update.rdf 表示,通过 HTTP 提供并适当签名)。该新版本将有一个 update_url
(WebExtensions) or updateURL
(所有其他类型),其中 URL 使用 HTTPS 方案。随后的所有 update.rdf 文件将通过 HTTPS 提供。
我正在将我基于 SDK 的 Firefox 扩展转换为 WebExtensions,并且我遇到了更新扩展的问题。当前扩展托管在我自己的域(这是一个 HTTP 域),以及 update.rdf 文件。
现在,对于基于 SDK 的附加组件,只要使用 McCoy 工具对更新清单进行签名并且清单中提供了更新文件的有效哈希值,就可以通过 HTTP 进行更新。除此之外,install.rdf 将保存用于签署 update.rdf[=23 的密钥的 public 密钥部分=].
似乎没有使用网络扩展来执行此操作的选项(public 密钥没有清单条目,也没有更新清单(.json) 签名条目).
这是否意味着 Firefox 将只允许自托管扩展通过 HTTPS 进行更新?这将如何影响当前托管在 HTTP 域上的基于 SDK 的扩展?他们能收到(至少一次)更新吗?
您似乎已经确定,基于 WebExtensions 的附加组件的 update.rdf 必须通过 HTTPS 而不是 HTTP 提供。 update.rdf 文件的 URL 必须是 HTTPS。 documentation for the update_url
property in the manifest.json applications
key 在这一点上是明确的:
update_url
is a link to an add-on update manifest. Note that the link must begin with "https". This key is for managing extension updates yourself (i.e. not through AMO).
无法使用可供其他类型的附加组件使用的备用安全方法,即提供包含在扩展中的 updateKey
(and signing the update.rdf) in an install.rdf 文件。
基于附加 SDK 的扩展和其他类型的非 WebExtensions 附加组件,将继续能够通过 HTTP 在他们一直在做的同样的方式。
如果您的问题是将附加组件从基于附加 SDK 的附加组件转换为基于 WebExtensions 的附加组件,那么您将需要对该扩展进行更新,从而更改 URL 从中提供更新。这可以是在过渡到 WebExtensions 之前的某个版本中,也可以是同时。无论哪种方式,它都只是附加组件的新版本(用 update.rdf 表示,通过 HTTP 提供并适当签名)。该新版本将有一个 update_url
(WebExtensions) or updateURL
(所有其他类型),其中 URL 使用 HTTPS 方案。随后的所有 update.rdf 文件将通过 HTTPS 提供。