メインコンテンツまでスキップ

設定リファレンス

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_sslHTTPS 証明書の検証を無視するかどうか。自己署名証明書を使用する管理された環境でのみ有効化
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_pathCA チェーンファイルのパス。空にできます
key_path秘密鍵ファイルのパス

pfx​

単一ファイルの証明書パッケージ(PKCS#12)を必要とするサービスに適用します:

フィールド説明
pathPFX ファイルのパス
key_passPFX 秘密鍵のパスワード。対象サービスがパスワードを要求しない場合は空にできます

jks​

Tomcat などの Java keystore シナリオに適用します:

フィールド説明
pathJKS ファイルのパス
alias証明書エントリのエイリアス。空の場合、keystore にエントリが 1 つだけのときにのみ自動推測できます
key_passエントリ秘密鍵パスワード
store_passkeystore パスワード

iis​

Windows IIS HTTPS バインドに適用:

フィールド説明
nameIIS サイト名。IIS マネージャーで確認可能
addrHTTPS バインド IP。* はすべての IP を表す
portHTTPS バインドポート
domainHTTPS バインドドメイン。SNI ドメインがない場合は空欄にできる

IIS インストールポイントは、clmBot の組み込みスクリプトによって証明書のインポートとバインド更新が自動的に完了するため、通常はスクリプトの設定は不要です。

exchange​

Windows Exchange サービス証明書に適用:

フィールド説明
services新しい証明書で有効化が必要なExchangeサービスの名称リスト(例:["IIS", "SMTP", "POP", "IMAP"])

スクリプト実行の説明​

before_script と after_script は証明書の更新時に以下の順序で実行されます:

  1. ローカルの証明書ファイルのバックアップを試みます(タイムスタンプ付きの .bak バックアップを生成);バックアップに失敗した場合はエラーを記録して続行します。
  2. before_script を実行し、失敗した場合は現在のインストールポイントの更新を中断します。
  3. 新しい証明書を書き込みます。
  4. 設定に従って 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 には専用の実行アカウントを使用し、最小権限で許可を付与してください。実行権限の要件 を参照してください。