こんにちは、キクです。
先日、NetAppのActive IQ Unified ManagerとツールへONTAPクラスタを新たに登録しようとした際にエラーにより失敗するという経験をしました。
その原因は「自己署名証明書の有効期限切れ」でした。
正直なところ、普段ONTAPを操作している中ではあまり証明書に関して意識することはなかったのですが、いい勉強になったので記事として整理してみようと思いました。
というわけで、今回は『Active IQ Unified Managerと証明書』をテーマに書いていきたいと思います!
本記事の内容
それでは、よろしくお願いします。
Active IQ Unified Managerとは
まず初めに、本記事のテーマとなっている「Active IQ Unified Manager」について簡単に触れておこうと思います。
Active IQ Unified Managerは、公式では次のような説明がされています。
Active IQ Unified Manager(旧OnCommand Unified Manager)では、ONTAPストレージシステムの健全性とパフォーマンスを一元的に監視および管理することができます
引用:NetApp公式 ドキュメントセンター
システムのストレージとして利用される1つあるいは複数のONTAPシステムを管理するためのツールが「Active IQ Unified Manager」になります。
実際には以下のような管理をすることが可能です。
システム内で複数のONTAPクラスタを取り扱っている場合、それぞれの管理インターフェイス(GUIまたはCLI)を用いてクラスタを管理することはもちろん可能です。
しかし、数が多くなるほど煩雑になってきます。
Active IQ Unified ManagerにそれらのONTAPクラスタを登録することで、1つの管理画面から複数のONTAPクラスタ情報を管理することができるようになるので非常に便利です。
日々の運用の中では「ボリュームの逼迫状況」などが気になるところではありますが、そのような情報も検知・通知することができるので助かりますよね。
クラスタ登録が失敗するまでの背景
本章では「そもそも何をしようとしていたのか?」について少し触れておこうと思います。
Active IQ Unified Managerの利用用途からもお察しだとは思いますが、元々実施したかった作業としてはActive IQ Unified Managerの管理下に新たにONTAPクラスタを登録することでした。
しかし、いざ登録してみようと思ったら「クラスタ証明書の承認」という画面で次のようなエラーが表示されて失敗されてしまいました。
以前も同じような作業をしたことがあったのですが、その際には何の問題もなく追加できたので「おやおや?」と困ってしまいました。
このエラーが「自己署名証明書の更新」を実施するきっかけになったわけです。
クラスタ登録が失敗した原因
エラー内容に「自己署名証明書の有効期限切れ」とはっきりと記載されていることからも、自己署名証明書の有効期限がクラスタ登録失敗の原因であることは明白です。
公式ドキュメントとしても以下のような記載がありました。
有効期限が切れた証明書でUnified Managerにクラスタを追加することはできません
参考:クラスタを追加する
ちなみに、前章で「以前同じような作業をしたことがある」と書きましたが、これはActive IQ Unified Managerを構築した際にONTAPクラスタを試しに1つ登録してみるというものでした。
ただ、今回の件でそのクラスタの証明書有効期限を改めて確認してみたら「期限切れ」にはなっていなかったんです。
最初は「なんで以前は登録できたのに今回はダメなんだ?」と疑問に思っていたのですが、以前登録したクラスタはたまたま証明書の有効期限が切れていなかったから登録できたのだと納得しました。
自己署名証明書とは何なのか
普段はあまり証明書関連の作業をしないので「NetAppの自己署名証明書って何者なの?」と疑問に思いました。
幸いにも自己署名証明に関する公式KBがあり、次のように説明されていました。
普段あまり意識しなかったのは、SVM作成時に自動生成されるという部分が影響していました。
特にクラスタ管理用SVMなんかは初期構築時に自動的に作成されるので尚更でした。
意識はしていませんでした「最初から存在していた」ということになることが分かりました。
クラスタ登録が失敗した後の対応
本章では「失敗後の対応」について触れていきます。
失敗の原因が「自己署名証明書の有効期限切れ」であったことから、「証明書の更新」が必要な作業になってきます。
更新方法は公式KBがあったので、それを参照して作業を実施しました。
参考:コマンドラインを使用してONTAP自己署名SSL証明書を更新する方法
1. 有効期限切れの自己署名証明書の確認
まず初めに、以下のコマンドを実行して現在の証明書一覧を確認します。
::> security certificate show -fields vserver,common-name,serial,ca,type,expiration -type server
■出力例
vserver common-name serial ca type subtype expiration
------------- ------------- ---------------- --------- --------- ----------- -----------------
ClusterName XX aaaaaaaaaa XX server - Sun Mar 1 2020
1 entries were displayed.
複数の証明書情報が表示されることもありますが、今回の対象はクラスタ管理用SVMの証明書になります。
作業日が2022年だとすると「expiration(有効期限)」が2020年になっていることから「有効期限切れ」であることが分かります。
2. 新しい自己署名証明書の作成
次に、以下のコマンドで新しく利用する自己署名証明書を作成していきます。
::> security certificate create -common-name XX -type server -size 2048 -expire-days 365 -protocol SSL -hash-function SHA256 -vserver クラスタ管理用SVM名
基本的に各オプションの値は公式KBで指定されたものを指定しています。
オプション「-common-name」については、今回は「有効期限切れ自己署名証明書の差し替え」になるので項番1で確認した値と同様で問題ありません。
また、有効期限を指定する「-expire-days」は「1〜3652」の範囲で指定することができるので、必要に応じて調整しましょう。
3. 自己署名証明書一覧に作成した証明書が表示されることの確認
改めて証明書の一覧を確認します。
::> security certificate show -fields vserver,common-name,serial,ca,type,expiration -type server
■出力例
vserver common-name serial ca type subtype expiration
------------- ------------- ---------------- -------------- --------- ----------- -----------------
ClusterName XX aaaaaaaaaa ClusterName server - Sun Mar 1 2020
ClusterName XX bbbbbbbbbb ClusterName server - Wed Nov 1 2023
2 entries were displayed.
新しく作成した証明書が追加されました。
有効期限(expiration)も2023年なので大丈夫そうです。
なお、シリアル番号(serial)については各証明書を識別するために一意なものなので異なっていて問題ありません。
4. 自己署名証明書の有効化状態を確認
自己署名証明書を作成しただけでは利用されず「有効化」という作業が必要になります。
まずは、以下のコマンドで現在利用されている証明書を確認します。
::> security ssl show -common-name XX
■出力例
Serial Server Client
Vserver Number Common Name Enabled Enabled
------------- ---------------- ------------- ----------- -----------
ClusterName aaaaaaaaaa XX true false
有効期限切れの証明書(Serial Number:aaaaaaaaaa)のServer Enabledが「true」になっており、現在利用されている状態であることが分かります。
5. 新しい自己署名証明書の有効化
それでは新しく作成した自己署名証明書を有効化していきます。
シリアス番号(-serial)には項番3で確認した値(本記事の場合「bbbbbbbbbb」)を入力します。
::> security ssl modify -server-enabled true -vserver クラスタ管理用SVM名 -ca XX -serial シリアル番号
■実行例
::> security ssl modify -server-enabled true -vserver ClusterName -ca XX -serial bbbbbbbbbb
Warning: The certificate ClusterName is a self-signed certificate, which offers no verification of identity by client machines.
This presents the risk of man-in-the-middle attacks by malicious third-parties.
Do you want to continue? {y|n}: y
::>
6. 新しい自己署名証明が有効化されていることの確認
改めて自己署名証明書の有効化状態を確認します。
::> security ssl show -common-name XX
■出力例
Serial Server Client
Vserver Number Common Name Enabled Enabled
------------- ---------------- ------------- ----------- -----------
ClusterName bbbbbbbbbb XX true false
シリアル番号(Serial Number)が「bbbbbbbbbb」となり、新しい自己署名証明書に切り替わっているのが分かります。
7. 期限切れの自己署名証明書の削除
無事に新しい自己署名証明書の有効化もできたので、有効期限切れの証明書を削除していきます。
::> security certificate delete -type server -vserver クラスタSVM名 -common-name XX -ca XX -serial シリアル番号
■実行例
::> security certificate delete -type server -vserver ClusterName -common-name ClusterName -ca ClusterName -serial aaaaaaaaaa
Warning: Deleting a server certificate will also delete the corresponding server-chain certificate, if one exists.
Do you want to continue? {y|n}: y
::>
8. 自己署名証明書一覧の確認
改めて証明書一覧を確認します。
::> security certificate show -fields vserver,common-name,serial,ca,type,expiration -type server
■出力例
vserver common-name serial ca type subtype expiration
------------- ------------- ---------------- --------- --------- ----------- -----------------
ClusterName XX bbbbbbbbbb XX server - Wed Nov 1 2023
1 entries were displayed.
有効期限切れの自己署名証明書(Serial Number:aaaaaaaaaa)が削除されて表示されなくなっていることが分かります。
9. Active IQ Unified Mnagerへのクラスタ登録作業(リベンジ)
自己署名証明書の更新も完了したので、改めてクラスタ登録を実施しました。
前回の「自己署名証明書の有効期限切れ」のエラーが表示されることもなく、無事にクラスタをActive IQ Unified Managerの管理下に登録することができました。
おわりに
いかがだったでしょうか。
今回はActive IQ Unified Managerにクラスタ登録するための自己署名証明の更新についてご紹介しました。
自動作成されるが故に意識できていないというのも恐ろしいことですが、今回の経験で勉強になる部分も多かったです。
本記事が同じ現象でお困りの方の参考になれたら嬉しいです。
最後まで読んでいただき、ありがとうございました。
ではでは!