VMware vSphere 6.x/7.x/8.x で vCenter Server 証明書を置き換えると "Failed to login to vCenter as extension, Cannot complete login due to an incorrect user name or password" のエラーで ESX Agent Manager (com.vmware.vim.eam) ソリューション ユーザーがログインに失敗する
search cancel

VMware vSphere 6.x/7.x/8.x で vCenter Server 証明書を置き換えると "Failed to login to vCenter as extension, Cannot complete login due to an incorrect user name or password" のエラーで ESX Agent Manager (com.vmware.vim.eam) ソリューション ユーザーがログインに失敗する

book

Article ID: 324571

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

Symptoms:

免責事項:これは英文の記事「"Failed to login to vCenter as extension, Cannot complete login due to an incorrect user name or password", ESX Agent Manager (com.vmware.vim.eam) solution user fails to log in after replacing the vCenter Server certificates in vCenter Server 6.x/7.x/8.x (2112577)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。



vCenter Server の証明書を置き換えると、次のような症状が発生します。

 

  • ESX Agent Manager ソリューション ユーザーがログインに失敗する。
  • ESX Agent Manager (EAM) の /var/log/vmware/eam/eam.log ファイルまたは C:\ProgramData\VMware\vCenterServer\logs\eam\eam.log ファイルに、次のようなエントリが表示される。
YYYY-MM-DDTHH:MM:SS.MSZ | INFO | eam-0 | VcConnection.java | 167 | Connecting to vCenter as com.vmware.vim.eam extension
YYYY-MM-DDTHH:MM:SS.MSZ | INFO | eam-0 | VcConnection.java | 603 | Connecting to https://vCenter_Server_FQDN:8089/sdk/vimService via vCenter proxy http://localhost:80
YYYY-MM-DDTHH:MM:SS.MSZ | DEBUG | http-bio-0.0.0.0-15005-exec-1 | AllowAllSamlTokenPolicy.java | 24 | HealtStatus request's token subject name: machine-7502fb4c-3521-48c7-93ed-3d1865e0fff1, subject domain: vsphere.local
YYYY-MM-DDTHH:MM:SS.MSZ | ERROR | eam-0 | VcConnection.java | 179 | Failed to login to vCenter as extension. vCenter has probably not loaded the EAM extension.xml yet.: Cannot complete login due to an incorrect user name or password.
YYYY-MM-DDTHH:MM:SS.MSZ | WARN | eam-0 | VcListener.java | 114 | Trying to recover from error
(vim.fault.InvalidLogin) {
faultCause = null,
faultMessage = null
}
at sun.reflect.GeneratedConstructorAccessor82.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.vmware.vim.vmomi.core.types.impl.ComplexTypeImpl.newInstance(ComplexTypeImpl.java:173)
at com.vmware.vim.vmomi.core.types.impl.DefaultDataObjectFactory.newDataObject(DefaultDataObjectFactory.java:26)
at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.ComplexStackContext.<init>(ComplexStackContext.java:31)
at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl$UnmarshallSoapFaultContext.parse(UnmarshallerImpl.java:141)
at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl$UnmarshallSoapFaultContext.unmarshall(UnmarshallerImpl.java:102)
at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl.unmarshalSoapFault(UnmarshallerImpl.java:89)
at com.vmware.vim.vmomi.core.soap.impl.unmarshaller.UnmarshallerImpl.unmarshalSoapFault(UnmarshallerImpl.java:84)
at com.vmware.vim.vmomi.client.common.impl.SoapFaultStackContext.setValue(SoapFaultStackContext.java:41)
at com.vmware.vim.vmomi.client.common.impl.ResponseUnmarshaller.unmarshal(ResponseUnmarshaller.java:112)
at com.vmware.vim.vmomi.client.common.impl.ResponseImpl.unmarshalResponse(ResponseImpl.java:273)
at com.vmware.vim.vmomi.client.common.impl.ResponseImpl.setResponse(ResponseImpl.java:230)
at com.vmware.vim.vmomi.client.http.impl.HttpExchangeBase.parseResponse(HttpExchangeBase.java:144)
at com.vmware.vim.vmomi.client.http.impl.HttpExchange.run(HttpExchange.java:51)
at com.vmware.vim.vmomi.client.http.impl.HttpProtocolBindingBase.executeRunnable(HttpProtocolBindingBase.java:186)
at com.vmware.vim.vmomi.client.http.impl.HttpProtocolBindingImpl.send(HttpProtocolBindingImpl.java:77)
at com.vmware.vim.vmomi.client.common.impl.MethodInvocationHandlerImpl$CallExecutor.sendCall(MethodInvocationHandlerImpl.java:581)
at com.vmware.vim.vmomi.client.common.impl.MethodInvocationHandlerImpl$CallExecutor.executeCall(MethodInvocationHandlerImpl.java:562)
at com.vmware.vim.vmomi.client.common.impl.MethodInvocationHandlerImpl.completeCall(MethodInvocationHandlerImpl.java:348)
at com.vmware.vim.vmomi.client.common.impl.MethodInvocationHandlerImpl.invokeOperation(MethodInvocationHandlerImpl.java:308)
at com.vmware.vim.vmomi.client.common.impl.MethodInvocationHandlerImpl.invoke(MethodInvocationHandlerImpl.java:182)
at com.sun.proxy.$Proxy48.loginExtensionByCertificate(Unknown Source)
at com.vmware.eam.vc.VcConnection.connectEam(VcConnection.java:171)
at com.vmware.eam.vc.VcListener.login(VcListener.java:149)
at com.vmware.eam.vc.VcListener.main(VcListener.java:129)
at com.vmware.eam.vc.VcListener.call(VcListener.java:111)
at com.vmware.eam.vc.VcListener.call(VcListener.java:60)
at com.vmware.eam.async.impl.AuditedJob.call(AuditedJob.java:35)
at com.vmware.eam.async.impl.FutureRunnable.run(FutureRunnable.java:52)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
YYYY-MM-DDTHH:MM:SS.MSZ | INFO | eam-0 | VcListener.java | 121 | Retrying in 10

