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

設定リファレンス

clmBot の動作は、インストールディレクトリにある config.yaml 設定ファイルによって制御されます。このファイルは、logindiscover-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証明書形式およびファイルパス。pempfxjksiisexchange のいずれかのみ保持可能
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_scriptafter_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 }}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 には専用の実行アカウントを使用し、最小権限の原則に基づいて権限を付与してください。詳細は 実行権限の要件 を参照してください。