vRealize Operations 6.3-8.x の有効期限の切れた内部証明書を置き換える
search cancel

vRealize Operations 6.3-8.x の有効期限の切れた内部証明書を置き換える

book

Article ID: 327406

calendar_today

Updated On:

Products

VMware Aria Suite

Issue/Introduction

Symptoms:
免責事項: これは英文の記事 「Replace expired internal certificate in vRealize Operations 6.3-8.10 (71018) 」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
  • vRealize Operations の内部証明書の期限が切れている。
    • 管理 UI にログインできないことで判断できます。
  • クラスタをオフラインからオンラインにした際に以下のメッセージが表示されます。
    • "Data Retriever is not initialized yet. Please wait."
  • vRealize Operations の内部証明書が間もなく有効期限が過ぎる。
  注:この記事は、VMware Aria Operations 8.12 以降には適用されず、必須ではありません。

Environment

VMware vRealize Operations 8.x
VMware vRealize Operations 8.1.x
VMware vRealize Operations 8.10.x
VMware vRealize Operations 8.3.x
VMware vRealize Operations 8.0.x
VMware vRealize Operations 8.6.x
VMware vRealize Operations 8.2.x
VMware vRealize Operations 8.4.x
VMware vRealize Operations 8.5.x

Cause

vRealize Operations の内部証明書は、初回のデプロイ時に生成されます。
vRealize Operations の新しいバージョンへのアップグレードでは内部証明書はアップグレードされません。

注意:内部証明書からカスタム証明書への入れ替えはサポートまたは可能ではありません。

Resolution

証明書の更新が必要かどうかの確認

まず、証明書の更新が必要かどうかを検証します。証明書がまだ期限切れになっていない場合は、web ブラウザから証明書を確認できます。これらの一般的な web ブラウザについては、後述する方法をご覧ください。
証明書の有効期限が切れている場合、または UI にアクセスできない場合は、プライマリ ノードのコマンド ラインから証明書を確認する必要があります。
注 : vRealize Operations 8.0 では、証明書の有効期限が切れる前に、UI に警告のポップアップが表示されます。

Mozilla Firefox

  1. https://Primary_Node_IP_or_FQDN:6061 を開きます。
  • Primary_Node_IP_or_FQDN を vRealize Operations プライマリ ノードの実際の IP アドレスまたは FQDN に置き換えます。
  • 警告: 「潜在的なリスクあり」または「安全な接続ができませんでした」というメッセージが表示されます。これは想定された動作です。
  • 証明書を表示するには Gemfire サービスが稼働している必要があります。
  • Webページが読み込まれることは想定されていません。これは正常な動作です。手順を続行します。
  1. [詳細] をクリックしてから、[証明書を表示] をクリックします。
  2. [有効期限] で証明書の終了日を確認します。

Google Chrome

  1. https://Primary_Node_IP_or_FQDN:6061 を開きます。
  • Primary_Node_IP_or_FQDN を vRealize Operations プライマリ ノードの実際の IP アドレスまたは FQDN に置き換えます。
  • 警告: 「この接続ではプライバシーが保護されません」または「このサイトは安全ではありません」というメッセージが表示されます。これは想定された動作です。
  • 証明書を表示するには Gemfire サービスが稼働している必要があります。
  • Webページが読み込まれることは想定されていません。これは正常な動作です。手順を続行します。
  1. アドレス バーの [保護されていない] をクリックしてから、[証明書 (無効)] をクリックします。
  2. [有効期間の開始日] で証明書の終了日を確認します。

Microsoft Edge

  1. https://Primary_Node_IP_or_FQDN:6061 を開きます。
  • Primary_Node_IP_or_FQDN を vRealize Operations プライマリ ノードの実際の IP アドレスまたは FQDN に置き換えます。
  • 警告: 「このサイトは安全ではありません」というメッセージが表示されます。これは想定された動作です。
  • 証明書を表示するには Gemfire サービスが稼働している必要があります。
  • Webページが読み込まれることは想定されていません。これは正常な動作です。手順を続行します。
  1. アドレス バーの [証明書エラー] をクリックしてから、[証明書を表示] をクリックします。
  2. [有効期間の終了日] で証明書の終了日を確認します。

コマンド ライン

証明書の有効期限が切れている場合、または UI にアクセスできない場合は、プライマリ ノードのコマンドラインから証明書を確認する必要があります。
  1. SSH またはコンソール セッションで root としてプライマリ ノードにログインします。
  2. 次のコマンドを実行します。
