Windows にインストールされた vCenter Server 6.5.x 及び 6.7.x で「署名証明書が有効ではありません (Signing certificate is not valid)」が発生する
search cancel

Windows にインストールされた vCenter Server 6.5.x 及び 6.7.x で「署名証明書が有効ではありません (Signing certificate is not valid)」が発生する

book

Article ID: 316128

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

本文書は PowerShell スクリプトを利用し Windows 環境にインストールされている VMware vCenter Server 6.5.x、6.7.x の Security Token Service (STS) 証明書を再生成/置き換える方法を提供します。

シェルスクリプト経由で VMware vCenter Server Appliance 6.5.x、6.7.x、7.0.x の Security Token Service (STS) の証明書を再生成/置き換える方法については "Signing certificate is not valid" error in VCSA 6.5.x/6.7.x and vCenter Server 7.0.x (76719) を参照してください。

Symptoms:

免責事項: これは英文の記事 「"Signing certificate is not valid" error in vCenter Server 6.5.x and 6.7.x on Windows (79263)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
Windows OS 上に vCenter Server 6.5.x もしくは 6.7.x をインストールしている環境で、以下の様な事象に遭遇する場合があります:

  • VMware VirtualCenter Server サービスの開始に失敗する。
  • Web Client 経由でログインした際に、以下の様なエラーが表示される:
HTTP Status 400 - Bad Request Message BadRequest, Signing certificate is not valid
  • Web Client 経由でログインした際に、以下の様なエラーが表示される:
503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http20NamedPipeServiceSpecE:0x00007fb444041040] _serverNamespace = / action = Allow _pipeName =/var/run/vmware/vpxd-webserver-pipe)

[[STS Certificate expired Windows]]

  • Web Client 経由でログインした際に、以下の様なエラーが表示される:
User name and password are required

[[STS Certificate Expired VMware]]

  • vCenter Server Appliance (VCSA) もしくは Platform Service Controller (PSC) での証明書の置き換えが失敗する。
  • lsdoctor ツールを利用し、Lookup Service への手動での登録の追加・変更・削除が失敗する。 
  • 新規で PSC をデプロイした後のクロス ドメイン リポイントが失敗する。
  • 既存の Single Sign-On (SSO) ドメインに対してのレプリケーション パートナーとしての PSC のデプロイが失敗する。
  • Web Client 経由でログインした際に、以下の様なエラーが表示される:
Cannot connect to vCenter Single Sign-On server 
https://VC_FQDN/sts/STSService/vsphere.local
もしくは
Cannot connect to vCenter Single Sign-On server
https://VC_FQDN:7444/sts/STSService/vsphere.local
もしくは
[400] An error occurred while sending an authentication request to the vCenter Single Sign-On server
 

 


Environment

VMware vCenter Server 6.7.x
VMware vCenter Server 6.5.x

Cause

これらの問題は、Security Token Service STS) 証明書が失効した場合に発生します。内部サービスとソリューション ユーザーは有効なトークンを取得できず、想定どおりに操作できません。

注: STS の証明書の失効に際し事前の警告は出力されません。この失効はシステムによっては初期構築後 2年で発生するものです。

以下に STS の証明書の有効期限が 2年となるシナリオを記載します。
  • PSC/vCenter Server 6.5 U2 及びそれ以降の新規インストール環境 (6.5 系のみ)
  • PSC/vCenter Server 6.5 U2 及びそれ以降の新規インストール環境で、その後 6.7 や 7.0 へアップグレードされた環境
  • インストール後に certool ツールを利用し STS 証明書の置換が行われた PSC 及び vCenter Server 環境
  • インストール後に STS 証明書をカスタム証明書へ置換した PSC 及び vCenter Server 環境

Resolution

  1. このナレッジベース記事から添付ファイル「fixsts.ps1」をダウンロードし、C:\Temp またはその他の利用可能なフォルダ上の、影響を受ける PSC または組み込みの PSC を使用する vCenter Server にアップロードします。
  2. vCenter Server バージョンが 6.7 Update 3g より前の場合は、このナレッジベース記事から添付ファイル「vmware-identity-sso-config67u3g.jar」をダウンロードし、手順 1 と同じフォルダにある、影響を受ける PSC または組み込みの PSC を使用する vCenter Server にアップロードします。
  3. 管理者として Powershell セッションを開きます([スタート] -> [検索] -> [Powershell] -> [管理者として実行])。
  4. cd <ファイルのパス>」 を実行し、ファイルをアップロードしたフォルダを開きます。 
  5. ./fixsts.ps1 を実行します。
  6. SSO ドメイン内のすべての vCenter Server または PSC でサービスを再起動します。
  7. Certificate Manager を使用し、有効期限が切れているその他の証明書を How to use vSphere Certificate Manager to Replace SSL Certificates の記載に従って置き換えます。
  • 次のワンライナーで Windows にインストールされた vCenter Server の他の期限切れの証明書を確認できます。このコマンドは PowerShell で実行する必要があります。
$VCInstallHome = [System.Environment]::ExpandEnvironmentVariables("%VMWARE_CIS_HOME%");foreach ($STORE in & "$VCInstallHome\vmafdd\vecs-cli" store list){Write-host STORE: $STORE;& "$VCInstallHome\vmafdd\vecs-cli" entry list --store $STORE --text | findstr /C:"Alias" /C:"Not After"}

注: マシン SSL または VMCA ルート証明書を置き換えた場合は、NSX、SRM、vSphere Replication などのセカンド パーティ製ソリューションを再登録する必要があります。
 
注:ゲートウェイなしで HLM(ハイブリッド リンク モード)を使用している場合は、この手順を実行した後で証明書をクラウドからオンプレミスに再同期する必要があります。

このスクリプトでは SSO 管理者パスワードの要求後、STS 証明書の再生成と置き換えに進みます。

以下は成功した出力の例です。

Generating New STS Certificate
Status : Success
Using config file : C:\Program Files\VMware\vCenter Server\vmcad\certool.cfg
Status : Success
User DN is: cn=administrator,cn=users,dc=vsphere,dc=local
Successfully deleted cn=TrustedCertChain-1,cn=TrustedCertificateChains,cn=vsphere.local,cn=Tenants,cn=IdentityManager,cn=Services,dc=vsphere,dc=local
Successfully deleted cn=TenantCredential-1,cn=vsphere.local,cn=Tenants,cn=IdentityManager,cn=Services,dc=vsphere,dc=local
vCenter Server Version is 6.7.0.31555 Build 16046470
All STS Tenant branches deleted!
Re-creating STS tenant
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Program%20Files/VMware/vCenter%20Server/VMware%20Identity%20Services/log4j-slf4j-impl-2.11.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Program%20Files/VMware/vCenter%20Server/VMware%20Identity%20Services/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/ProgramData/VMware/vCenterServer/runtime/VMwareSTSService/webapps/ROOT/WEB-INF/lib/log4j-slf4j-impl-2.11.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/ProgramData/VMware/vCenterServer/runtime/VMwareSTSService/webapps/ROOT/WEB-INF/lib/slf4j-log4j12-1.7.26.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
STS Certificate Replaced Successfully!!, please restart the services
Since the STS certificate has been replaced, you may need to re-register external solutions (SRM, NSX, etc.)


Additional Information

STS 証明書を表示する方法および有効期限を確認する方法の詳細については「 Checking Expiration of STS Certificate on vCenter Server」を参照してください。

Impact/Risks:
警告このスクリプトは VMDIR のデータベースと通信します。
スクリプトを実行する前に、SSO ドメイン内のすべての vCenter Server および Platform Service Controller のオフライン スナップショットを同時に作成します。

注意: