vm.gowatana.jp

NEOにほんごVMware(仮)

NSX ALB(Avi)Essentials エディションで SSL 証明書を作成してみる。(Avi CLI)

VMware NSX Advanced Load Balancer(NSX ALB、旧 Avi)の Essentials エディションでは、Avi UI のメニューに制限があります。

SSL 証明書の作成ボタンも表示されなくなってしまいますが、vSphere with Tanzu でのスーパーバイザ クラスタ構成時には、Avi Controller に SAN(Subject Alternative Name)の設定された SSL 証明書が必要になります。

そこで、Avi CLI から自己署名の SSL 証明書を作成してみます。

 

Avi CLI にはこんなコマンドがありますが・・・

 

利用する場合は、API ガイドや、TAB キー補完などであたりをつけて利用することが多そうかなと思います。

 

今回の内容です。

 

今回の環境

  • VMware NSX Advanced Load Balancer 20.1.5
  • Avi CLI は、Avi Controller VM で実行

 

Avi CLI での SSL 証明書の作成

Avi Controller VM に、SSH でログインしておきます。ログインユーザは、admin です。

 

そして、Avi Controller で、Avi CLI を起動します。起動コマンドは「shell」です。

admin@192-168-10-97:~$ shell
Login: admin
Password: ★パスワードを入力

[admin:192-168-10-97]: >

 

今回の証明書は、下記のパラメータで作成します。

  • (NSX ALB で管理される)証明書オブジェクトの名前: clicert-lab-avi-52
  • 証明書の種類: ssl_certificate_type_system(Avi Controller で使用する証明書)
  • C(国): JP
  • ST(State): Tokyo
  • O(組織): go-lab
  • OU: home-lab
  • CN: lab-avi-52.go-lab.jp(Avi Controller FQDN)
  • SAN: 192.168.10.97(Avi Controller の IP アドレス。vSphere with Tanzu 要件)

 

Avi CLI では、下記のようにコマンドを実行します。Avi CLI はサブ モードに入るとプロンプトが変化するので、赤字部分が実行するコマンドです。

[admin:192-168-10-97]: > configure sslkeyandcertificate clicert-lab-avi-52
[admin:192-168-10-97]: sslkeyandcertificate> type ssl_certificate_type_system
[admin:192-168-10-97]: sslkeyandcertificate> certificate
[admin:192-168-10-97]: sslkeyandcertificate:certificate> self_signed subject_alt_names 192.168.10.97
[admin:192-168-10-97]: sslkeyandcertificate:certificate> subject
[admin:192-168-10-97]: sslkeyandcertificate:certificate:subject> common_name lab-avi-52.go-lab.jp
[admin:192-168-10-97]: sslkeyandcertificate:certificate:subject> country JP
[admin:192-168-10-97]: sslkeyandcertificate:certificate:subject> state Tokyo
[admin:192-168-10-97]: sslkeyandcertificate:certificate:subject> organization go-lab
[admin:192-168-10-97]: sslkeyandcertificate:certificate:subject> organization_unit home-lab
[admin:192-168-10-97]: sslkeyandcertificate:certificate:subject> exit
[admin:192-168-10-97]: sslkeyandcertificate:certificate> exit
[admin:192-168-10-97]: sslkeyandcertificate> save

 

ちなみに、最小限のパラメータとすると下記のように SSL 証明書が作成できます。(プロンプトは省略)

configure sslkeyandcertificate clicert-lab-avi-52
type ssl_certificate_type_system
certificate
self_signed subject_alt_names 192.168.10.97
subject
common_name lab-avi-52.go-lab.jp
exit
exit
save

 

SSL 証明書の設定内容確認

「show sslkeyandcertificate ~」コマンドで、証明書の設定内容を確認できます。このコマンドでは、証明書作成で「save」を実行したときに表示される内容(プラスアルファ)が確認できます。

[admin:192-168-10-97]: > show sslkeyandcertificate clicert-lab-avi-52

 

上記のコマンドでは表示量が多いので、かわりに「save」実行時の例です。

証明書の状態(expiry_status)は SSL_CERTIFICATE_GOOD、有効期間は、デフォルトの 365日になっています。

f:id:gowatana:20210721021225p:plain

 

Avi CLI を終了します。

[admin:192-168-10-97]: > exit
admin@192-168-10-97:~$

 

Avi UI の「Templates」→「Security」→「SSL/TLS Certificates」画面でも、作成された証明書が確認できます。ちなみに、Valid Until の時間は UTC(GMT)のものです。

f:id:gowatana:20210721021526p:plain

 

「Administration」→「Settings」→「Access Settings」にある編集画面で、Avi Controller に設定する「SSL/TLS Certificates」の選択肢に表示されるようになります。これは、証明書の type に「SSL_CERTIFICATE_TYPE_SYSTEM」を設定してあるためです。

f:id:gowatana:20210721021814p:plain

 

補足: NSX ALB 20.1.6 の Essintials エディションの場合

ちなみに、NSX ALB 20.1.6(今回の次のバージョン。この投稿時点の最新版)では、Essintials であっても、「SSL/TLS Certificates」の選択メニューの「Create Certificate」ボタンが表示されました。

f:id:gowatana:20210721022325p:plain

 

以上、Avi CLI で SSL 証明書を作成してみる話でした。