尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

如何生成 Automatisch 的 ENCRYPTION_KEY 与 WEBHOOK_SECRET_KEY 以保护第三方凭据?

如何生成 Automatisch 的 ENCRYPTION_KEY 与 WEBHOOK_SECRET_KEY 以保护第三方凭据? 如何生成 Automatisch 的 ENCRYPTION_KEY 与 WEBHOOK_SECRET_KEY 以保护第三方凭据【免费下载链接】automatischThe open source Zapier alternative. Build workflow automation without spending time and money.项目地址: https://gitcode.com/GitHub_Trending/au/automatisch自托管 Automatisch 时有两个环境变量决定了你的数据是否受保护ENCRYPTION_KEY用于加密你与第三方服务建立的连接中保存的凭据WEBHOOK_SECRET_KEY用于校验 webhook 请求。Automatisch 使用 AES 规范美国 FIPS 标准对第三方服务的凭据做加密与解密见 Credentials 文档。如果部署时没有为这两个变量生成随机值凭据加密和 webhook 校验就无从谈起。本文覆盖 Docker Compose 与docker run两条官方安装路径见 安装指南生成两个密钥、写入对应配置、启动并确认服务正常。两个密钥各自的作用配置文档的环境变量表对二者的定义如下变量类型默认值用途ENCRYPTION_KEYstring无空用于存储加密凭据的密钥WEBHOOK_SECRET_KEYstring无空用于校验 webhook 请求的密钥两者都没有默认值必须自行生成。官方文档在三处安装指南、配置文档、Credentials 文档都给出了同一条警告请小心对待ENCRYPTION_KEY和WEBHOOK_SECRET_KEY。它们用于加密第三方服务的凭据并校验 webhook 请求。一旦更改你已有的连接和流程将不再继续工作。因此操作顺序是先在一套全新环境中生成密钥并写入配置启动后再也不要改动。生成随机密钥安装指南给出的生成命令是openssl rand -base64 36该命令在本地终端执行输出一段随机 Base64 字符串。为两个变量各执行一次分别得到ENCRYPTION_KEY和WEBHOOK_SECRET_KEY的取值——两个值必须不同且生成后妥善保存后文的配置里要用到且一旦丢失将无法恢复已加密的凭据。路径一Docker Compose 部署时写入密钥仓库中的 docker-compose.yml 在main和worker两个服务里都以无值引用的方式列出了这两个变量environment: - ENCRYPTION_KEY - WEBHOOK_SECRET_KEY - APP_SECRET_KEY配置文档说明了覆盖方式修改docker-compose.yml文件即可覆盖环境变量并特别提醒main和worker两个服务都要改因为这些变量两边都可能用到。将上面生成的两段随机字符串分别填入main与worker服务的环境变量中下面的ENCRYPTION_KEY 生成值、WEBHOOK_SECRET_KEY 生成值需要替换为你执行openssl rand -base64 36得到的输出两个服务必须使用完全相同的值services: main: environment: - ENCRYPTION_KEYENCRYPTION_KEY 生成值 - WEBHOOK_SECRET_KEYWEBHOOK_SECRET_KEY 生成值 # ...其余变量保持原样 worker: environment: - ENCRYPTION_KEYENCRYPTION_KEY 生成值 - WEBHOOK_SECRET_KEYWEBHOOK_SECRET_KEY 生成值 # ...其余变量保持原样保存后按安装指南启动docker compose up路径二docker run 部署时写入密钥使用单镜像方式时Automatisch 分为main和worker两个服务两者使用同一镜像、同一套环境变量仅 worker 额外设置WORKERtrue。官方提供了示例.env模板其中ENCRYPTION_KEY和WEBHOOK_SECRET_KEY留空待填——安装指南明确要求我们提供了示例环境变量文件但你应该调整为包含你自己的值。编辑.env文件把生成的随机字符串填入对应行示例模板中与这两个密钥并列的APP_SECRET_KEY同样需要填入自己的值ENCRYPTION_KEYENCRYPTION_KEY 生成值 WEBHOOK_SECRET_KEYWEBHOOK_SECRET_KEY 生成值然后分别启动两个服务两者共用同一个./.env文件# 启动 main docker run --env-file./.env automatischio/automatisch # 启动 worker docker run --env-file./.env -e WORKERtrue automatischio/automatisch验证密钥已生效启动后可以按以下两个方式确认对应 安装指南 的检查步骤访问界面浏览器打开http://localhost:3000能看到 Automatisch 界面即说明服务已正常启动。安装指南还提供了一个开箱即用的示例账号邮箱userautomatisch.io、密码sample登录后记得从设置页改掉邮箱和密码。密钥缺失时的现象如果两个变量为空或未设置后端在启动加载配置时会直接抛出错误对应源码为 packages/backend/src/config/app.jsENCRYPTION_KEY environment variable needs to be set! WEBHOOK_SECRET_KEY environment variable needs to be set!看到容器因这类错误退出说明环境变量没有传递进容器——回到上一步检查docker-compose.yml两个服务是否都改了或.env文件docker run路径是否带了--env-file。密钥设置完成后不要再改动再次强调文档给出的限制ENCRYPTION_KEY和WEBHOOK_SECRET_KEY一旦投入使用后发生更改已有的连接和流程将不再继续工作——因为凭据是用旧ENCRYPTION_KEY加密存储的webhook 校验也依赖旧的WEBHOOK_SECRET_KEY。正确的做法是只在初始部署或一套全新环境时生成这两个值生成后把两个原始值备份到安全的地方这是日后恢复加密凭据的唯一依据升级 Automatisch 版本时使用git pull origin main加docker compose up --force-recreate --build不要顺手改动这两个变量的值。如果你的部署还需要调整其他生产环境变量如HOST、PROTOCOL、PORT等完整的变量表见 配置文档的 Environment Variables 一节。【免费下载链接】automatischThe open source Zapier alternative. Build workflow automation without spending time and money.项目地址: https://gitcode.com/GitHub_Trending/au/automatisch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表