/bin/grep -E --color=always -B1 'java.security.cert.CertPathValidatorException: validity check failed|java.security.cert.CertificateExpiredException' $ALIVE_BASE/user/log/*.log | /usr/bin/tail -20

注:
手順 2 が何も返さなかった場合、証明書の更新は必要ありません。
手順 2 で、validity check failed を含む出力が返された場合は、ただちに証明書を更新する必要があります。
 

証明書の更新

証明書を更新するには、適切な pak ファイルをインストールして、新しい内部証明書を生成します。
証明書がすでに期限切れになっているかどうかに応じて、次の手順を実行して、PAK ファイルをインストールします。

内部証明書の有効期限が切れていない
内部証明書の有効期限が切れている

 

内部証明書の有効期限が切れていない

vRealize Operations の内部証明書の有効期限が切れていない場合は、vRealize Operations クラスタが オフライン の状態にあるときに、PAK ファイルをインストールします。

:特に別途の記載がない限り、次のすべての手順が vRealize Operations クラスタのすべてのノードで完了していることを確認します。
  1. vRealize Operations Manager のスナップショットを作成する方法」に従って vRealize Operations ノードのスナップショットを作成します。
  2. お使いの vRealize Operations のバージョンに合う証明書更新 PAK ファイルをダウンロードします。VMware Patch Portal 
  • ProductはvROps Certificate Renewalを選択
  • バージョンはvRealize Operations の製品バージョンを選択
                  注 :
  • バージョン6.3から8.1.1の場合は、バージョン8.0.0を選択します。このパックはvRealize Operationsのバージョン6.3 - 8.1.1と互換性があります。
  • vRealize Operations 8.4以降では、証明書更新 PAKはVMware Downloads の対応する製品バージョンのページからも利用可能です。
  1. vRealize Operations クラスタのすべてのノードのSSHまたはコンソールにrootでログインします。
  2. ローカルの管理者ユーザーとして vRealize Operations 管理 UI にログインします。
  3. [クラスタのステータス] で、[オフラインにする] をクリックします。
:[クラスタのステータス] に [オフライン] と表示されるまで待機します。
  1. 左パネルの ソフトウェア アップデート をクリックします。
  2. メイン パネルの ソフトウェア アップデートのインストール をクリックします。
  3. ウィザードの手順に沿って、PAK ファイルを見つけてインストールします。
  4. 証明書の更新 PAK ファイルをインストールします。
  5. ソフトウェア アップデートが完了するまで待ちます。完了すると、管理者インターフェイスからログアウトされます。
:クラスタのステータスでインストールが長時間完了しない場合、手順14のあとに記載されている4つのステップを実施して下さい。
  1. ローカルの管理者ユーザーとして vRealize Operations 管理 UI にログインします。
  2. ブラウザ キャッシュを消去し、ブラウザ ページが自動で更新されない場合は、ページの表示を更新してください。
  3. [クラスタのステータス] で、[オンラインにする] をクリックします。
:クラスタのステータスが [オンライン化] に変わります。クラスタのステータスが [オンライン] に変わったらアップグレードの完了です。
  1. vRealize Operationsクラスタの全てのノードで次のコマンドを実行してください。
  • chown admin:admin -R /storage/vcops/user/conf/ssl/ /storage/vcops/user/conf/ssl_bak/ /storage/db/casa/webapp/hsqldb/
  • chown -h root:root /storage/vcops/user/conf/ssl/web_cert.pem /storage/vcops/user/conf/ssl/web_chain.pem /storage/vcops/user/conf/ssl/web_key.pem
  • chmod guo+r -R /storage/vcops/user/conf/ssl/
  • chmod 444 /storage/vcops/user/conf/ssl/cacert.pem /storage/vcops/user/conf/ssl/slice_*_cert.pem
  • chmod 400 /storage/vcops/user/conf/ssl/cakey.pem /storage/vcops/user/conf/ssl/slice_*_cert.pfx /storage/vcops/user/conf/ssl/slice_*_key.pem
  • chmod 640 /storage/vcops/user/conf/ssl/tcserver.keystore
   注: バージョン 8.4 以降の場合は、プライマリ ノード、プライマリ レプリカ ノード (存在する場合)、およびすべてのデータ ノードで次のコマンドを実行します。
 
  • chown postgres:root /storage/vcops/user/conf/ssl/postgres_vcopsrepl_*
  • chmod 600 /storage/vcops/user/conf/ssl/postgres_vcops_key.pk8 /storage/vcops/user/conf/ssl/postgres_vcopsrepl_key.pem
  • chmod 640 /storage/vcops/user/conf/ssl/postgres_vcops_cert.pem /storage/vcops/user/conf/ssl/postgres_vcopsrepl_cert.pem
 
管理 UI で PAK ファイルのインストールが長時間完了にならない場合、次の4つのステップを実施して下さい。
  1. vRealize Operations クラスタのプライマリ ノードに SSH またはコンソール経由で root としてログインします。
  2. PAK ファイルのインストールステータスの更新のために、以下のコマンドを実行します。
sed -i -e 's/\"initialization_state\"\:\"INITIALIZING\"/\"initialization_state\"\:\"NONE\"/g' /data/db/casa/webapp/hsqldb/casa.db.script
  1. 1-2 のステップをプライマリ レプリカ ノード(存在する場合)でも実行してください。
  2. 以下のコマンドをプライマリ ノードとプライマリ レプリカ ノード(存在する場合)で実行して CaSA サービスを再起動してください。
service vmware-casa restart
 

内部証明書の有効期限が切れている

vRealize Operations の内部証明書の有効期限がすでに切れている場合は、PAK ファイルを手動でインストールする必要があります。クラスタが [オフライン] 状態にあるときに、vRealize Operations クラスタで次の手順を実行します。

:特に別途の記載がない限り、次のすべての手順が vRealize Operations クラスタのすべてのノードで完了していることを確認します。
  1. vRealize Operations Manager のスナップショットを作成する方法」に従って vRealize Operations ノードのスナップショットを作成します。
  2. お使いの vRealize Operations のバージョンに合う証明書更新 PAK ファイルをダウンロードします。VMware Patch Prtal 
  • ProductはvROps Certificate Renewalを選択
  • バージョンはvRealize Operations の製品バージョンを選択
注 :
  • バージョン6.3から8.1.1の場合は、バージョン8.0.0を選択します。このパックはvRealize Operationsのバージョン6.3 - 8.1.1と互換性があります。
  • バージョン 8.4.x ~ 8.10.x の場合は、バージョン 8.4.0 を選択します。このパックは、vRealize Operations バージョン 6.4 ~ 8.10.x と互換性があります。
  1. PAK ファイルを SCP ユーティリティを使用して vRealize Operations クラスタのすべてのノードの /tmp/ ディレクトリにコピーします。
  2. vRealize Operations クラスタのすべてのノードの SSH またはコンソールにrootとしてログインします。
  3. vRealize Operations クラスタのすべてのノードで次のコマンドを実行して、必要なディレクトリを作成します。
mkdir -p /data/db/pakRepoLocal/vRealize_Operations_Manager_Enterprise_Certificate_Renewal/extracted
  1. PAK ファイルを vRealize Operations クラスタのすべてのノード上で解凍します。
unzip /tmp/vRealize_Operations_Manager_Enterprise_Certificate_Renewal-build.pak -d /data/db/pakRepoLocal/vRealize_Operations_Manager_Enterprise_Certificate_Renewal/extracted

build はダウンロードした PAK ファイルにあわせて適宜置き換えて下さい。
unzip /tmp/vRealize_Operations_Manager_Enterprise_Certificate_Renewal-8.0.0.15217416.pak -d /data/db/pakRepoLocal/vRealize_Operations_Manager_Enterprise_Certificate_Renewal/extracted
 
  1. 以下のコマンドを実行して全てのサービスを停止します。
       service vmware-vcops-watchdog stop
       service vmware-vcops stop

       注意: 8.3以降のバージョンでは、vrops-statusコマンドを使用してすべてのサービスが
          停止していることを確認します。
                       仮にサービスが実行されている場合、個別にkillしてください。
       例: (vpostgres) is running (3557)
               次のコマンドを実行して停止します: kill -9 3557
  1. is_admin プロパティが casa.db.srcipt のプライマリノードにのみ設定されているかどうかを確認します。   
  1. すべてのノード(リモートコレクターとWitnessを含む)で次のコマンドを実行して、is_adminプロパティのステータスを確認します。
    
    sed -nre "/clusterMembership/ s/^[^']+'([^']+)','([^']+)'.*/\2/p" /storage/db/casa/webapp/hsqldb/casa.db.script | python -m json.tool
    
    
  2. 出力で「is_admin_node」:true」は、「slice_name」:「MASTER」の場合にのみ設定する必要があります。他のノードにtrueが設定されている場合は、すべてのノード(Remote CollectorとWitnessを含む)で以下を実行します。
  • service vmware-casa stop を実行します
  • /storage/db/casa/webapp/hsqldb/casa.db.script を編集し、「 is_admin_node 」がプライマリノードで true に設定され、他のすべてのノードで false に設定されていることを確認します
  • service vmware-casa start を実行します
 
  1. 下記のコマンドを順番通りに実行します。順番に気を付けて下さい。
             Command$VMWARE_PYTHON_BIN                              /data/db/pakRepoLocal/vRealize_Operations_Manager_Enterprise_Certificate_Renewal/extracted/updateCoordinator.py EXPIRED
