はじめに
本記事では ACI Spine/Leaf の内部証明書を更新する手順について記載します。
内部証明書の更新の際には root パスワードと証明書の発行が必要になるため、 Cisco TAC にお問い合わせください。
実行手順
Step 1: 証明書期限の確認
下記コマンドなどで証明書の期限を確認します。
Switch# moquery -c pki.FabricNodeSSLCertificate
<snip>
validityNotAfter : 2025-02-21T13:28:25.000+09:00
validityNotBefore : 2015-02-21T13:18:25.000+09:00
Step 2 : 機器の確認
証明書の更新が可能か確認します。
ACI OS 4.2 以降を使用している場合、下記コマンドを実行します。
Switch# egrep "2099|2029" /mnt/pss/bootlogs/current/cert_extract.log
act2_util_2099_sudi_cert_present(4489): SUDI oid=0x100 object_type=0 size=0
act2_util_2099_sudi_cert_present(4499): Failed to get 2099 SUDI cert info! tam_rc 21(TAM_LIB_ERR_HANDLE_INVALID)
act2_util_extract_keypair(4539): 2099 SUDI CERT present = FALSE.
FALSE の場合、本手順にて証明書更新が可能です。
4.2 より前のバージョンを使用している場合や、上記コマンドにて確認できない場合の更新可否については Cisco TAC へお問い合わせください。
Step 3 : root 権限でログイン
対象のスイッチにて root 権限でログインします。
ACI: root アクセスと root パスワードの発行方法
Step 4 : 証明書更新に必要な情報の取得
S/N、PID の確認をするため下記のように確認し、 TAC へ送付してください。
また、後の作業のために /var/tmp 配下に移動することを推奨します。
Switch# whoami
root
Switch# pwd
/var/tmp
Switch# vsh -c "show inventory | grep -A 2 Chassis"
NAME: "Chassis", DESCR: "Top of Rack switch "
PID: <PID> , VID: V01 , SN: <SN>
Step 5 : csrファイルとkeyファイルの生成
step3 にて確認した SN と PID を使用して以下のコマンドを実行します。
Switch# openssl req -nodes -newkey rsa:2048 -keyout /tmp/<SN>.key -out /tmp/<SN>.csr -subj "/serialNumber=PID:<PID> SN:<SN>/CN=<SN>"
作成されていることを確認します。
Switch# ls | grep <SN>
<SN>.csr
<SN>.key
生成した <SN>.csr ファイルを Cisco TAC へ送付してください。
Step 6 : cer ファイルのコピー
TAC 側で csr ファイルから cer ファイルを生成し、送付します。
TAC から受けとった <SN>.cer ファイルを var/tmp ディレクトリにコピーします。
vi <SN>.cer 等で直接ファイルを生成し、内容を貼り付けることも可能です。
貼り付ける場合、cat コマンド等の表示を直接コピーするかプレーンテキストからコピーしてください。
改行等の関係で正常に完了しない可能性があります。
Switch# ls | grep <SN>
<SN>.cer
<SN>.csr
<SN>.key
Step 7 : cer ファイルの編集
vi <SN>.key を実行し、Insert モードでそれぞれ "RSA" を追加します。
編集前
Switch# cat <SN>.key
-----BEGIN PRIVATE KEY-----
< snip >
-----END PRIVATE KEY-----
編集後
Switch# cat <SN>.key
-----BEGIN RSA PRIVATE KEY-----
< snip >
-----END RSA PRIVATE KEY-----
Step 8 : 証明書のインストール
下記コマンドを実行して証明書のインストールを実行します。
Switch# act_util rsa_file <SN>.key <SN>.cer
<snip>
Do you want to program this to sprom? (y/N) <--- y を選択
Step 9 : Switch 再起動
root 権限から抜け、スイッチを再起動してください。
Switch# exit
Switch# reload
Step 10 : 証明書期限の確認
再起動後、改めて証明書のステータスを確認します。
期限が更新され、validityNotBefore には更新実行時の日時が入ります。
Switch# moquery -c pki.FabricNodeSSLCertificate
<snip>
validityNotAfter : 2029-05-15T05:25:41.000+09:00
validityNotBefore : 2025-03-27T10:46:29.000+09:00