設定リファレンス
clmBot の動作は、インストールディレクトリ内の config.yaml 設定ファイルによって制御されます。このファイルは、login、discover-certificate または add-server を実行した際に自動生成され、手動で編集することもできます。
デフォルトでは、clmBot は現在のディレクトリから config.yaml を読み取ります。また、グローバルパラメータ -c を使用して設定ファイルのパスを指定することもできます。
./clm-bot-linux-amd64 -c /opt/clm-bot/config.yaml update-certificate
全体構成
app:
base_url: https://<云端地址>
ignore_ssl: false
access_key: YOUR_ACCESS_KEY
access_secret: YOUR_ACCESS_SECRET
servers:
- id: nginx_pem
sub_code: <证书订阅号>
format:
pem:
cert_path: /etc/nginx/ssl/example.com.crt
ca_path: /etc/nginx/ssl/example.com.ca.crt
key_path: /etc/nginx/ssl/example.com.key
before_script: |
...
after_script: |
nginx -t && nginx -s reload
app:接続設定
| フィールド | 説明 |
|---|---|
base_url | クラウド API アドレス。納品情報に従って入力し、通常は変更不要 |
ignore_ssl | HTTPS 証明書の検証を無視するかどうか。自己署名証明書を使用する管理された環境でのみ有効化 |
access_key | クラウドから割り当てられた AccessKey |
access_secret | クラウドから割り当てられた AccessSecret。平文が初めてプログラムによって保存された後、自動的に ENC1+ で始まる暗号化値に移行されます |
servers:インストールポイントリスト
各 servers[] エントリは、1つの証明書インストールポイントに対応します:
| フィールド | 説明 |
|---|---|
id | インストールポイント識別子。業務上の意味を持つ名前を推奨 |
sub_code | 証明書サブスクリプション番号。管理コンソールの証明書サブスクリプションに対応し、clmBot はこれに基づいて最新の証明書を取得します |
format | 証明書の形式とファイルパス。pem、pfx、jks、iis、exchange のいずれかのみ保持できます |
before_script | 更新前に実行するスクリプト。スクリプトが失敗すると、現在のインストールポイントの更新が中断されます |
after_script | 更新後に実行するスクリプト。通常、ミドルウェアサービスをリロードするために使用します |
format:証明書の形式
pem
nginx、Apache HTTP Server、Tomcat など、PEM ファイルを使用するシナリオに適用されます:
| フィールド | 説明 |
|---|---|
cert_path | 站点証明書ファイルのパス。更新時にリーフ証明書を書き込みます。ca_path が空の場合は、完全な証明書チェーンも同時に書き込みます |
ca_path | CA チェーンファイルのパス。空にできます |
key_path | 秘密鍵ファイルのパス |
pfx
単一ファイルの証明書パッケージ(PKCS#12)を必要とするサービスに適用します:
| フィールド | 説明 |
|---|---|
path | PFX ファイルのパス |
key_pass | PFX 秘密鍵のパスワード。対象サービスがパスワードを要求しない場合は空にできます |
jks
Tomcat などの Java keystore シナリオに適用します:
| フィールド | 説明 |
|---|---|
path | JKS ファイルのパス |
alias | 証明書エントリのエイリアス。空の場合、keystore にエントリが 1 つだけのときにのみ自動推測できます |
key_pass | エントリ秘密鍵パスワード |
store_pass | keystore パスワード |
iis
Windows IIS HTTPS バインドに適用:
| フィールド | 説明 |
|---|---|
name | IIS サイト名。IIS マネージャーで確認可能 |
addr | HTTPS バインド IP。* はすべての IP を表す |
port | HTTPS バインドポート |
domain | HTTPS バインドドメイン。SNI ドメインがない場合は空欄にできる |
IIS インストールポイントは、clmBot の組み込みスクリプトによって証明書のインポートとバインド更新が自動的に完了するため、通常はスクリプトの設定は不要です。
exchange
Windows Exchange サービス証明書に適用:
| フィールド | 説明 |
|---|---|
services | 新しい証明書で有効化が必要なExchangeサービスの名称リスト(例:["IIS", "SMTP", "POP", "IMAP"]) |
スクリプト実行の説明
before_script と after_script は証明書の更新時に以下の順序で実行されます:
- ローカルの証明書ファイルのバックアップを試みます(タイムスタンプ付きの
.bakバックアップを生成);バックアップに失敗した場合はエラーを記録して続行します。 before_scriptを実行し、失敗した場合は現在のインストールポイントの更新を中断します。- 新しい証明書を書き込みます。
- 設定に従って
after_scriptを実行し、スクリプトがミドルウェアサービスのリロードまたは再起動を担当します。
本地証明書が最新の場合、更新全体(スクリプトを含む)はスキップされます。強制的に実行する場合は after_script、--force-after パラメータを使用できます。
スクリプトは Linux では bash で実行され、Windows では powershell.exe -NoProfile -ExecutionPolicy Bypass で実行されます。
スクリプトテンプレート変数
before_script / after_script を作成する際、以下のテンプレート変数を使用できます。clmBot は実行前に実際の値に置き換えます。
共通変数:
| 変数 | 説明 |
|---|---|
{{ .ID }} | インストールポイント id |
{{ .SUB_CODE }} | 証明書サブスクリプション番号 |
{{ .OS_TYPE }} | オペレーティングシステムの種類(windows / linux / darwin) |
{{ .IS_WINDOWS }} | Windowsかどうか(true / false) |
{{ .IS_LINUX }} | Linuxであるかどうか(true / false) |
{{ .TIMESTAMP }} | 現在のタイムスタンプ(秒) |
{{ .DATETIME }} | 現在の日時(2006-01-02 15:04:05 形式) |
{{ .DATE }} | 現在の日付(2006-01-02 形式) |
{{ .LATEST }} | 証明書が最新かどうか(true / false)。--force-after と併用すると、スクリプト内で後続の操作をスキップする判断が可能です |
証明書形式に応じて提供される変数:
| 形式 | 変数 | 説明 |
|---|---|---|
| pem | {{ .PEM_CERT_PATH }} | サイト証明書ファイルのパス |
| pem | {{ .PEM_CA_PATH }} | CA チェーンファイルのパス |
| pem | {{ .PEM_KEY_PATH }} | 秘密鍵ファイルのパス |
| pfx | {{ .PFX_PATH }} | PFX ファイルのパス |
| pfx | {{ .PFX_KEY_PASS }} | PFX 秘密鍵パスワード |
| jks | {{ .JKS_PATH }} | JKS ファイルパス |
| jks | {{ .JKS_ALIAS }} | 証明書エントリの別名 |
| jks | {{ .JKS_KEY_PASS }} | エントリ秘密鍵パスワード |
| jks | {{ .JKS_STORE_PASS }} | keystore パスワード |
| iis | {{ .IIS_SITE_NAME }} | IIS サイト名 |
| iis | {{ .IIS_IPADDR }} | HTTPS バインド IP |
| iis | {{ .IIS_PORT }} | HTTPS バインドポート |
| iis | {{ .IIS_DOMAIN }} | HTTPS バインドドメイン |
| exchange | {{ .EXCHANGE_SERVICES }} | Exchange サービス名リスト(カンマ区切り) |
セキュリティ推奨事項
config.yamlにはアクセス認証情報と秘密鍵のパスが含まれているため、ファイル権限を実行アカウントのみが読み書きできるように制限してください(例:chmod 600 config.yaml)。AccessSecretは保存後に暗号化形式で保管されますが、構成ファイルを信頼できない場所にコピーすることは避けてください。- clmBot には専用の実行アカウントを使用し、最小権限で許可を付与してください。実行権限の要件 を参照してください。