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 Applianceのアップグレード
-------------------------------------------------------------------------------------------------
今回はvCloud Director Applianceの証明書適用に関しての記事を投稿します。
vCloud Director Appliance環境ではデプロイ時に自己証明書が作成されデフォルトで使用されます。アクセスすると以下の様自己証明書が使用されている為、コンソールが表示されません。
VMware社のドキュメントでは以下フローで、証明書差し替え手順として公開されています。
・JAVA keytoolを使用して、自己証明書を作成する
・証明書署名リクエストを作成する
・証明書署名要求を認証局に送信する
・認証局のルート証明書をインポートする
・署名済み証明書をインポートする
これまでに関わった本番環境の導入時はCell ServerでCSRを生成して送信することができず、代わりに作成済みのプライベートキーとワイルドカード証明書、ルート証明書が提供されるケースがあります。
この様なケースはCell Serverがアプライアンスで提供される様になり、高可用性構成での導入が容易になった事でより多く見かけるようになりました。
今回はプライベートキーとワイルドカード証明書、ルート証明書をPFXファイルに変換し、Cell Serverにインポートする方法を公開します。
①Cell Serverにログインしプライベートキー、ワイルドカード証明書、ルート証明書を配置します。今回は以下のファイルで進めます。
プライベートキー:private.key
サーバ証明書:server.cer
ルート証明書:root.cer
②opensslを利用しPFXファイルを作成します。パスワードが求められれば、プライベートキーのパスフレーズを入力します。
openssl pkcs12 -export -inkey private.key -in server.cer -certfile root.cer -out server.pfx
Enter Export Password:パスフレーズを入力
Verifying - Enter Export Password:パスフレーズを入力
③デフォルトのキーストアファイルをコピーします。
cp /opt/vmware/vcloud-director/certificates.ks /opt/vmware/vcloud-director/certificates-new.ks
④コピーしたキーストアファイルに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
⑤同じコマンドでキーストアファイルに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
⑥キーストアの証明書リストを表示します。
デフォルトのエイリアス(http,consoleproxy)に加えて項番⑤で追加したエイリアス(1,2)が追加されています。
/opt/vmware/vcloud-director/jre/bin/keytool -storetype JCEKS -storepass VMware1! -keystore /opt/vmware/vcloud-director/certificates-new.ks -list
⑦デフォルトエイリアス(http)を削除します。
/opt/vmware/vcloud-director/jre/bin/keytool -delete -alias http -keystore /opt/vmware/vcloud-director/certificates-new.ks -storetype JCEKS -storepass VMware1!
⑧デフォルトエイリアス(onsoleproxy)を削除します。
/opt/vmware/vcloud-director/jre/bin/keytool -delete -alias consoleproxy -keystore /opt/vmware/vcloud-director/certificates-new.ks -storetype JCEKS -storepass VMware1!
⑨リストを表示させます。エイリアスが(1,2)のみである事を確認します。
/opt/vmware/vcloud-director/jre/bin/keytool -storetype JCEKS -storepass VMware1! -keystore /opt/vmware/vcloud-director/certificates-new.ks -list
⑩エイリアス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
⑩エイリアス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
⑪エイリアスを表示させます。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
⑫項番③でコピーしたキーストアを移動します。
mv /opt/vmware/vcloud-director/certificates-new.ks /opt/vmware/vcloud-director/certificates.ks
⑬キーストアファイルの所有権を更新します。
chown vcloud:vcloud /opt/vmware/vcloud-director/certificates.ks
⑭vCDサービスを停止します。
service vmware-vcd stop
⑮更新したキーストアを使用するようにvCloud Directorを再構成します。サービスを開始するかどうか尋ねられたら、「Y」と答えます。
/opt/vmware/vcloud-director/bin/configure
Start it now? [y/n]y
⑯証明書が更新され、コンソールが表示されました。
今回はここまで。