Third-Party Signature Verification¶
Note: ⚠️ 本文档由 AI 自动翻译。如有任何不准确之处,请参考英文原版。
title:¶
Warning: 此功能仅在 FlexAI 社区版中可用。FlexAI 云版本目前不支持第三方签名验证。
第三方签名验证允许 FlexAI 管理员在不完全禁用签名验证的情况下,安全地批准安装未在 FlexAI Marketplace 上列出的插件。例如,这支持以下场景:
- FlexAI 管理员可以在审核通过开发者发送的插件后为其添加签名。
- 插件开发者可以为其插件添加签名,并将其与公钥一起发布,供无法禁用签名验证的 FlexAI 管理员使用。
FlexAI 管理员和插件开发者都可以使用预先生成的密钥对为插件添加签名。此外,管理员可以配置 FlexAI 在插件安装期间使用特定公钥强制执行签名验证。
生成用于签名和验证的密钥对¶
使用以下命令生成用于添加和验证插件签名的新密钥对:
运行此命令后,将在当前目录中生成两个文件:
- 私钥:
your_key_pair.private.pem - 公钥:
your_key_pair.public.pem
私钥用于签署插件,公钥用于验证插件的签名。
Warning: 请妥善保管私钥。如果私钥泄露,攻击者可以为任何插件添加有效签名,这将危及 FlexAI 的安全性。
为插件添加签名并验证¶
运行以下命令为您的插件添加签名。请注意,您必须指定要签名的插件文件和私钥:
执行命令后,将在同一目录中生成一个新的插件文件,其原始文件名中添加了 signed:your_plugin_project.signed.difypkg
您可以使用此命令验证插件是否已正确签名。在这里,您需要指定已签名的插件文件和公钥:
Info: 如果省略公钥参数,验证将使用 FlexAI Marketplace 公钥。在这种情况下,对于任何未从 FlexAI Marketplace 下载的插件文件,签名验证都将失败。
启用第三方签名验证¶
FlexAI 管理员可以在安装插件之前使用预先批准的公钥强制执行签名验证。
放置公钥¶
将与签名所用私钥对应的公钥放置在插件守护程序可以访问的位置。
例如,在 docker/volumes/plugin_daemon 下创建一个 public_keys 目录,并将公钥文件复制到该目录:
mkdir docker/volumes/plugin_daemon/public_keys
cp your_key_pair.public.pem docker/volumes/plugin_daemon/public_keys
环境变量配置¶
在 plugin_daemon 容器中,配置以下环境变量:
THIRD_PARTY_SIGNATURE_VERIFICATION_ENABLED- 启用第三方签名验证。
- 将此设置为
true以启用该功能。 THIRD_PARTY_SIGNATURE_VERIFICATION_PUBLIC_KEYS- 指定用于签名验证的公钥文件的路径。
- 您可以列出多个公钥文件,用逗号分隔。
以下是配置这些变量的 Docker Compose 覆盖文件(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
Info: 请注意,
docker/volumes/plugin_daemon被挂载到plugin_daemon容器中的/app/storage。请确保THIRD_PARTY_SIGNATURE_VERIFICATION_PUBLIC_KEYS中指定的路径对应于容器内的路径。
要应用这些更改,请重启 FlexAI 服务:
重启服务后,第三方签名验证功能将在当前社区版环境中启用。
{/ Contributing Section DO NOT edit this section! It will be automatically generated by the script. /}