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

証明書更新方式

clmBot は2種類の証明書更新方式に対応しており、サーバーのネットワーク環境に応じてそれぞれ選択できます。

更新方式動作モードポート要件適用シーン
クラウドプッシュ管理バックエンドからプッシュを開始し、clmBot サーバー側で受信して更新8862/tcp 受信ポートの開放が必要ネットワークポリシーが許可しており、更新を即時反映したい場合
定期プルclmBot がクラウドに新しい証明書があるか定期的に確認し、自動更新受信ポートの開放は不要受信ポートを開放できないサーバー(推奨のデフォルト方式)

2つの方式は競合せず、同じサーバー群の中で一部にプッシュを使用し、一部に定期プルを使用できます。

方式1:クラウドプッシュ

サーバー上で clmBot サーバー側を起動する

./clm-bot-linux-amd64 server -a="0.0.0.0:8862"

-a リスニングアドレスとポートを指定します。デフォルトは 0.0.0.0:8862 です。起動後、clmBot はサーバーとして常駐実行され、クラウドからのプッシュを待機します。

注意
  • サーバーのファイアウォールおよびクラウドセキュリティグループで 8862/tcp のインバウンドポートを開放する必要があります。
  • clmBot サーバーはクラウドのプッシュ接続に対して相互 TLS 認証を有効にしており、接続アクティベーションが完了したノードのプッシュ証明書のみを受け付けます。

インバウンドポートを開放したくない場合は、方式2:定期プルをご利用ください。

情報

clmBot サーバーはプッシュを受信するために稼働し続ける必要があります。本番環境ではシステムサービスとして登録し、起動時自動実行を設定することを推奨します。サービス化デプロイとアップグレードを参照してください。

管理バックエンドで証明書をプッシュ

管理バックエンドにログインし、インストールポイント一覧から対象のインストールポイントを選択して 証明書をプッシュ をクリックします。確認後、システムは最新の証明書をサーバーにプッシュし、自動的に更新を完了します。

方式2:定期プル

定期プルモードではインバウンドポートの開放が不要で、clmBot が定期的に更新チェックを実行します。推奨されるデフォルトの方式です。

Linux:crontab の設定

clmBot の更新コマンドを crontab に追加します:

crontab -e

行を追加(毎日午前3時に証明書更新チェックを実行):

0 3 * * * cd /opt/clm-bot && ./clm-bot-linux-amd64 update-certificate >> update.log 2>&1
注意
  • コマンドでは、まず cd で clmBot のインストールディレクトリに移動してから実行する必要があります。clmBot はデフォルトでカレントディレクトリから config.yaml を読み取るためです。
  • ディレクトリを切り替えずに、-c パラメータで設定ファイルのパスを指定することもできます:./clm-bot-linux-amd64 -c /opt/clm-bot/config.yaml update-certificate
  • パスは実際のインストールディレクトリに置き換えてください。

実行出力は update.log に追記され、同時に clmBot は設定ファイルがあるディレクトリの logs/clm-bot.log に実行ログを記録します。

Windows:タスクスケジューラの設定

Windows サーバーでタスクスケジューラを作成し、定期的に実行します:

cd /d C:\clm-bot && clm-bot-windows-amd64.exe update-certificate >> update.log 2>&1

作成後、タスクを右クリックして「実行」を選択して検証し、インストールディレクトリでログを確認して実行結果を確認できます。

証明書の自動再署名と更新

clmBot が更新する証明書は、クラウド側の自動再署名によるものです。管理バックエンドにログインし、SSL 証明書詳細ページへ進み、自動再署名設定で再署名周期(例:30 日)を選択または入力して保存します。

設定後の全体の流れ:

  1. 証明書の有効期限前に、クラウドが再署名周期に従って自動的に再署名し、新しい証明書を生成します。
  2. clmBot は設定された方式(プッシュまたは定期プル)で新しい証明書を取得します。
  3. clmBot はローカル証明書に対して更新を実行します:
  • ローカル証明書がクラウドの最新証明書と一致する場合は、更新をスキップします。
  • 一致しない場合は、ローカル証明書ファイルを自動的にバックアップし(タイムスタンプ付きの .bak バックアップを生成)、順に before_script を実行し、新しい証明書を書き込み、after_script を実行してサービスリロードを完了します。
ヒント

証明書を更新せずに after_script を強制的に実行したい場合(例:リロードスクリプトのデバッグ)、--force-after パラメータを使用できます。