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日になっています。
Avi CLI を終了します。
[admin:192-168-10-97]: > exit
admin@192-168-10-97:~$
Avi UI の「Templates」→「Security」→「SSL/TLS Certificates」画面でも、作成された証明書が確認できます。ちなみに、Valid Until の時間は UTC(GMT)のものです。
「Administration」→「Settings」→「Access Settings」にある編集画面で、Avi Controller に設定する「SSL/TLS Certificates」の選択肢に表示されるようになります。これは、証明書の type に「SSL_CERTIFICATE_TYPE_SYSTEM」を設定してあるためです。
補足: NSX ALB 20.1.6 の Essintials エディションの場合
ちなみに、NSX ALB 20.1.6(今回の次のバージョン。この投稿時点の最新版)では、Essintials であっても、「SSL/TLS Certificates」の選択メニューの「Create Certificate」ボタンが表示されました。
以上、Avi CLI で SSL 証明書を作成してみる話でした。