i. まず、クラスタのすべてのリモート コレクタ ノード(存在する場合)でコマンドを実行し、タスクの完了を待ちます。
ii. 次にすべてのデータノード、監視ノード(存在する場合)そしてプライマリ レプリカ ノード(存在する場合)でコマンドを実行します。各ノードでの完了は待たずに、全てのノードでコマンドを実行します。最後のノードで  Waiting for certificate generation to complete が表示されたら 60 秒程度待ち、次のステップへ進みます。
iii. 最後にプライマリ ノードでコマンドを実行します。
コマンドが完了後すぐに、データノードとプライマリ レプリカ ノード(存在する場合)でペンディング状態だったタスクが完了するはずです。

:プライマリ ノードに /var/vmware/_cert_generation_completed が作成されていれば、コマンドが問題なく完了しています。
  1. vRealize Operations クラスタのすべてのノードで以下のコマンドを実行します。
  • chown admin:admin -R /storage/vcops/user/conf/ssl/ /storage/vcops/user/conf/ssl_bak/ /storage/db/casa/webapp/hsqldb/
  • chown -h root:root /storage/vcops/user/conf/ssl/web_cert.pem /storage/vcops/user/conf/ssl/web_chain.pem /storage/vcops/user/conf/ssl/web_key.pem
  • chmod guo+r -R /storage/vcops/user/conf/ssl/
  • chmod 444 /storage/vcops/user/conf/ssl/cacert.pem /storage/vcops/user/conf/ssl/slice_*_cert.pem
  • chmod 400 /storage/vcops/user/conf/ssl/cakey.pem /storage/vcops/user/conf/ssl/slice_*_cert.pfx /storage/vcops/user/conf/ssl/slice_*_key.pem
  • chmod 640 /storage/vcops/user/conf/ssl/tcserver.keystore
       注:8.4以降のバージョンでは、プライマリーノード、プライマリーレプリカノード(存在する場合)、
  すべてのデータノードで以下のコマンドを実行してください。
  • chown postgres:root /storage/vcops/user/conf/ssl/postgres_vcopsrepl_*
  • chmod 600 /storage/vcops/user/conf/ssl/postgres_vcops_key.pk8 /storage/vcops/user/conf/ssl/postgres_vcopsrepl_key.pem
  • chmod 640 /storage/vcops/user/conf/ssl/postgres_vcops_cert.pem /storage/vcops/user/conf/ssl/postgres_vcopsrepl_cert.pem  
  1. ローカルの管理者ユーザーとして vRealize Operations 管理 UI にログインします。
  2. [クラスタのステータス] で、[オフラインにする] をクリックします。
  3. クラスターがオフラインにならない場合は、[クラスタのステータス]の下の[強制的にオフラインにする] をクリックします。
