gokeyless 鍵サーバーはコンテナイメージとして公開されています。ほとんどの設定は、gokeyless.yaml ファイルではなく環境変数で指定できます。
docker pull ghcr.io/cloudflare/gokeyless:latest完全な例は、gokeyless リポジトリの docker-compose.example.yaml ↗ にあります。
各環境変数は、gokeyless.yaml の対応する設定に対応します。両方がある場合は、環境変数が優先されます(優先順位は、コマンドラインフラグ、環境変数、設定ファイルの順です)。
| 環境変数 | 用途 |
|---|---|
KEYLESS_HOSTNAME |
この鍵サーバーのホスト名です(Cloudflare で設定した値と一致させてください)。 |
KEYLESS_ZONE_ID |
Cloudflare の Zone ID です。 |
KEYLESS_ORIGIN_CA_API_KEY |
鍵サーバーの登録と認証証明書の取得に使う Origin CA API キーです。 |
KEYLESS_AUTH_CERT |
鍵サーバーの認証証明書のパスです(デフォルトは server.pem)。 |
KEYLESS_AUTH_KEY |
認証証明書の秘密鍵のパスです(デフォルトは server-key.pem)。 |
KEYLESS_AUTH_CSR |
初期化時に生成する CSR の書き出し先パスです(デフォルトは server.csr)。 |
KEYLESS_CLOUDFLARE_CA_CERT |
接続する鍵クライアントの認証に使う Cloudflare CA 証明書のパスです(デフォルトは keyless_cacert.pem)。 |
KEYLESS_PORT |
鍵サーバーが待ち受けるポートです(デフォルトは 2407)。 |
KEYLESS_METRICS_PORT |
/metrics エンドポイントのポートです(デフォルトは 2406)。 |
KEYLESS_LOGLEVEL |
ログの詳細度です。0(最も詳細)から 5 までです。 |
秘密鍵の場所は環境変数では設定できません。gokeyless.yaml の private_key_stores ブロックで設定します(各エントリは dir、file、uri のいずれか 1 つだけを指定します)。または、イメージ名のあとに引数として --private-key-dirs / --private-key-files フラグ(カンマ区切り)を渡します。
docker run -d \
-e KEYLESS_HOSTNAME=<KEY_SERVER_HOSTNAME> \
-e KEYLESS_ZONE_ID=<ZONE_ID> \
-e KEYLESS_AUTH_CERT=/config/server.pem \
-e KEYLESS_AUTH_KEY=/config/server-key.pem \
-e KEYLESS_CLOUDFLARE_CA_CERT=/config/keyless_cacert.pem \
-v /local/config:/config:ro \
-v /local/keys:/keys:ro \
-p 2407:2407 \
ghcr.io/cloudflare/gokeyless:latest \
--private-key-dirs /keysイメージのエントリポイントは gokeyless です。そのため、--private-key-dirs などのコマンドラインフラグは、イメージ名のあとに付けます。
1 つの鍵サーバーで、複数の証明書の秘密鍵を保持できます。--private-key-dirs / --private-key-files(カンマ区切り)で複数のディレクトリまたはファイルを指定するか、gokeyless.yaml に複数の private_key_stores エントリを定義します。