証明書更新方式
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 日)を選択または入力して保存します。
設定後の全体の流れ:
- 証明書の有効期限前に、クラウドが再署名周期に従って自動的に再署名し、新しい証明書を生成します。
- clmBot は設定された方式(プッシュまたは定期プル)で新しい証明書を取得します。
- clmBot はローカル証明書に対して更新を実行します:
- ローカル証明書がクラウドの最新証明書と一致する場合は、更新をスキップします。
- 一致しない場合は、ローカル証明書ファイルを自動的にバックアップし(タイムスタンプ付きの
.bakバックアップを生成)、順にbefore_scriptを実行し、新しい証明書を書き込み、after_scriptを実行してサービスリロードを完了します。
証明書を更新せずに after_script を強制的に実行したい場合(例:リロードスクリプトのデバッグ)、--force-after パラメータを使用できます。