vCloud Director 10.0 番外編② 外部で作成されたワイルドカード証明書の適用

-------------------------------------過去記事は以下から-------------------------------------

vCloud Director 10.0 ①インストール (プライマリ)

vCloud Director 10.0 ②インストール (スタンバイ)と公開アドレス

vCloud Director 10.0 ③ vCloud Director へのvSphereリソースの登録 

vCloud Director 10.0 ④ 組織及び組織vDCの作成

vCloud Director 10.0 ⑤ テナントへのNSXEdgeの導入とサービスの構成

vCloud Director 10.0 ⑥ 組織vCDネットワークの作成

vCloud Director 10.0 ⑦ vCloud Director上での新規仮想マシンの作成

vCloud Director 10.0 ⑧ カタログ作成

vCloud Director 10.0 番外編① vCloud Director Applianceのアップグレード

-------------------------------------------------------------------------------------------------

今回はvCloud Director Applianceの証明書適用に関しての記事を投稿します。

vCloud Director Appliance環境ではデプロイ時に自己証明書が作成されデフォルトで使用されます。アクセスすると以下の様自己証明書が使用されている為、コンソールが表示されません。

f:id:aritam:20200404010536p:plain

VMware社のドキュメントでは以下フローで、証明書差し替え手順として公開されています。

JAVA keytoolを使用して、自己証明書を作成する
・証明書署名リクエストを作成する
・証明書署名要求を認証局に送信する
認証局ルート証明書をインポートする
・署名済み証明書をインポートする

これまでに関わった本番環境の導入時はCell ServerでCSRを生成して送信することができず、代わりに作成済みのプライベートキーとワイルドカード証明書ルート証明書が提供されるケースがあります。
この様なケースはCell Serverがアプライアンスで提供される様になり、高可用性構成での導入が容易になった事でより多く見かけるようになりました。

 

今回はプライベートキーとワイルドカード証明書ルート証明書をPFXファイルに変換し、Cell Serverにインポートする方法を公開します。

 

f:id:aritam:20200404011035p:plain

①Cell Serverにログインしプライベートキー、ワイルドカード証明書ルート証明書を配置します。今回は以下のファイルで進めます。

プライベートキー:private.key

サーバ証明書:server.cer

ルート証明書:root.cer

 

f:id:aritam:20200404011137p:plain

②opensslを利用しPFXファイルを作成します。パスワードが求められれば、プライベートキーのパスフレーズを入力します。

openssl pkcs12 -export -inkey private.key -in server.cer -certfile root.cer -out server.pfx
Enter Export Password:パスフレーズを入力
Verifying - Enter Export Password:パスフレーズを入力

 

f:id:aritam:20200404012030p:plain

③デフォルトのキーストアファイルをコピーします。

cp /opt/vmware/vcloud-director/certificates.ks /opt/vmware/vcloud-director/certificates-new.ks

 

f:id:aritam:20200404012158p:plain

④コピーしたキーストアファイルにPFXファイルをインポートします。※エイリアスは1
/opt/vmware/vcloud-director/jre/bin/keytool -trustcacerts -storetype JCEKS -storepass VMware1! -importkeystore -srckeystore server.pfx -destkeystore /opt/vmware/vcloud-director/certificates-new.ks -srcstoretype pkcs12

 

f:id:aritam:20200404012448p:plain

 ⑤同じコマンドでキーストアファイルにPFXファイルをインポートします。※エイリアス1が使用されている為、上書きをせずに2としてインポートします。

 /opt/vmware/vcloud-director/jre/bin/keytool -trustcacerts -storetype JCEKS -storepass VMware1! -importkeystore -srckeystore server.pfx -destkeystore /opt/vmware/vcloud-director/certificates-new.ks -srcstoretype pkcs12

Existing entry alias 1 exists, overwrite? [no]: no
Enter new alias name (RETURN to cancel import for this entry): 2

 

 

f:id:aritam:20200404012800p:plain

 ⑥キーストアの証明書リストを表示します。

デフォルトのエイリアス(http,consoleproxy)に加えて項番⑤で追加したエイリアス(1,2)が追加されています。

/opt/vmware/vcloud-director/jre/bin/keytool -storetype JCEKS -storepass VMware1! -keystore /opt/vmware/vcloud-director/certificates-new.ks -list

 

f:id:aritam:20200404013102p:plain

⑦デフォルトエイリアス(http)を削除します。

/opt/vmware/vcloud-director/jre/bin/keytool -delete -alias http -keystore /opt/vmware/vcloud-director/certificates-new.ks -storetype JCEKS -storepass VMware1!

 

f:id:aritam:20200404013246p:plain

⑧デフォルトエイリアス(onsoleproxy)を削除します。

/opt/vmware/vcloud-director/jre/bin/keytool -delete -alias consoleproxy -keystore /opt/vmware/vcloud-director/certificates-new.ks -storetype JCEKS -storepass VMware1!

 

f:id:aritam:20200404013409p:plain

⑨リストを表示させます。エイリアスが(1,2)のみである事を確認します。

/opt/vmware/vcloud-director/jre/bin/keytool -storetype JCEKS -storepass VMware1! -keystore /opt/vmware/vcloud-director/certificates-new.ks -list

 

f:id:aritam:20200404013551p:plain

エイリアス1の名前をhttpに変更します。
/opt/vmware/vcloud-director/jre/bin/keytool -storetype JCEKS -storepass VMware1! -changealias -alias 1 -destalias http -keystore /opt/vmware/vcloud-director/certificates-new.ks

 

f:id:aritam:20200404013909p:plain

エイリアス2の名前をconsoleproxyに変更します。
/opt/vmware/vcloud-director/jre/bin/keytool -storetype JCEKS -storepass VMware1! -changealias -alias 2 -destalias consoleproxy -keystore /opt/vmware/vcloud-director/certificates-new.ks

 

f:id:aritam:20200404014036p:plain

エイリアスを表示させます。PFXファイルからインポートしたエイリアス(1,2)の名前がエイリアス(http,consoleproxy)変更されている事を確認します。

/opt/vmware/vcloud-director/jre/bin/keytool -storetype JCEKS -storepass VMware1! -keystore /opt/vmware/vcloud-director/certificates-new.ks -list

 

f:id:aritam:20200404014254p:plain

⑫項番③でコピーしたキーストアを移動します。

mv /opt/vmware/vcloud-director/certificates-new.ks /opt/vmware/vcloud-director/certificates.ks

f:id:aritam:20200404014534p:plain

⑬キーストアファイルの所有権を更新します。
chown vcloud:vcloud /opt/vmware/vcloud-director/certificates.ks

 

f:id:aritam:20200404014652p:plain

⑭vCDサービスを停止します。

service vmware-vcd stop

 

 

f:id:aritam:20200404014749p:plain

⑮更新したキーストアを使用するようにvCloud Directorを再構成します。サービスを開始するかどうか尋ねられたら、「Y」と答えます。

/opt/vmware/vcloud-director/bin/configure

 Start it now? [y/n]y

 

f:id:aritam:20200404015210p:plain

⑯証明書が更新され、コンソールが表示されました。

 

今回はここまで。