vCenter Server の Security Token Service (STS) は、セキュリティ トークンの発行、検証、更新を行う Web サービスです。

トークンの発行者である Security Token Service (STS) では、プライベート キーを使用してトークンに署名し、サービスのパブリック証明書を公開してトークンの署名を検証します。vCenter Server では、STS 署名証明書が管理され、VMware Directory Service (vmdir) に保存されます。トークンは有効期間が長く、複数のキーのいずれも、これまで署名に使用された可能性があります。

ユーザーはプライマリ認証情報を STS インターフェイスに提供して、トークンを取得します。プライマリ認証情報は、ユーザーのタイプによって異なります。

表 1. STS ユーザーと認証情報
ユーザーのタイプ プライマリ認証情報
ソリューション ユーザー 有効な証明書
その他のユーザー vCenter Single Sign-On アイデンティティ ソースで使用できるユーザー名とパスワード

STS は、プライマリ認証情報に基づいてユーザーを認証し、ユーザー属性が含まれている SAML トークンを構築します。

デフォルトでは、VMware Certificate Authority (VMCA) で STS 署名証明書が生成されます。STS 署名証明書を新しい VMCA 証明書で更新できます。デフォルトの STS 署名証明書をインポートして、カスタムまたはサードパーティによって生成された STS 署名証明書と置き換えることもできます。会社のセキュリティ ポリシーですべての証明書の置き換えが必要な場合を除いて、STS 署名証明書を置き換えないでください。

vSphere Client を使用して、以下のことを行えます。

  • STS 証明書の管理
  • カスタムおよびサードパーティによって生成された STS 証明書のインポートと置き換え
  • 有効期限などの STS 証明書の詳細を表示

コマンド ラインを使用して、カスタムおよびサードパーティによって生成された STS 証明書を置き換えることもできます。

STS 証明書の期間と有効期限

vSphere 7.0 Update 1 以降の新規インストールでは、10 年の期間を持つ STS 署名証明書が作成されます。STS 署名証明書の有効期限が近づくと、90 日前から 1 週間に 1 回アラームが表示され、7 日前になると毎日表示されます。

注: 特定の状況では、STS 署名証明書を置き換えると、証明書の有効期間が変わることがあります。証明書の置き換えを実行する場合は、発行日と有効期間に注意してください。

STS 証明書の自動更新

vSphere 8.0 以降、vCenter Single Sign-On は VMCA で生成された STS 署名証明書を自動的に更新します。自動更新は、STS 署名証明書の有効期限が切れる前、かつ 90 日の期限切れアラームがトリガされる前に実行されます。自動更新が失敗した場合、vCenter Single Sign-On はログ ファイルにエラー メッセージを作成します。必要に応じて、STS 署名証明書を手動で更新できます。

注: vCenter Single Sign-On は、カスタム生成された STS 署名証明書やサードパーティの STS 署名証明書を自動更新しません。

STS 証明書の更新、インポート、および置き換え

8.0 以降、STS 署名証明書の更新、インポート、または置き換えでは vCenter Server による再起動が必要ないため、ダウンタイムが発生しません。また、リンクされた構成で、単一の vCenter Server の STS 署名証明書を更新、インポート、または置換すると、リンクされたすべての vCenter Server システムの STS 証明書が更新されます。

注: 特定の状況では、STS 署名証明書の更新、インポート、または置換を行った場合に、手動による vCenter Server システムの再起動が必要になることがあります。

vSphere Client を使用した vCenter Server STS 証明書の更新

vSphere Client を使用して、vCenter Server STS 署名証明書を更新できます。VMware Certificate Authority (VMCA) によって新しい証明書が発行され、現在の証明書が置き換えられます。

STS 署名証明書を更新すると、VMware Certificate Authority (VMCA) によって新しい証明書が発行され、VMware Directory Service (vmdir) の現在の証明書が置き換えられます。STS は新しい証明書を使用して新しいトークンを発行します。拡張リンク モード構成で、vmdir は新しい証明書を発行元の vCenter Server システムからリンクされているすべての vCenter Server システムにアップロードします。STS 署名証明書を更新する場合、vCenter Server システムと、拡張リンク モード構成の一部であるその他の vCenter Server システムを再起動する必要はありません。

カスタム生成された、またはサードパーティの STS 署名証明書を使用している場合、更新によってその証明書が VMCA によって発行された証明書で上書きされます。カスタム生成された、またはサードパーティの STS 署名証明書を更新するには、インポートおよび置換オプションを使用します。vSphere Client を使用した vCenter Server STS 証明書のインポートと置き換えを参照してください。

VMCA によって発行された STS 署名証明書は 10 年間有効で、外部向けの証明書ではありません。会社のセキュリティ ポリシーで要求される場合を除き、この証明書は置き換えないでください。

前提条件

証明書を管理する場合、ローカル ドメイン(デフォルトでは administrator@vsphere.local)の管理者のパスワードを入力する必要があります。証明書を更新する場合、vCenter Server システムの管理者権限のあるユーザーの vCenter Single Sign-On 認証情報も入力する必要があります。

手順

  1. vSphere Client を使用して vCenter Server にログインします。
  2. administrator@vsphere.local または vCenter Single Sign-On 管理者グループの別のメンバーのユーザー名とパスワードを指定します。
    インストール時に異なるドメインを指定した場合は、administrator@ mydomain としてログインします。
  3. [証明書の管理] ユーザー インターフェイスに移動します。
    1. [ホーム] メニューから [管理] を選択します。
    2. [証明書] で、[証明書の管理] をクリックします。
  4. vCenter Server の認証情報の入力を求めるメッセージが表示されたら、この情報を入力します。
  5. [STS 署名証明書] で、[アクション] > [vCenter Server 証明書を使用して更新] の順にクリックします。
    カスタム生成された、またはサードパーティの STS 署名証明書を使用している場合、更新操作によってその証明書が VMCA で生成された証明書で上書きされます。
    注: コンプライアンス上の理由でサードパーティの証明書を使用していた場合、更新によって vCenter Server システムが非準拠になることがあります。また、カスタム生成された、またはサードパーティの STS 署名証明書を使用している場合、Security Token Service でそのカスタム証明書またはサードパーティ証明書がトークン署名に使用されなくなります。
  6. [更新] をクリックします。
    VMCA は、この vCenter Server システムおよびリンクされた vCenter Server システムの STS 署名証明書を更新します。
  7. (オプション) [強制的に更新] ボタンが表示される場合、vCenter Single Sign-On で問題が検出されたということです。[強制的に更新] をクリックする前に、以下の予想される結果を考慮してください。
    • 影響を受けるすべての vCenter Server システムで vSphere 7.0 Update 3 以降が実行されていない場合、証明書の更新はサポートされません。
    • [強制的に更新] を選択する場合は、すべての vCenter Server システムを再起動する必要があり、再起動するまでこれらのシステムが動作不能になる可能性があります。
    1. 影響が不明な場合、[キャンセル] をクリックして、環境を調査してください。
    2. 影響がわかっている場合、[強制的に更新] をクリックして、更新を続行してから、手動で vCenter Server システムを更新します。

vSphere Client を使用した vCenter Server STS 証明書のインポートと置き換え

vSphere Client を使用して、vCenter Server STS 証明書をインポートし、カスタム生成証明書またはサードパーティ証明書と置き換えることができます。

デフォルトの STS 署名証明書をインポートして置き換えるには、最初に新しい証明書を生成する必要があります。STS 署名証明書をインポートして置き換えると、VMware Directory Service (vmdir) は新しい証明書を発行元の vCenter Server システムからリンクされているすべての vCenter Server システムにアップロードされます。

STS 証明書は、外部向けの証明書ではありません。会社のセキュリティ ポリシーで要求される場合を除き、この証明書は置き換えないでください。

前提条件

証明書を管理する場合、ローカル ドメイン(デフォルトでは administrator@vsphere.local)の管理者のパスワードを入力する必要があります。vCenter Server システムの管理者権限を持つユーザーの vCenter Single Sign-On 認証情報も入力する必要があります。

手順

  1. vSphere Client を使用して vCenter Server にログインします。
  2. administrator@vsphere.local または vCenter Single Sign-On 管理者グループの別のメンバーのユーザー名とパスワードを指定します。
    インストール時に異なるドメインを指定した場合は、administrator@ mydomain としてログインします。
  3. [証明書の管理] ユーザー インターフェイスに移動します。
    1. [ホーム] メニューから [管理] を選択します。
    2. [証明書] で、[証明書の管理] をクリックします。
  4. vCenter Server の認証情報の入力を求めるメッセージが表示されたら、この情報を入力します。
  5. [STS 署名証明書] で、[アクション] > [インポートして置き換え]. の順にクリックします。
  6. PEM ファイルを選択します。
    PEM ファイルには、署名証明書チェーンとプライベート キーが含まれます。
  7. [置き換え] をクリックします。
    STS 署名証明書は、この vCenter Server システムおよびリンクされた vCenter Server システムで置き換えられます。特に指定がない限り、 vCenter Server システムを再起動する必要はありません。

コマンド ラインを使用した vCenter Server STS 証明書の置き換え

CLI を使用して、vCenter Server STS 証明書をカスタム生成された証明書またはサードパーティの証明書と置き換えることができます。

既存の STS 署名証明書を置換することで、会社が求める証明書を使用する、または有効期限切れ間近の証明書を更新することができます。デフォルトの STS 署名証明書を置き換えるには、最初に新しい証明書を生成する必要があります。

STS 証明書は、外部向けの証明書ではありません。会社のセキュリティ ポリシーで要求される場合を除き、この証明書は置き換えないでください。

注意: ここで説明する手順を使用する必要があります。ファイル システム上の証明書を直接置き換えないでください。

前提条件

vCenter Server への SSH ログインを有効にします。vCenter Server シェルを使用した vCenter Server の管理を参照してください。

手順

  1. vCenter Server シェルに root としてログインします。
  2. 証明書を作成します。
    1. 新しい証明書を保持するためのトップレベル ディレクトリを作成し、ディレクトリの場所を確認します。
      mkdir newsts
      cd newsts
      pwd 
      #resulting output: /root/newsts
    2. 新しいディレクトリに certool.cfg ファイルをコピーします。
      cp /usr/lib/vmware-vmca/share/config/certool.cfg /root/newsts
      
    3. Vim などのコマンドライン エディタを使用して、certool.cfg ファイルのコピーを開き、ローカルの vCenter Server IP アドレスとホスト名を使用するように編集します。国は必須で、次の例に示すように 2 文字で指定する必要があります。
      #
      # Template file for a CSR request
      #
      
      # Country is needed and has to be 2 characters
      Country = US
      Name = STS
      Organization = ExampleInc
      OrgUnit = ExampleInc Dev
      State = Indiana
      Locality = Indianapolis
      IPAddress = 10.0.1.32
      Email = chen@exampleinc.com
      Hostname = homecenter.exampleinc.local
    4. キーを生成します。
      /usr/lib/vmware-vmca/bin/certool --server localhost --genkey --privkey=/root/newsts/sts.key --pubkey=/root/newsts/sts.pub
      
    5. 証明書を生成します。
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=/root/newsts/newsts.cer --privkey=/root/newsts/sts.key --config=/root/newsts/certool.cfg
      
    6. 証明書チェーンとプライベート キーを使用して、PEM ファイルを作成します。
      cat newsts.cer /var/lib/vmware/vmca/root.cer sts.key > newsts.pem
  3. STS 署名証明書を更新します。たとえば、次のようにします。
    /opt/vmware/bin/sso-config.sh -set_signing_cert -t vsphere.local /root/newsts/newsts.pem
    VMCA は、この vCenter Server システムおよびリンクされた vCenter Server システムの STS 署名証明書を更新します。

vSphere Client を使用したアクティブな vCenter Server STS 署名証明書チェーンの表示

vSphere Client を使用して、アクティブな vCenter Server STS 署名証明書チェーンを表示できます。

アクティブな STS 証明書に関する次の情報を表示できます。

  • 「有効期限」の日付
  • 有効な証明書には緑色のチェックと、証明書の有効期限が切れた証明書について警告するオレンジ色のチェック
  • アクティブ チェーンを表示する [詳細を表示] リンク

手順

  1. vSphere Client を使用して vCenter Server にログインします。
  2. 少なくとも 読み取り 権限を持つユーザーのユーザー名とパスワードを入力します。
  3. [証明書の管理] ユーザー インターフェイスに移動します。
    1. [ホーム] メニューから [管理] を選択します。
    2. [証明書] で、[証明書の管理] をクリックします。
  4. vCenter Server の認証情報の入力を求めるメッセージが表示されたら、この情報を入力します。
  5. アクティブな STS 証明書の詳細を表示するには、[詳細を表示] をクリックします。

コマンド ラインを使用した LDAPS SSL 証明書の有効期限の特定

LDAPS を介した Active Directory を使用している場合は、LDAP トラフィック用の SSL 証明書をアップロードできます。SSL 証明書は、事前定義された存続期間後に期限が切れます。sso-config.sh コマンドを使用して、証明書の有効期限を表示し、期限が切れる前に証明書を交換するか更新するかを判断できます。

vCenter Server は、アクティブな LDAP SSL 証明書の有効期限が近づくとアラートを表示します。

LDAP を介した Active Directory または OpenLDAP ID ソースを使用し、サーバに対して ldaps:// URL を指定した場合に限り、証明書の有効期限情報を確認できます。

前提条件

vCenter Server への SSH ログインを有効にします。vCenter Server シェルを使用した vCenter Server の管理を参照してください。

手順

  1. vCenter Server に root としてログインします。
  2. 次のコマンドを実行します。
    /opt/vmware/bin/sso-config.sh -get_identity_sources

    SLF4J メッセージは無視します。

  3. 有効期限を確認するには、SSL 証明書の詳細を表示し、NotAfter フィールドを確認します。