:[クラスタのステータス] に [オフライン] と表示されるまで待機します。
  1. [クラスタのステータス] で、[オンラインにする] をクリックします。
:[クラスタのステータス] に [オンライン] と表示されるまで待機します。


Additional Information

:証明書の更新後、新しい証明書が生成されると、vRealize Operations はトラストストアに以前のキーを保持します。vRealize Operations は、古い証明書と新しい証明書の両方を検証に使用します。
現在、取り消すためのメカニズムはありません。 

Impact/Risks:
次の手順は、vRealize Operations 6.3 〜 8.10.X 向けです。
vRealize Operations Manager 6.2.x とそれ以前にはリカバリ オプションはありません。
vRealize Operations 8.6 へのアップグレードで内部証明書が更新されます。ただし Cloud Proxy ノードと接続されている環境は更新されません。
内部証明書の有効期限が過ぎていて、また Cloud Proxy ノードを vRealize Operations 8.6 へのアップグレード前に構成している環境は、VMware vRealize Operations Certifcate Renewal PAK ファイルを適用します。

Cloud Proxyが接続されている vRealize Operations 8.5 以前を使用している場合は、vRealize Operations 8.10 以降にアップグレードする前に、vRealize Operations 8.6 にアップグレードする必要があります
vRealize Operations 8.5 以前を使用していて、クラウド プロキシが接続されていない場合は、 アップグレード パスの範囲内で vRealize Operations 8.10 以降に直接アップグレードできます。

PAK ファイルによって vRealize Operations 証明書をアップグレードした後、Cloud Proxy 証明書を手動でアップグレードする必要があります (vRealize Operations 8.4 以降)。

これを行うには、任意のブラウザを使用して vRealize Operations からルート証明書を抽出し、 Add CA certs while deploying a cloud proxy in VMware Aria Operations (83698)   に従ってCloud Proxyにアップロードする必要があります。

以下の解決策に従う前に、必ず「vRealize Operations Manager のスナップショットを作成する方法」に従って vRealize Operations ノードのスナップショットを作成します。
:証明書がすでに期限切れになっていて、管理 UI にアクセスできない場合は、手順1、2、10、および 11 をスキップできます。

:vRealize Operations の新しいバージョンへのアップグレードは本記事にある対策の代用にはなりません。下記の手順に従ってください。