:前述のログの引用は単なる例です。日付、時間、および環境変数は、環境によって異なる場合があります。
  • NSX for vSphere または vCloud Networking and Security から ESXi ホストに VIB を展開することができない。
  • vCenter Server で CPU 使用率が高くなる。


Environment

VMware vCenter Server 7.0.x
VMware vCenter Server 8.0.x

Cause

この問題は、VECS に保存されている vpxd-extension 証明書と、EAM 拡張機能用の vCenter Server データベースに保存されている証明書情報の間に不一致がある場合に発生する可能性があります。

Resolution

この問題を解消するには、エクステンションの証明書を vCenter Server のもので更新します

Notes:
Certificate Manager は、vCenter Server 6.0 U1b 以降の com.vmware.vim.eam (EAM)、com.vmware.rbd (Autodeploy) などの拡張機能の証明書を自動的に更新します。ただし、「Symptoms」セクションに記載されているエラー メッセージが表示される場合は、vCenter Server 6.x/7.x または 8.x の任意のバージョンで以下の手順を実施することができます。
拡張証明書の登録中に "certificate verify failed: Hostname mismatch, certificate is not valid for 'sdkTunnel'" というエラーが表示される場合は、この記事 の関連情報を参照してください。

エクステンションの証明書を更新するには:

vCenter Server for Windows の場合
  1. コンソールまたはリモート デスクトップ セッションを使用して vCenter Server に接続します。
  2. 管理者特権でのコマンド プロンプトを開きます。
  3. 次の名前の一時ディレクトリを作成します: c:\certificate。
  4. 次のコマンドを実行し、vpxd-extension ソリューション ユーザー証明書およびキーを取得します。

    "%VMWARE_CIS_HOME%"\vmafdd\vecs-cli entry getcert --store vpxd-extension --alias vpxd-extension --output c:\certificate\vpxd-extension.crt

    "%VMWARE_CIS_HOME%"\vmafdd\vecs-cli entry getkey --store vpxd-extension --alias vpxd-extension --output c:\certificate\vpxd-extension.key
     
  5. C:\Program Files\VMware\vCenter Server\vpxd\scripts に移動します。

    cd C:\Program Files\VMware\vCenter Server\vpxd\scripts

    :リストされたパスは、vCenter Server のデフォルトのインストール パスです。vCenter Server のインストール場所をカスタマイズした場合は、適宜ディレクトリを変更します。
     
  6. 次のコマンドを実行し、エクステンションの証明書を vCenter Server で更新します。

    "%VMWARE_PYTHON_BIN%" updateExtensionCertInVC.py -e com.vmware.vim.eam -c C:\Certificate\vpxd-extension.crt -k C:\Certificate\vpxd-extension.key -s <PNID/FQDN of vCenter Server> -u Administrator@vsphere.local

    :デフォルトのユーザーとドメインは [email protected] です。これを構成中に変更した場合は、ドメインを実際の環境と一致するように変更してください。
  7. プロンプトが表示されたら、Administrator@domain.local のパスワードを入力します。
  8. C:\Program Files\VMware\vCenter Server\bin フォルダに移動します。

    cd C:\Program Files\VMware\vCenter Server\bin
     
  9. 次のコマンドを使用して、VMware ESX Manager サービスを再起動します。
     
    • service-control --stop EsxAgentManager
    • service-control --start EsxAgentManager

    vCenter Server でのサービス管理の詳細については、「Stopping, starting, or restarting VMware vCenter Server 6.0 services (2109881)」を参照してください。


