Google chrome extension 仅使用命令行界面在服务器上打包Chrome扩展

Google chrome extension 仅使用命令行界面在服务器上打包Chrome扩展,google-chrome-extension,continuous-integration,Google Chrome Extension,Continuous Integration,是否可以仅在带有CLI(Ubuntu服务器)的服务器上使用(*.pem)键打包chrome扩展 您可以使用应用程序开关--pack extension和--pack extension key,如中所述 基本上,在Windows上,您可以在终端中运行以下操作: chrome.exe --pack-extension=c:\myext --pack-extension-key=c:\myext.pem 它在Mac上也适用于: /Applications/Google\ Chrome.app/Co

是否可以仅在带有CLI(Ubuntu服务器)的服务器上使用(*.pem)键打包chrome扩展

您可以使用应用程序开关
--pack extension
--pack extension key
,如中所述

基本上,在Windows上,您可以在终端中运行以下操作:

chrome.exe --pack-extension=c:\myext --pack-extension-key=c:\myext.pem
它在Mac上也适用于:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --pack-extension=./myext --pack-extension-key=./myext.pem
在Ubuntu上应该是类似的


省略
——pack extension key
将自动为您创建一个密钥。

更新:chrome现在使用版本3,google发布的脚本只适用于版本2

版本2有官方的打包脚本,一个在Bash中,一个在Ruby中。 谷歌现在希望应用程序由他们打包,用于webstore

但是,这里有一个用于打包CRX3包的修改脚本:

#用途:将Chromium扩展目录打包为crx格式
如果测试$#-ne 2;然后
echo“用法:crxmake.sh”
出口1
fi
dir=$1
钥匙=2美元
名称=$(基本名称“$dir”)
crx=“$name.crx”
pub=“$name.pub”
sig=“$name.sig”
zip=“$name.zip”
tosign=“$name.presig”
binary_crx_id=“$name.crxid”
陷阱“rm-f”$pub“$sig”$zip“$tosign”$binary\U crx\U id”退出
#打开crx目录
cwd=$(pwd-P)
(cd“$dir”和&zip-qr-9-X“$cwd/$zip”)
#提取crx-id
openssl rsa-输入“$key”-输出-输出der | openssl dgst-sha256-二进制-输出“$binary_crx_id”
截断-s 16“$binary\u crx\u id”
#生成要签名的文件
(
#回显“$crmagic\U hex$版本\U hex$页眉\U长度$pub\U len\U hex$sig\U len\U hex”
打印“CRX3签名数据”
回声“001200 00A010”| xxd-r-p
类别“$binary\u crx\u id”“$zip”
)>“$tosign”
#签名
openssl dgst-sha256-二进制-签署“$key”<“$tosign”>“$sig”
#公钥
openssl rsa-pubout-outform DER<“$key”>“$pub”2>/dev/null
crmagic_hex=“43 72 32 34”#Cr24
版本_hex=“03 00”#3
收割台长度=“45 02 00”
收割台_chunk_1=“12 AC 04 0A A6 02”
标题\u chunk\u 2=“12 80 02”
页眉\u chunk\u 3=“82 F1 04 12 0A 10”
(
echo“$crmagic_hex$版本_hex$页眉_长度$页眉_区块_1”| xxd-r-p
猫“$pub”
回音“$header_chunk_2”| xxd-r-p
猫“$sig”
回声“$header_chunk_3”| xxd-r-p
类别“$binary\u crx\u id”“$zip”
)>“$crx”
echo“写入$crx”
此脚本根据源代码中的信息进行了修订:

以及标题的标题

此脚本可以轻松地在docker容器中使用,以实现自动化:

FROM alpine:3.9
RUN apk add --no-cache git openssl zip vim
COPY scripts/crxmake.sh /usr/local/bin/crxmake

谢谢,但我不能在ubuntu服务器上安装谷歌浏览器。它有太多的依赖性。你可以在2020年利用docker或VM@KhodeNAnyone:在Ubuntu上安装chrome很容易。您可以使用snapdNote。注意,此答案假设您使用的是具有2048位模数的RSA密钥。以下是1024位和4096的替换常数,但模数为:1024:
header\u length=“41 01 00”
header\u chunk\u 1=“12 A8 02 0A A2 01”
header\u chunk\u 2=“12 80 01”
4096:
header\u length=“45 04 00”
header\u chunk\u 1=“12 AC 08 0A A6 04”
header\u chunk\u 2=“12 80 04”
这里有一个来自一个旧的肮脏的Bashtard的提示:当你发现自己试图在一块命令上面添加注释时,比如
#extract crx id
#generate file to sign
,这应该是
函数generate_file_to_sign(){…}
,你应该在
main
函数中调用它(同样缺失)。我们可能不会剃脖子,但我们不是动物!