vCert
と fixcerts.py
を使い分けていくのが賢いやり方です。どちらのツールも堅牢かつ信頼性は十分で、状況によっては併用することで柔軟性や成功率が向上します。
柔軟な対応力: いずれかのツールで何らかの制約にぶつかったり、特定のタイプの証明書だけうまく行かなかった場合には、もう一方のツールへとシームレスに切り替えるのも選択肢です。本手順書はこうした「ツール間のフェイルオーバー」を勘案しており、どのような状況でも証明書の更新作業が継続できるよう配慮しています。
📝 補足:
fixcerts.py
には大きな利点、更新する証明書の有効期間を指定できる機能(--validityDays <DAYS>
)があります。
ただし、実際に発行される証明書の有効期間は vCSAのルートCAの有効期限を超えることはできません。長い期間を指定しても、証明書の有効期限はルートCAと同じになることに注意してください。
📝 補足: ツールごとに、一部の証明書に関する一部の機能が欠けていたりするため(例えば STS証明書)、もし
fixcerts.py
を主として使用する場合でも、vCert
も用意しておくことをお勧めします。STS証明書は、VECS CLI やfixcerts.py
では情報の確認ができません。
vCert.py
や fixcerts.py
の操作は、PuTTY
やOS標準の ssh
などによるSSHセッション上で実施することを強く推奨します。 for store in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list | grep -v TRUSTED_ROOT_CRLS); do echo "[*] Store :" $store; /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $store --text | grep -ie "Alias" -ie "Not Before" -ie "Not After"; done
これをスクリプトファイルとして別体にした
list-vecs-certs.sh
も掲載しています。より簡便に使うことができるでしょう。
vCert.py
を使用して、STS証明書、およびExtension用の証明書指紋の情報を採ります。(vecs-cli
利用の上記ワンライナーでは網羅していないため):
./vCert.py --run config/view_cert/op_view_11-sts.yaml
./vCert.py --run config/check_cert/op_check_10-vc_ext_thumbprints.yaml
📝 補足: STS証明書やExtension Thumbprintsの情報を見ることは VECS CLI や
fixcerts.py
ではできないため、fixcerts.py
をメインに使う場合にも、vCert
が使えるように準備しておく必要があります。2行目のチェックはvCert.py
の “1. Check current certificate status”(または “–run config/op_check_cert.yaml” オプション付きで vCert.pyを実行)にも含まれます。
service-control --status --all
/var/log/vmware/vmcad/
重点的に見るファイル:
さらに見るなら:
/var/log/vmware/sso/
重点的に見るファイル:
さらに見るなら:
/storage/log
df -h
or
df -h /storage/log
⚠️ 警告:
/var/log/vmware
ディレクトリ (/storage/log
パーティション上) が満杯またはそれに近い状態になっていると、証明書管理操作が失敗したり、vCSA上のサービスの動作不良や停止につながります。
作業を始める前に、各パーティションに十分な空きがあることを確認してください。
容量不足が見受けられる場合には、証明書の更新に臨むより先に vCenter log disk exhaustion or /storage/log full を参照し、原因の調査方法や空きを作る方法を調べるとよいでしょう。
必要なすべての証明書の更新が終わったら、 基本的なことですが、vCenter Serverおよび証明書の健全性の確認が必要です。
vCert.py
を活用した STS証明書やExtension用証明書指紋のチェックを行うコマンドを再度実行し、入れ替えたすべての証明書の有効期限と整合性を確認します。service-control --status --all
/var/log/vmware/vmcad/
と /var/log/vmware/sso/
の該当するログに、エラーやアラートが出ていないことを確認します。vCert.py
は、基本的にインタラクティブメニューで使うように作られています。コマンドラインでのオペレーションの決め打ちは --run
オプションに続けてディレクトリ配下の yaml
ファイルパスを指定する形式のためタイプ数が多くなりがちで、それ以外のオプションもかなり限られています。
ただし、時と場合によっては、--run
でのオペレーション決め打ちが適していることもあります。別紙 vcsa-cert-list-chart.md
の表 vCert.py direct operation arguments に、オペレーション区分毎の yaml
ファイルパスをまとめてありますので、ご活用ください。
vCert.pyの起動:
ただ簡潔に ./vCert.py
を実行してください。--user <user@vphere> --password <pswd>
を加えると、特権作業の度に求められる認証が省略できます。
証明書状態の確認:
メインメニューで”1. Check current certificate status”を選択し、状態を確認します。
まずは自動一括更新を試してみる:
メインメニューで”6. Reset all certificates with VMCA-signed certificates”を選択します。
サービス再起動プロンプト:
“Restart VMware services [N]: “の問いには、成功/失敗に関わらず”N”(デフォルト)で応答します。
/var/log/vmware/vmcad/
と /var/log/vmware/sso/
を確認し、証明書更新の問題がないかチェックします。スクリプトは
/var/log/vmware/vCert/vCert.log
を生成します(これはサポートバンドルにも含められる)。また/root/vCert-master
配下にYYYYMMDD形式のディレクトリが作成され、ステージングやバックアップ等のサブディレクトリが格納されます。証明書バックアップ以外の一時ファイルはツール終了時に削除されます。
証明書の種類とメニュー項目の対応は別紙
vcsa-cert-list-chart.md
の表 vCert.py Operation for each certificate 参照。
./vCert.py --run config/manage_cert/op_manage-vc-ext-thumbprints.yaml
)し、そこで MISMATCH が見つかった場合には、”Y”で進み修正します。💡 Tips:
fixcerts.py
は、時々、安定性に難があるとの報告もあり、証明書ごとに更新の成否が分かれることがあります。それも踏まえ、一括更新ではなく証明書タイプごとの段階的な更新をお勧めします。また、必ず最新版(執筆時点では3_2
)を使用してください。
./fixcerts.py replace --certType machinessl --validityDays 3650 --serviceRestart False
ポイント:
--certType
を該当するタイプに変更してください。machinessl
, solutionusers
, sms
, data-encipherment
など。証明書の種類と引数名の対応は別紙 vcsa-cert-list-chart.md
の表 fixcerts.py Operation for each certificate 参照。)--validityDays
で指定できます。--serviceRestart False
を指定します。サービスの再起動は全更新完了の後に一括で行います。--debug
オプションを追加することもできます。fixcerts.py
にはインタラクティブメニューはありません。すべてコマンドライン引数で操作します。list-vecs-certs.sh
)で、期限が更新されているか確認してください。
for store in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list | grep -v TRUSTED_ROOT_CRLS); do echo "[*] Store :" $store; /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $store --text | grep -ie "Alias" -ie "Not Before" -ie "Not After"; done
./vCert.py --run config/view_cert/op_view_11-sts.yaml
を実行し、有効期限が延長されているか確認します。
/var/log/vmware/vmcad/
/var/log/vmware/sso/
fixcerts.py
自体のログファイルも確認してください:
fixcerts.log
が出力されているはず。fixcerts.py
で個別実行してください。--debug
オプションを付与すると、より詳細な出力が得られます。vecs-cli
等を使った手動更新や公式サポートドキュメントの参照を検討してください。./vCert.py --run config/manage_cert/op_manage-vc-ext-thumbprints.yaml
を実行し、そこで MISMATCH が見つかった場合には、”Y”で進み修正します。
service-control --stop --all && service-control --start --all
これはfixcerts.py内部でも利用されている推奨の方法です。
💡 Tips:
--debug
オプションを活用!