証明書モードが "thumbprint" に設定されている場合、vCenter Server 8.0 U3 で HA クラスタを構成できません。
search cancel

証明書モードが "thumbprint" に設定されている場合、vCenter Server 8.0 U3 で HA クラスタを構成できません。

book

Article ID: 384572

calendar_today

Updated On:

Products

VMware vCenter Server 8.0

Issue/Introduction

免責事項: これは英文の記事「HA clusters fails to configure in vCenter Server 8.0 U3 when the VPXD certificate mode is set to "thumbprint".」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

  • vCenter Server 8.0.3 にアップグレードした後、HA クラスタの構成に失敗し、プライマリ HA ホストのみがアクティブのままになります。 
  • HA が有効なクラスタでは、次の警告が表示されます。:
    設定されているリソースでは、クラスタ <クラスタ名> 上で必要な vSphere HA フェイルオーバー レベルを実現するには不十分です
  • 他のホストに接続すると、fdm.log に「tlsv1 alert unknown ca」と出力されます。
    Failed to SSL handshake; SSL(<io_obj p:0x0000002e86fda5f0, h:30, <TCP '**.**.**.** : 8111'>, <TCP '**.**.**.** : 11911'>>), e: 167773208(tlsv1 alert unknown ca (SSL routines)), duration: 5msec
    YYYY:MM:DDTHH:MM:SS Er(163) Fdm[11588024]: --> [context]zKq7AVECAQAAAPONbgEKZmRtAID8eoEBZmRtAIDJF2cBgBugagGApKJqAYBapGoBgJ4GbAGAgDdsAYBL1IwBAYJ6AGxpYnB0aHJlYWQuc28uMAAC7y4PbGliYy5zby42AA==[/context] creating ssl stream or doing handshake
    
  • fdm.log には、マスター FDM ホストに接続しようとしたときに次のようなメッセージが出力されます。
    Er(163) Fdm[1151234]: --> The remote host certificate has these problems:
    Er(163) Fdm[1151234]: -->
    Er(163) Fdm[1151234]: --> * unable to get local issuer certificate)
  • 証明書モードが  thumbprint モードに設定されています。

Environment

vCenter Server 8.0.3

Cause

  • これは、バージョン 8.0U3 で vSphere HA が変更され、fdm 操作中に証明書が検証されるようになったことが原因です。

  • ESXi ホストの自己署名証明書は、vCenter Server でサポートされなくなりました。

  • vCenter Server の詳細設定「vpxd.certmgmt.mode」が「thumbprint」に設定されている環境では、自己署名証明書を持つ ESXi ホストを vCenter Server に追加できますが、サポートされていない証明書のため vSphere HA は正常に有効化されません。

Resolution

この問題は、VMware vCenter Server 8.0 Update 3eで修正されました。

変更を行う前に vCenter のスナップショットを取得してください。

この問題を回避するには、環境に応じて証明書モードを「vmca」または「custom」に変更します。

vpxd.certmgmt.modeはvCenterの詳細設定にあり、以下の手順で編集できます:

  1. vSphere Client で、vCenter Server インスタンスに移動します。
  2. 構成タブを選択します。
  3. [ 詳細設定 ]を選択します。
  4. 設定の編集をクリックします。
  5. 名前フィールドに、設定の名前を入力します。この場合、vpxd.certmgmt.modeとなります。
  6. 環境に応じて、設定を「vmca」または「custom」に編集してください。
  7. 変更を保存した後、vCenterサービスを再起動します。
  8. 影響を受けるクラスタの vSphere HA ステータスを確認し、vSphere HA が構成されていることを確認する。

注意: 変更を反映させるために、必ずサービスを再起動してください:

service-control --stop --all && service-control --start --all

重要:  ESXiホストがカスタムCA署名証明書を使用している場合、vmcaモードを有効にして更新すると、カスタム証明書が上書きされます。適切なパスを選択する前に注意してください。

ステップ 1 : 環境に適した証明書モードを選択する方法の詳細については、  「ESXi ホストの証明書の管理」を参照してください。

ステップ 2 : 証明書モードを更新する手順については、「ESXi 証明書モードの変更」を参照してください。

ステップ 3 : ESXi ホスト上の証明書を更新する手順については、「ESXi 証明書の更新」を参照してください。

管理を容易にするために、vCenter で ESXi ホストの証明書を管理することをお勧めします。

  1. vCenter の詳細設定「vpxd.certmgmt.mode」が vmca モードに設定されていることを確認します。
     
  2. ESXi ホストを右クリックし、証明書 > 証明書の更新を選択します。
  3. [2]の完了後に再度 ESXi ホストを右クリックし、証明書 > CA 証明書の更新を選択します。

 

重要な注意事項:

  • vCenter Server で証明書モードを変更した後、vCenter Server と ESXi ホスト間で通信の問題が発生する可能性があります。ホスト通信の問題を回避するには、証明書モードを変更した後、vSphere Client または PowerCLI を使用して、各ホストに対して「CA証明の更新および 「証明書の更新を実行してください。
  • PowerCLI を使用したサンプルスクリプトは、この KB の追加情報セクションで入手できます。
  • 証明書の更新および更新操作の詳細については、ESXi 証明書の更新を参照してください 。

Additional Information

一部の環境では、ホスト接続の問題を引き起こす既存の証明書の問題を回避するために、「thumbprint」を使用している可能性があります。「vmca」と「custom」へ切り替える際にはこれらの問題を適切に診断し、修正する必要があります。

注意事項: 「thumbprint」は、証明書関連の問題に対する永続的な解決策としては推奨されません。トラブルシューティング中の一時的な使用のみとしてください。

ESXi ホスト証明書を更新するための PowerCLI サンプルスクリプト

  • 以下を Powershell スクリプト (xxx.ps1) として保存します (例) c:\tempenew_esxi_certs.ps1

    function refreshcerts
    {
     Begin{

     
     }
     Process{
     Write-host "Processing $_"
     $hostid = Get-VMHost $_ | Get-View
     $hostParam = New-Object VMware.Vim.ManagedObjectReference[] (1)
     $hostParam[0] = New-Object VMware.Vim.ManagedObjectReference
     $hostParam[0].value = $hostid.moref.value
     $hostParam[0].type = 'HostSystem'
     $_this = Get-View -Id 'CertificateManager-certificateManager'
    $task = $_this.CertMgrRefreshCACertificatesAndCRLs($hostParam)
    $task = $_this.CertMgrRefreshCertificates($hostParam)
     }
     End{
     Start-Sleep -Seconds 10

     Write-host "Done"

     }
    }

  • 上記の関数 (refreshcerts) を PowerShell にインポートします。

    . c:\tempenew_esxi_certs.ps1

  • Connect-VIServer で vCenter Server へ接続します。
  • 以下の様に refreshcerts 関数を実行します。(全てのクラスター配下の ESXi ホストの証明書が更新されます):

get-cluster | get-vmhost | foreach {$_.Name} | refreshcerts

補足:
クラスタ名を指定して、クラスタ単位で証明書を置き換えることができます (例: get-cluster -Name "クラスタ名")