0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

OpsManagerからBOSHを作る際のNSX-TのAPI証明書を直す方法

Last updated at Posted at 2020-07-17

タイトルがやたらと長いですが、Tanzu Application Service(旧PCF)の前提となるBOSHをインストールする際に、NSX-Tの証明書を直す方法

実際のエラー

どこでおきたエラーかというと

の以下の箇所

NSX CA Cert: A CA certificate in PEM format that establishes a secure connection to the NSX server before the BOSH Director authenticates to the NSX Manager. If the NSX Manager generated a self-signed certificate, use the following command to retrieve the CA certificate using OpenSSL:

といわれた通りOpenSSLコマンドで証明書をゲットしても

openssl s_client -showcerts -connect NSX-MANAGER-ADDRESS:443 < /dev/null 2> /dev/null | openssl x509

以下のエラーが表示される。

image.png

でなぜ、エラーになっているかというと、みると証明書に登録されているIP AddressやSAN(Subject Alternative Name)がnsx01となっていて私のNSXのIPアドレスではなかったこと。

どうしてnsx01になったかはすっかり忘れましたが、多分インストールの際に間違って登録したのだと思います。

さて、こまった、直したい。色々サイトをみたがはっきりした直し方がなかったので、動いた方法を記載します。

注意

この手順はLab向けの手順でかつ正式な手順ではございません。APIの証明書を変えるので、APIを利用しているもの影響を及ぼす可能性がございます。
自己責任でお願いします。

環境

OpsManager 2.9
NSX-T 3.0

直し方

まず、Linuxマシンを用意して以下のファイルを作成します。

$ vi nsx-cert.cnf
[ req ]
default_bits = 2048
distinguished_name = req_distinguished_name
req_extensions = req_ext
prompt = no
[ req_distinguished_name ]
countryName = US
stateOrProvinceName = California
localityName = CA
organizationName = NSX
commonName = 10.197.35.14
[ req_ext ]
subjectAltName = @alt_names
[alt_names]
DNS.1 = IP-ADDRESS

commonNameのところを正しいIPアドレスに書き換えてください。あとはそのままにしてください。Californiaじゃないし、USでもないのですが、今回は自己証明書なのでこのままにします。

次に環境変数をExportします。IPアドレスは実際の環境に書き換えてください。

% export NSX_MANAGER_IP_ADDRESS=10.197.35.14
% export NSX_MANAGER_COMMONNAME=10.197.35.14

ここから証明書を生成します。

openssl req -newkey rsa:2048 -x509 -nodes -keyout nsx.key -new -out nsx.crt -subj /CN=$NSX_MANAGER_COMMONNAME  -reqexts SAN -extensions SAN -config <(cat ./nsx-cert.cnf  <(printf "[SAN]\nsubjectAltName=DNS:$NSX_MANAGER_COMMONNAME,IP:$NSX_MANAGER_IP_ADDRESS")) -sha256 -days 365

nsx.keyとnsx.crtが作成されるので後の手順のため保管します。

つぎにNSX-Tにログインします。

System > Certificate > Import > Import Certificate
image.png

  • Name : 適当な重複しない名前
  • Certificate Contents: nsx.keyの内容をコピーペースト
  • Private Key : nsx.crtの内容をコピーペースト
  • Service Certificate : NO にすること

作成後、新しい証明書にIDをハイライトさせ、それも保管します。

image.png

再びLinuxにもどり

export NSX_MANAGER_IP_ADDRESS=10.197.35.14
export CERTIFICATE_ID=607e9b9a-1907-4248-8a0a-b85aa336d6ac

Manager IPとCertificate IDは実際の環境のに合わせてください。
そして、以下のコマンドで証明書の差し替えが発生します。念のため申し上げますが、この段階で古い証明書をつかっている通信はきれますので、Lab以外では推奨しないです。

curl --insecure -u admin:'PASS' -X POST https://$NSX_MANAGER_IP_ADDRESS/api/v1/cluster/api-certificate?action=set_cluster_certificate&certificate_id=$CERTIFICATE_ID

curl --insecure -u admin:'PASS' -X POST https://$NSX_MANAGER_IP_ADDRESS/api/v1/node/services/http?action=apply_certificate&certificate_id=$CERTIFICATE_ID

PASSは環境にあわせてかえてください。

さて、このタイミングでもしNSXのブラウザがあがっていたら、挙動がおかしくなると思います。
その場合、ブラウザを再起動して、NSXに再接続してください。
証明書を確認すると新しく登録したIPアドレスになっているはずです。

image.png

NSX-T側は完了です。
OpsManagerにはnsx.crtの内容でもう一度接続をこころみてください。これでなおるはずです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?