設定リファレンス
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 }} | OSタイプ(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 には専用の実行アカウントを使用し、最小権限の原則に基づいて権限を付与してください。詳細は 実行権限の要件 を参照してください。