【NetApp】Active IQ Unified Managerにクラスタ登録しようとしたら証明書エラーで失敗した話

2022年11月8日

こんにちは、キクです。

先日、NetAppのActive IQ Unified ManagerとツールへONTAPクラスタを新たに登録しようとした際にエラーにより失敗するという経験をしました。
その原因は「自己署名証明書の有効期限切れ」でした。
正直なところ、普段ONTAPを操作している中ではあまり証明書に関して意識することはなかったのですが、いい勉強になったので記事として整理してみようと思いました。

というわけで、今回は『Active IQ Unified Managerと証明書』をテーマに書いていきたいと思います!

それでは、よろしくお願いします。

動作環境

本記事の内容は下記の環境で実施したものになります
・Active IQ Unified Manager 9.10
・ONTAP 9.3

注意事項

本記事は僕が経験した内容をもとに記載しておりますが、
実行環境や設定内容によっては動作が異なる場合があります。
そのため『参考程度』にお読みいただけますと幸いです。

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」になります。
実際には以下のような管理をすることが可能です。

Active IQ Unified Managerで管理できる主な内容

・ストレージの監視と管理
・イベントとアラートの管理
・クラスタ健全性の管理
・クラスタパフォーマンスの管理
・データ保護の監視
・レポートの使用
・REST APIの使用

参考: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があり、次のように説明されていました。

自己署名正目書について

1. SVMのSSL自己署名証明書は、SVMの作成時に自動的に作成される
2. SSLプロトコルは、デジタル証明書を使用してWebサーバとブラウザの間に
 暗号化された接続を確立することでWebアクセスのセキュリティを向上させる
3. ONTAPのSVMの自己署名証明書には、次のような一般的な用途がある
 ・For REST APIs
 ・For OnCommand System Manager(OCSM)
 ・For OnCommand Unified Manager(OCUM)

参考:SVM の自己署名証明書には、どのような一般的な用途がありますか?

普段あまり意識しなかったのは、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」の範囲で指定することができるので、必要に応じて調整しましょう。

ポイント

有効期限が切れた自己署名証明書ではActive IQ Unified Managerにクラスタ登録することはできませんでしたが、登録済みクラスタの自己署名証明書が有効期限切れになってもクラスタの登録が解除されることはなく、引き続きActive IQ Unified Managerで管理することは可能です。
※念のためですが「更新しなくてもいい」という意味ではありません。

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にクラスタ登録するための自己署名証明の更新についてご紹介しました。
自動作成されるが故に意識できていないというのも恐ろしいことですが、今回の経験で勉強になる部分も多かったです。
本記事が同じ現象でお困りの方の参考になれたら嬉しいです。

最後まで読んでいただき、ありがとうございました。
ではでは!

  • LINE
  • -NetApp
    -