vCenter Server Appliance の場合
  1. SSH を使用して vCenter Server Appliance にログインします。
  2. このコマンドを実行して、Bash シェルへのアクセスを有効にします。

    shell.set --enabled true
     
  3. 「shell」と入力し、Enter キーを押します。
  4. 次のコマンドを実行し、vpxd-extension ソリューション ユーザー証明書およびキーを取得します。

    mkdir /certificate

    /usr/lib/vmware-vmafd/bin/vecs-cli entry getcert --store vpxd-extension --alias vpxd-extension --output /certificate/vpxd-extension.crt

    /usr/lib/vmware-vmafd/bin/vecs-cli entry getkey --store vpxd-extension --alias vpxd-extension --output /certificate/vpxd-extension.key
     
  5. 次のコマンドを実行し、エクステンションの証明書を vCenter Server で更新します。

    python /usr/lib/vmware-vpx/scripts/updateExtensionCertInVC.py -e com.vmware.vim.eam -c /certificate/vpxd-extension.crt -k /certificate/vpxd-extension.key -s <PNID/FQDN of vCenter Server> -u Administrator@vsphere.local

    :デフォルトのユーザーとドメインは [email protected] です。これを構成中に変更した場合は、ドメインを実際の環境と一致するように変更してください。プロンプトが表示されたら、Administrator@domain.local パスワードを入力します。
  6. 次のコマンドを使用して、VMware ESX Manager サービスを再起動します。
     
    • service-control --stop vmware-eam
    • service-control --start vmware-eam
       
    vCenter Server Appliance でのサービス管理の詳細については、「Stopping, starting, or restarting VMware vCenter Server Appliance 6.0 services (2109887)」を参照してください。


Additional Information

  • 特定の状況では、「certificate verify failed: Hostname mismatch, certificate is not valid for 'sdkTunnel'」というエラーが発生することがあります。"Successfully updated certificate for "com.vmware.vim.eam" extension" というメッセージの後にエラーが表示される場合、このメッセージは拡張証明書が vCenter Server で正常に更新されたことを確認するものであるため、このエラーは無視しても問題ありません。
root@hostname [ ~ ]# python /usr/lib/vmware-vpx/scripts/updateExtensionCertInVC.py -e com.vmware.vim.eam -c /certificate/vpxd-extension.crt -k /certificate/vpxd-extension.key -s vcsa1.test.com -u [email protected]
Password to connect to VC server for user="[email protected]":
2021-03-11T22:31:22.517Z  Updating certificate for "com.vmware.vim.eam" extension
2021-03-11T22:31:22.649Z  Successfully updated certificate for "com.vmware.vim.eam" extension
Traceback (most recent call last):
  File "/usr/lib/vmware-vpx/scripts/updateExtensionCertInVC.py", line 175, in <module>
    update_extension_cert_in_VC()
  File "/usr/lib/vmware-vpx/scripts/updateExtensionCertInVC.py", line 163, in update_extension_cert_in_VC
    sessionMgr = si.content.sessionManager
  File "/usr/lib/vmware/site-packages/pyVmomi/VmomiSupport.py", line 577, in __call__
    return self.f(*args, **kwargs)
  File "/usr/lib/vmware/site-packages/pyVmomi/VmomiSupport.py", line 382, in _InvokeAccessor
    return self._stub.InvokeAccessor(self, info)
  File "/usr/lib/vmware/site-packages/pyVmomi/StubAdapterAccessorImpl.py", line 42, in InvokeAccessor
    return self.InvokeMethod(mo, info, (prop, ))
  File "/usr/lib/vmware/site-packages/pyVmomi/SoapAdapter.py", line 1525, in InvokeMethod
    conn.request('POST', self.path, req, headers)
  File "/usr/lib/python3.7/http/client.py", line 1277, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "/usr/lib/python3.7/http/client.py", line 1323, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.7/http/client.py", line 1272, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "/usr/lib/python3.7/http/client.py", line 1032, in _send_output
    self.send(msg)
  File "/usr/lib/python3.7/http/client.py", line 972, in send
    self.connect()
  File "/usr/lib/python3.7/http/client.py", line 1447, in connect
    server_hostname=server_hostname)
  File "/usr/lib/python3.7/ssl.py", line 423, in wrap_socket
    session=session
  File "/usr/lib/python3.7/ssl.py", line 870, in _create
    self.do_handshake()
  File "/usr/lib/python3.7/ssl.py", line 1139, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'sdkTunnel'. (_ssl.c:1076)

VMware Skyline Health Diagnostics for vSphere - FAQ
vecs-cli failed. Error 87: Operation failed with error ERROR_INVALID_PARAMETER (87)
How to stop, start, or restart vCenter Server 6.x services
Resolution: Internal error occurs during vSphere ESX Agent Manager pre-upgrade checks
"WARNING: VMware ESX Agent Manager may have failed to start", EAM Service fails to start after vCenter Server reboot
"Failed to login to vCenter as extension, Cannot complete login due to an incorrect user name or password", ESX Agent Manager (com.vmware.vim.eam) solution user fails to log in after replacing the vCenter Server certificates in vCenter Server 6.x/7.x/8.x