このセクションでは、NSX Advanced Load Balancer でクライアント証明書認証を有効にする方法について説明します。クライアント証明書認証が有効になっている場合、NSX Advanced Load Balancer は、信頼できる認証局および構成されたクライアント失効リスト (CRL) に対してクライアントによって提示される SSL 証明書を検証します。

キーと証明書の生成

キーと証明書のディレクトリを作成するには、次の手順を実行します。

  1. NSX Advanced Load Balancer CLI にログインします。

  2. 次の mkdir コマンドを使用して、格納するディレクトリを作成します。

  3. クライアント認証に必要なキーと証明書を実行します。

  4. cd コマンドを使用してディレクトリにアクセスします。

$ mkdir client-cert-auth-demo
$ cd client-cert-auth-demo
[client-cert-auth-demo] $

クライアント証明書 (CA) キーを生成するには、openssl genrsa -out CA.key 2048 コマンドを使用して、2048 ビット暗号化の自己署名 CA 証明書を生成します。

[client-cert-auth-demo] $ openssl genrsa -out CA.key 2048
Generating RSA private key, 2048 bit long modulus
......................................................................+++

e is 65537 (0x10001)
Generate self-signed CA Cert:
[client-cert-auth-demo] $ openssl req -x509 -new -nodes -key CA.key -sha256 -days 1024 -out CA.pem
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:US
State or Province Name (full name) []:California
Locality Name (eg, city) [Default City]:Santa Clara
Organization Name (eg, company) [Default Company Ltd]:Avi Networks
Organizational Unit Name (eg, section) []:Engineering
Common Name (eg, your name or your server's hostname) []:demo.avi.com
Email Address []:
注:

メール アドレスは空のままにします。

クライアント証明書署名リクエストを生成するには、次の手順を実行します。

  1. openssl genrsa -out client.key 2048 コマンドを使用して client.key を生成します。

  2. openssl req -new -key client.key -out client.csr コマンドを使用してクライアント CSR を作成します。

  3. 要件に従ってすべての詳細を指定します。

注:
  • [共通名] は、クライアント マシンのホスト名または FQDN と一致する必要があります。

  • メール アドレス、チャレンジ パスワード、およびオプションの会社名は空のままにします。

Generate client CSR:
 [client-cert-auth-demo] $ openssl req -new -key client.key -out client.csr
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
 -----
 Country Name (2 letter code) [XX]:US
 State or Province Name (full name) []:California
 Locality Name (eg, city) [Default City]:Santa Clara
 Organization Name (eg, company) [Default Company Ltd]:Avi Networks
 Organizational Unit Name (eg, section) []:Engineering
 Common Name (eg, your name or your server's hostname) []:client.avi.com
 Email Address []:
 Please enter the following 'extra' attributes
 to be sent with your certificate request
 A challenge password []:
 An optional company name []:

署名付きクライアント証明書を作成するには、次の OpenSSL コマンドを使用して署名付きクライアント証明書を作成します。

[client-cert-auth-demo] $ openssl x509 -req -in client.csr -CA CA.pem -CAkey CA.key -CAcreateserial -
out client.pem -days 1024 -sha256
 Signature ok
 subject=/C=US/ST=California/L=Santa Clara/O=Avi Networks/OU=Engineering/CN=client.avi.com
 Getting CA Private Key

クライアント キーを PEM から PKCS12 (PFX) に変換するには、OpenSSL コマンドを使用してクライアント キーの形式を PEM から PKCS12 に変換します。エクスポート パスワードを入力します。

[client-cert-auth-demo] $ openssl pkcs12 -export -out client.pfx -inkey client.key -in client.pem -certfile
 CA.pem
 Enter Export Password:
 Verifying - Enter Export Password: