docs: 私有分发改为固定私钥新ID, 同步策略与安装说明

This commit is contained in:
yinjun.chen1
2026-09-24 18:13:32 +08:00
parent a235fcd624
commit 1c7526f2c4
3 changed files with 93 additions and 5 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionInstallForcelist]
"1"="dpcmpkmjkcenjpfcmkoohkcnhbomgmej;file:///E:/gitea/Chrome%20extension/auto-login/updates.xml"
"1"="lddeabellmfjcgfopecibkfemdkbnmhb;file:///E:/gitea/Chrome%20extension/auto-login/updates.xml"
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome]
"ExtensionInstallSources"="file:///*"
"ExtensionInstallSources"="file:///*"
+3 -3
View File
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<gupdate xmlns='http://www.google.com/update2/response' protocol='2.0'>
<app appid='dpcmpkmjkcenjpfcmkoohkcnhbomgmej'>
<updatecheck codebase='file:///E:/gitea/Chrome%20extension/auto-login.crx' version='1.0.0' />
<app appid='lddeabellmfjcgfopecibkfemdkbnmhb'>
<updatecheck codebase='file:///E:/gitea/Chrome%20extension/auto-login/release/auto-login.crx' version='1.0.0' />
</app>
</gupdate>
</gupdate>
+88
View File
@@ -0,0 +1,88 @@
# 私有分发安装说明 — Auto Login Manager
本扩展通过**企业策略 + 自托管 crx** 在受控机器上安装,不走 Chrome 应用商店。
特征是扩展 ID 固定、可离线/内网安装、可覆盖更新。
---
## 1. 关键标识
| 项 | 值 | 说明 |
| --- | --- | --- |
| 扩展 ID | `lddeabellmfjcgfopecibkfemdkbnmhb` | **由 `release/auto-login.pem` 公钥派生,固定不变** |
| 扩展包 | `release/auto-login.crx` | 用上面同一把私钥签名 |
| 版本 | 1.0.0 | 与 `manifest.json` 一致 |
| 策略文件 | `install-policy.reg` | 强制安装注册表 |
| 更新清单 | `updates.xml` | 指向 crx 的更新入口 |
> ⚠️ **私钥即身份**:一旦丢失或更换 `auto-login.pem`,扩展 ID 会变成新的,所有已装机器上的旧 ID 扩展将失效,需重装。**务必在安全位置备份 `release/auto-login.pem`,切勿提交到 git / 外发。**
---
## 2. 产物清单(release/)
| 文件 | 作用 |
| --- | --- |
| `auto-login.crx` | 已签名扩展包,分发给目标机或作为更新 codebase |
| `auto-login.pem` | 固定私钥,**仅用于打包签名,勿分发** |
| `auto-login-v1.0.0.zip` | 上传 Web Store / 或作留档的 zip(CWS 用;私有分发用 crx) |
| `crx-runtime/` | 打包源目录(解包后的运行时文件),勿手动编辑,由 zip 解出 |
---
## 3. 安装(在目标 Windows 机器上)
目标机需满足:Chrome 已关闭或已退出(导入策略后重启 Chrome 生效)。
1. **放置更新清单与 crx**:确保目标机能访问到
`updates.xml`(内含 `codebase` 指向的 `auto-login.crx` 路径)。
> 策略使用 `file:///E:/gitea/...` 本地路径。当前为**单机本地策略**;
> 若要推给多台/异地机器,把 `updates.xml` 与 `auto-login.crx` 放到内网 HTTP(S) 服务,
> 并把 `codebase` 与注册表里的路径改为主机可访问的 `https://` 地址(见第 5 节)。
2. **导入策略**:双击 `install-policy.reg`,确认导入注册表:
- `HKLM\SOFTWARE\Policies\Google\Chrome\ExtensionInstallForcelist` → `lddeabellmfjcgfopecibkfemdkbnmhb;file:///.../updates.xml`
- `HKLM\SOFTWARE\Policies\Google\Chrome\ExtensionInstallSources` → `file:///*`
3. **重启 Chrome**,扩展会被强制安装(不受"未从应用商店安装"限制)。
> 备选(不推荐):`chrome://extensions` → 开发者模式 → 加载已解压(加载 `release/crx-runtime/`)
> —— 仅适合临时测试,正规分发请用第 3 节策略方式。
---
## 4. 发新版本(重打包)
```powershell
# 1) 改版本号(manifest.json 的 version 字段,如 1.0.1)
# 2) 重建运行时目录
node scripts/package.mjs # 产出 release/auto-login-v1.0.1.zip
# 3) 解压为打包源
node -e "require('adm-zip');const z=new require('adm-zip')('release/auto-login-v1.0.1.zip');require('fs').rmSync('release/crx-runtime',{recursive:true,force:true});z.extractAllTo('release/crx-runtime')"
# 4) 用同一把私钥重新签名 crx
& "C:\Program Files\Google\Chrome\Application\chrome.exe" --pack-extension="E:\gitea\Chrome extension\auto-login\release\crx-runtime" --pack-extension-key="E:\gitea\Chrome extension\auto-login\release\auto-login.pem"
# 产物为 release\crx-runtime.crx → 改名为 release\auto-login.crx
# 5) 更新 updates.xml 的 version 为新版本号
```
> 每次都**必须用同一把 `release/auto-login.pem`**,否则 ID 会变化、旧端点失效。
---
## 5. 分发范围提示(如实告知)
- 当前 `install-policy.reg` + `updates.xml` 使用 `file:///` 本地路径,**仅适用于本机/同一文件共享**。
- 较新版 Chrome 对企业策略安装依赖可靠的更新源,Google 逐步弱化 `file://` 方式。
若要推给多台/异地同事,正规模是:
1. 把 `auto-login.crx` 与 `updates.xml` 放到一个内网可达的 **HTTPS 服务**(如 Nginx);
2. 把 `updates.xml` 的 `codebase` 和 `install-policy.reg` 里的地址改为该服务的 `https://...` URL;
3. 分发 `install-policy.reg`(内网或域策略下发)给目标机。
- 本 `install-policy.reg` 写入的 `ExtensionInstallSources=file:///*` 仅为支持本地安装,多机场景建议同步收敛该来源。
---
## 6. 与 Web Store 公开上架的区别
- 本目录相关文件仅用于**私有分发**(crx + 策略强制安装)。
- 若你同时在做 Chrome 应用商店上架,那是另一条链路(上传 zip + Store Listing),
与本文的 crx/策略互不影响。