VMware NSX 4.1 証明書の更新手順について

<font color="blue">**VMware NSX 4.1 スタンドアロン環境**</font> (VMware Cloud Foudation 5.0及び5.1に組み込みではない) における、APIによる <font color="red">**自己署名証明書による証明書の更新手順**</font> について確認しましたので、以下にまとめます。


# VMware NSX 4.1 の証明書の種類
NSXの証明書には、以下の3種類があります。[※参照](https://docs.vmware.com/jp/VMware-NSX/4.1/administration/GUID-CA4DC685-3013-40F4-930D-A10173F8FA25.html)
今回はプラットフォーム証明書の更新を実施します。
* <font color="green">プラットフォーム証明書</font>： NSX内の内部通信と、NSX ManagerからAPI またはユーザー インターフェイスにアクセスする時の外部認証に使用される
* <font color="green">サービス証明書</font>： ロード バランサ、VPN、TLS等にて使用される
* <font color="green">プリンシパル ID 証明書</font>： NSX Federation環境等にて使用される


# NSXの証明書
NSXの証明書一覧は、[こちら](https://docs.vmware.com/jp/VMware-NSX/4.1/administration/GUID-3DD19193-770C-47F3-A0F3-7B7703F274C8.html)になりますが、有効期限が短い証明書（825日）は以下の通りとなります。
* <font color="purple">APH-AR証明書</font>：service_type=APH を使用して置き換え
* <font color="purple">APH-TN証明書</font>：service_type=APH_TN を使用して置き換え
* <font color="purple">API（別名 tomcat）証明書</font>：service_type=API を使用して置き換え
* <font color="purple">クラスタ（別名 mp-cluster）証明書</font>：service_type=MGMT_CLUSTER を使用して置き換え

# 自己署名証明書の作成
* 証明書署名要求ファイルの作成：[こちらの手順](https://docs.vmware.com/jp/VMware-NSX/4.1/administration/GUID-8F851905-F3E2-482B-BC43-04A037EC779E.html#GUID-8F851905-F3E2-482B-BC43-04A037EC779E)にて、「システム」＞「証明書」＞「CSR」タブより「CSRを生成」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/eda56d6c-631c-be9d-81e1-e8bc12a9d0a9.png)


* 自己署名証明書の作成：[こちらの手順](https://docs.vmware.com/jp/VMware-NSX/4.1/administration/GUID-9BBF8A54-DFBD-4B24-B7A1-492CB42DD0D5.html)にて、「証明書」＞「CSR」タブより「CSR の自己署名証明書」を作成　※今回はサービス証明書ではなく、プラットフォーム証明書の為、サービス証明書は「いいえ」を選択。日数は825以上は指定不可。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/25bc4d9f-afa5-ffd3-80e9-fb8a6731b18f.png)

* 「証明書」タブに自己署名証明書が表示される事を確認。まだこの証明書は適用していない為、使用場所が「０」である事を確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/4a5e73c3-cc53-5faf-d71a-9a48e1d769ff.png)



# 証明書の更新手順
* 証明書の更新前に、NSXのバックアップを取得する。
「システム」＞「バックアップとリストア」＞「バックアップの取得」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/1ed4ea5d-4cc8-5c3e-3af2-6391632e0191.png)

* 証明書の置き換え：[こちらの手順](https://docs.vmware.com/jp/VMware-NSX/4.1/administration/GUID-50C36862-A29D-48FA-8CE7-697E64E10E37.html)にて、実施する。まず、上記で作成した自己署名証明書を選択し、証明書IDをコピーする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/eefddf2c-0c6a-da1e-2edf-48e4f187215e.png)

* ManagerノードのAPI（別名 tomcat）証明書の置き換えは以下のAPIを実施する。
```
POST /api/v1/trust-management/certificates/<cert-id>?action=apply_certificate&service_type=API&node_id=<node-id>
```
* なおNSX ManagerのノードIDは、「システム」＞「アプライアンス」＞「詳細の表示」＞「UUID」よりコピーする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/9c09b183-790d-5bc6-42a4-d7e354501fc4.png)

* cert-idに証明書IDを指定し、node-idに上記のUUIDを指定してAPIを発行し、成功（Status 200 OK）する事を確認する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/a9e535f8-2e6b-4eee-e35c-586e1bee25d1.png)

* 対象の自己署名書の使用場所が、適用先のNSX MangerのUUIDと一致する事を確認する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/251519/8d57e0eb-2b3f-e13e-13ac-4b495cbbb9b2.png)

* その他の証明書についてもservice_typeを変更の上、同様に実施する。
```
# APH-AR証明書
POST /api/v1/trust-management/certificates/<cert-id>?action=apply_certificate&service_type=APH&node_id=<node-id>

# APH-TN証明書
POST /api/v1/trust-management/certificates/<cert-id>?action=apply_certificate&service_type=APH_TN&node_id=<node-id>

# クラスタ（別名 mp-cluster）証明書
POST /api/v1/trust-management/certificates/<cert-id>?action=apply_certificate&service_type=MGMT_CLUSTER&node_id=<node-id>
```