跳转到主要内容
⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版
第三方签名验证是 Dify 社区版 功能。Dify 云版本集中管理签名,不开放这些控制选项。
自托管 Dify 默认强制执行签名验证。第三方签名验证允许管理员安全地安装不在市场上的插件,而无需完全禁用验证。 两种场景:

管理员签署已批准的插件

管理员审核来自可信开发者的 .difypkg 文件,并在安装前使用自己的密钥进行签名。

开发者提供已签名的插件

开发者签署 .difypkg 并发布匹配的公钥。信任该开发者的管理员将该公钥添加到验证列表中。
两种情况的机制相同:生成密钥对,使用私钥签名,使用公钥验证。

生成密钥对

dify signature generate -f your_key_pair
当前目录中会生成两个文件:
文件用途
your_key_pair.private.pem签署插件(保密)
your_key_pair.public.pem验证签名(公开分享)
妥善保管私钥。任何拥有私钥的人都可以签署插件,而这些插件将通过信任您公钥的安装实例的验证。

签署和验证插件

1

签署软件包

dify signature sign your_plugin_project.difypkg -p your_key_pair.private.pem
在同一目录中生成 your_plugin_project.signed.difypkg
2

验证已签名的软件包

dify signature verify your_plugin_project.signed.difypkg -p your_key_pair.public.pem
在分发或安装之前确认签名匹配。
如果省略 -p 参数,dify signature verify 将使用 Dify 市场公钥进行验证。任何未由 Dify 签署的插件在该模式下都将验证失败。

在守护程序上启用验证

管理员通过向插件守护程序提供受信任公钥列表来安装已签名的插件。
1

放置公钥

.public.pem 文件放置在守护程序容器可以访问的位置。对于 Docker Compose 安装:
mkdir -p docker/volumes/plugin_daemon/public_keys
cp your_key_pair.public.pem docker/volumes/plugin_daemon/public_keys/
2

配置守护程序环境

plugin_daemon 服务上设置以下变量:
变量
FORCE_VERIFYING_SIGNATUREtrue
THIRD_PARTY_SIGNATURE_VERIFICATION_ENABLEDtrue
THIRD_PARTY_SIGNATURE_VERIFICATION_PUBLIC_KEYS容器内公钥的逗号分隔路径
docker-compose.override.yaml 示例片段:
services:
  plugin_daemon:
    environment:
      FORCE_VERIFYING_SIGNATURE: true
      THIRD_PARTY_SIGNATURE_VERIFICATION_ENABLED: true
      THIRD_PARTY_SIGNATURE_VERIFICATION_PUBLIC_KEYS: /app/storage/public_keys/your_key_pair.public.pem
docker/volumes/plugin_daemon 挂载到容器内的 /app/storage,因此 THIRD_PARTY_SIGNATURE_VERIFICATION_PUBLIC_KEYS 中的路径必须使用容器内路径。
3

重启 Dify

cd docker
docker compose down
docker compose up -d
现在已强制执行验证安装:与配置的公钥匹配的已签名 .difypkg 文件可以顺利安装;未签名或不匹配的文件将被拒绝。

相关资源


编辑此页面 | 报告问题