Chrome WebExtension-私人商店和企业环境

时间:2018-11-16 10:14:08

标签: google-chrome google-chrome-extension enterprise group-policy web-ext


我正在尝试在私人商店中发布Chrome扩展程序,并通过组策略进行传播。
为了做到这一点,我使用了以下参考文献:

我100%确保正确配置了GPO(如果我使用相同的GPO传播在Chrome WebStore上发布的扩展程序,则可以正常使用)。
不幸的是,我的私人扩展名(Configure the list of force-installed apps and extension部分的行:[my_extension_id];[my_xml_url])和示例扩展名(行:bcanfnleljfidkjhhfknjjiicdonddad;https://sites.google.com/site/pushcrx/privatewebstore/2hrtimer.xml)都未安装在域控制的计算机中。
我的问题是:我是在做错什么还是Google Chrome政策已更改并且上面的示例已经过时了?
非常感谢,
丹妮尔

1 个答案:

答案 0 :(得分:0)

要在Google Chrome商店之外发布,部署和更新Chrome扩展程序,您必须遵循以下指南。

1。建筑
首先,必须定义CRX和XML名称以及将其部署到的URL。
对于这个示例有什么疑问:

  • CRX名称为myCRX.crx,它将部署在URL https://my.server/resources/myCRX.crx
  • XML名称将为myXML.xml,并将其部署在URL https://my.server/resources/myXML.xml

2。 JSON清单
this链接中所指定,update_url(可以在其中找到更新XML)必须包含在JSON清单中:为此,必须将以下行插入JSON文件。

{
    [...],
    "update_url": "https://my.server/resources/myXML.xml",
    [...]
}

3。 CRX和私钥创建
可以按照this指南执行CRX和PEM的创建。
在该过程结束时,将创建两个文件(CRX和PEM):之后,有必要将它们分别重命名为myCRX.crxmyPEM.pem

4。公钥提取
可以通过从PEM所在的文件夹中执行以下命令来提取公钥:

openssl.exe rsa -in myPEM.pem -pubout > myPEM_pub.pem

此后,将创建一个包含公用密钥(名为myPEM_pub.pem)的新文件。

5。扩展程序ID提取
可以按照this指南执行扩展ID提取。
特别是,必须下载extension_id.py文件,将其复制到包含myPEM_pub.pem文件的文件夹中,然后从同一文件夹中执行以下命令:

python extension_id.py myPEM_pub.pem

注意:如果您使用的是Python 3,则必须从

修改extension_id.py文件的第94行
with file(first_arg) as f: 

with open(first_arg) as f:

命令输出如下:

[...]
Extension ID: <myExtensionID>
[...]

6。 XML文件创建
为了正确部署扩展,有必要创建更新XML文件(在此示例中,命名为myXML.xml)。
在这种情况下,其内容为:

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='<myExtensionID>'>
    <updatecheck codebase='https://my.server/resources/myCRX.crx' version='<myExtensionVersion>' />
  </app>
</gupdate>

注意:有必要用正确的值替换以下条目

  • <myExtensionID>,第5段的输出
  • https://my.server/resources/myCRX.crx在第1段中定义
  • <myExtensionVersion>在清单文件中定义

7。发布
为了正确配置环境,有必要在第1段中定义的URL上发布第3段中创建的CRX和第6段中创建的XML。

8。部署
可以按照this指南进行扩展的部署。
特别是,必须将以下行添加到强制安装的应用程序列表中,并进行扩展:

<myExtensionID>;https://my.server/resources/myXML.xml

注意:有必要用正确的值替换以下条目

  • <myExtensionID>,第5段的输出
  • https://my.server/resources/myCRX.crx在段落中定义 1

9。更新-创建CRX
为了更新扩展名,必须创建一个具有更新的版本号(在此示例中为<myNewExtensionVersion>)的新CRX软件包。
可以按照this指南执行CRX创建。
注意:为了使此过程正常进行,必须选择在第3段中创建的密钥myPEM.pem。

10。更新-发布
为了发布更新,必须将第9段中创建的CRX重命名为myCRX.crx,并修改第6段中创建的XML中的版本号(见下文)。

<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
  <app appid='<myExtensionID>'>
    <updatecheck codebase='https://my.server/resources/myCRX.crx' version='<myNewExtensionVersion>' />
  </app>
</gupdate>

此后,要执行更新,最后要做的就是在第1段中定义的URL上发布CRX和XML。