> ## Documentation Index
> Fetch the complete documentation index at: https://enterprise-docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# サードパーティ署名検証用のプラグイン署名

> Dify Community Edition で署名検証を完全に無効化することなく、署名付き `.difypkg` のインストールを有効にします（鍵の生成、パッケージの署名、公開鍵の配布）

<Warning>
  サードパーティ署名検証は **Dify Community Edition** の機能です。Dify Cloud は署名を一元管理しており、これらの制御は公開されていません。
</Warning>

セルフホストの Dify はデフォルトで署名検証を強制します。サードパーティ署名検証により、管理者は検証を完全に無効化することなく、マーケットプレイスにないプラグインを安全にインストールできます。

2 つのシナリオ：

<CardGroup cols={2}>
  <Card title="管理者が承認したプラグインに署名する" icon="user-shield">
    管理者は信頼できる開発者からの `.difypkg` をレビューし、インストール前に自分の鍵で署名します。
  </Card>

  <Card title="開発者が署名済みプラグインを配布する" icon="key">
    開発者が `.difypkg` に署名し、対応する公開鍵を公開します。その開発者を信頼する管理者は、その公開鍵を検証リストに追加します。
  </Card>
</CardGroup>

どちらの場合も仕組みは同じです：キーペアを生成し、秘密鍵で署名し、公開鍵で検証します。

## キーペアの生成

```bash theme={null}
dify signature generate -f your_key_pair
```

現在のディレクトリに 2 つのファイルが生成されます：

| ファイル                        | 用途              |
| :-------------------------- | :-------------- |
| `your_key_pair.private.pem` | プラグインの署名（秘密にする） |
| `your_key_pair.public.pem`  | 署名の検証（公開する）     |

<Warning>
  秘密鍵を保護してください。秘密鍵を持つ人は誰でも、あなたの公開鍵を信頼するインストール環境で検証に合格するプラグインに署名できます。
</Warning>

## プラグインの署名と検証

<Steps>
  <Step title="パッケージに署名する">
    ```bash theme={null}
    dify signature sign your_plugin_project.difypkg -p your_key_pair.private.pem
    ```

    同じディレクトリに `your_plugin_project.signed.difypkg` が生成されます。
  </Step>

  <Step title="署名済みパッケージを検証する">
    ```bash theme={null}
    dify signature verify your_plugin_project.signed.difypkg -p your_key_pair.public.pem
    ```

    配布またはインストール前に署名が一致することを確認します。
  </Step>
</Steps>

<Info>
  `-p` を省略した場合、`dify signature verify` は Dify マーケットプレイスの公開鍵に対して検証します。Dify によって署名されていないプラグインは、そのモードでは検証に失敗します。
</Info>

## デーモンでの検証の有効化

管理者は、信頼する公開鍵のリストをプラグインデーモンに提供することで、署名済みプラグインをインストールします。

<Steps>
  <Step title="公開鍵を配置する">
    `.public.pem` ファイルをデーモンコンテナがアクセスできる場所に配置します。Docker Compose インストールの場合：

    ```bash theme={null}
    mkdir -p docker/volumes/plugin_daemon/public_keys
    cp your_key_pair.public.pem docker/volumes/plugin_daemon/public_keys/
    ```
  </Step>

  <Step title="デーモン環境を設定する">
    `plugin_daemon` サービスで以下の変数を設定します：

    | 変数                                               | 値                   |
    | :----------------------------------------------- | :------------------ |
    | `FORCE_VERIFYING_SIGNATURE`                      | `true`              |
    | `THIRD_PARTY_SIGNATURE_VERIFICATION_ENABLED`     | `true`              |
    | `THIRD_PARTY_SIGNATURE_VERIFICATION_PUBLIC_KEYS` | コンテナ内の公開鍵へのカンマ区切りパス |

    `docker-compose.override.yaml` のスニペット：

    ```yaml theme={null}
    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
    ```

    <Note>
      `docker/volumes/plugin_daemon` はコンテナ内の `/app/storage` にマウントされるため、`THIRD_PARTY_SIGNATURE_VERIFICATION_PUBLIC_KEYS` のパスはコンテナ内パスを使用する必要があります。
    </Note>
  </Step>

  <Step title="Dify を再起動する">
    ```bash theme={null}
    cd docker
    docker compose down
    docker compose up -d
    ```

    検証付きインストールが強制されます：設定された公開鍵に一致する署名済み `.difypkg` ファイルは正常にインストールされ、未署名または不一致のものは拒否されます。
  </Step>
</Steps>

## 関連リソース

* [ローカルファイルとしてパッケージ化して共有](/ja/3.11.x/develop/plugins/publishing/marketplace-listing/release-by-file)
* [個人 GitHub リポジトリに公開](/ja/3.11.x/develop/plugins/publishing/marketplace-listing/release-to-individual-github-repo)
* [プラグイン開発ガイドライン](/ja/3.11.x/develop/plugins/publishing/standards/contributor-covenant-code-of-conduct)
* [公開 FAQ](/ja/3.11.x/develop/plugins/publishing/faq/faq)

***

[Edit this page](https://github.com/langgenius/dify-docs/edit/main/en/develop-plugin/publishing/standards/third-party-signature-verification.mdx) | [Report an issue](https://github.com/langgenius/dify-docs/issues/new?template=docs.yml)
