免責事項: これは英文の記事「HA clusters fails to configure in vCenter Server 8.0 U3 when the VPXD certificate mode is set to "thumbprint".」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
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
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)
vCenter Server 8.0.3
これは、バージョン 8.0U3 で vSphere HA が変更され、fdm 操作中に証明書が検証されるようになったことが原因です。
ESXi ホストの自己署名証明書は、vCenter Server でサポートされなくなりました。
この問題は、VMware vCenter Server 8.0 Update 3eで修正されました。
変更を行う前に vCenter のスナップショットを取得してください。
この問題を回避するには、環境に応じて証明書モードを「vmca」または「custom」に変更します。
vpxd.certmgmt.modeはvCenterの詳細設定にあり、以下の手順で編集できます:
注意: 変更を反映させるために、必ずサービスを再起動してください:
service-control --stop --all && service-control --start --all
重要: ESXiホストがカスタムCA署名証明書を使用している場合、vmcaモードを有効にして更新すると、カスタム証明書が上書きされます。適切なパスを選択する前に注意してください。
ステップ 1 : 環境に適した証明書モードを選択する方法の詳細については、 「ESXi ホストの証明書の管理」を参照してください。
ステップ 2 : 証明書モードを更新する手順については、「ESXi 証明書モードの変更」を参照してください。
ステップ 3 : ESXi ホスト上の証明書を更新する手順については、「ESXi 証明書の更新」を参照してください。
管理を容易にするために、vCenter で ESXi ホストの証明書を管理することをお勧めします。
重要な注意事項:
一部の環境では、ホスト接続の問題を引き起こす既存の証明書の問題を回避するために、「thumbprint」を使用している可能性があります。「vmca」と「custom」へ切り替える際にはこれらの問題を適切に診断し、修正する必要があります。
注意事項: 「thumbprint」は、証明書関連の問題に対する永続的な解決策としては推奨されません。トラブルシューティング中の一時的な使用のみとしてください。
ESXi ホスト証明書を更新するための PowerCLI サンプルスクリプト
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"
}
}
. c:\tempenew_esxi_certs.ps1
get-cluster | get-vmhost | foreach {$_.Name} | refreshcerts
クラスタ名を指定して、クラスタ単位で証明書を置き換えることができます (例: get-cluster -Name "クラスタ名")
補足: