証明書の更新方法
clmBotは2種類の証明書更新方式に対応しており、サーバーのネットワーク環境に応じて選択できます:
| 更新方式 | 動作モード | ポート要件 | 適用シーン |
|---|---|---|---|
| クラウドプッシュ | 管理画面からプッシュを開始し、clmBot サーバーが受信して更新 | 入站ポート 8862/tcp を開放する必要あり | ネットワークポリシーが許可し、更新を即時反映させたい場合 |
| 定期取得 | crontab または Windows タスクスケジューラで clmBot を定期実行し、更新を確認 | 入站ポートの開放不要 | 入站ポートを開放できないサーバー(デフォルトの方式として推奨) |
両方式は互いに干渉せず、同一のサーバーグループ内で一部をプッシュ、一部を定期取得に設定することが可能です。
方式一:クラウドプッシュ
サーバー上で clmBot サーバーを起動する
./clm-bot-linux-amd64 server -a="0.0.0.0:8862"
-a 監視アドレスとポートを指定します。デフォルトは 0.0.0.0:8862 です。起動後、clmBot はサーバー側として常駐実行され、クラウドからのプッシュを待機します。
- サーバーのファイアウォールとクラウドセキュリティグループで
8862/tcpのインバウンドポートを開放する必要があります。 - clmBot サーバー側はクラウドプッシュ接続に対して双方向 TLS 認証を有効にしており、アクティベーションが完了したノードのプッシュ証明書のみを受け入れます。
インバウンドポートを開放したくない場合は、方式二:定时拉取 をご利用ください。
clmBot サーバー側はプッシュを受信するために稼働し続ける必要があります。本番環境では、システムサービスとして登録し、自動起動を設定することを推奨します。詳細は 服务化部署与升级 を参照してください。
管理后台で証明書をプッシュする
管理后台にログインし、インストールポイントリストに入り、対象のインストールポイントを見つけて 証明書をプッシュ をクリックします。確認後、システムが最新の証明書をサーバーにプッシュし、自動的に更新が完了します。
方式二:定时拉取
定时拉取モードはインバウンドポートを開放する必要がなく、推奨されるデフォルト方式です。clmBot には周期スケジューラーが含まれていないため、crontab、Windows タスクスケジューラー、または既存のスケジューリングシステムで更新コマンドを定期的に実行する必要があります。
Linux:crontab を設定する
clmBot 更新コマンドを crontab に追加します:
crontab -e
追加1行(毎日午前3時に証明書更新チェックを実行):
0 3 * * * cd /opt/clm-bot && ./clm-bot-linux-amd64 update-certificate >> update.log 2>&1
- コマンドでは、先に clmBot のインストールディレクトリへ
cdしてから実行する必要があります。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 パラメータを使用できます。