vCenter Server の VMCA 証明書を従属認証局の証明書に置き換えると次のエラーで失敗する:エラー メッセージ: CA 証明書ではありません (Not a CA Cert)
search cancel

vCenter Server の VMCA 証明書を従属認証局の証明書に置き換えると次のエラーで失敗する:エラー メッセージ: CA 証明書ではありません (Not a CA Cert)

book

Article ID: 341706

calendar_today

Updated On:

Products

VMware vCenter Server

Issue/Introduction

Symptoms:
免責事項:これは英文の記事「Replacing the vCenter Server's VMCA certificate with a Subordinate Certificate Authority certificate fails with the error: Error Message : Not a CA Cert (2145544)」を参照してください。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。


  • vCenter Server 6.0 Update 2 で VMCA 証明書を従属 CA 証明書に置き換えると失敗する。
  • Certificate Manager ユーティリティで、次のエラー メッセージが表示される。

    エラー メッセージ: CA 証明書ではありません (Not a CA Cert)

  • certificate-manager.log ファイルに次のようなエントリが表示される。

    YYYY-MM-DDT<time> INFO certificate-manager Replacing Root Cert using Custom CA...
    </time>
    YYYY-MM-DDT<time> INFO certificate-manager Running command :- ['/usr/lib/vmware-vmca/bin/certool', '--rootca', '--cert', '/tmp/root_signing_chain.cer', '--privkey', '/tmp/vmca_issued_key.key', '--server', 'localhost']
    </time>
    YYYY-MM-DDT<time> INFO certificate-manager Command output :-
    </time>
    Error:70011, VMCAAddRootCertificatePrivate() failedStatus :Failed
    Error Code :70011
    Error Message :Not a CA Cert
    YYYY-MM-DDT<time> ERROR certificate-manager Error:70011, VMCAAddRootCertificatePrivate() failedStatus :Failed
    </time>
    Error Code :70011
    Error Message :Not a CA Cert
    YYYY-MM-DDT<time> ERROR certificate-manager Error while performing Cert Replacement operation, please see /var/log/vmware/vmcad/certificate-manager.log for more information.
    </time>
    YYYY-MM-DDT<time> ERROR certificate-manager {
    </time>
    "resolution": null,
    "detail":[
    ],
    "id":"install.ciscommon.command.errinvoke",
    "localized":"An error occurred while invoking external command :'Error:70011, VMCAAddRootCertificatePrivate() failedStatus :Failed\nError Code :70011\nError Message :Not a CA Cert\n'",
    "translatable":"An error occurred while invoking external command :'%(0)s'"
    "Error while performing certool rootca command"
    ],
    }
    YYYY-MM-DDT<time> INFO certificate-manager Performing rollback of Root Cert...</time>

    certificate-manager.log ファイルは次の場所にあります。
    • Windows vCenter Server: C:\ProgramData\VMware\vCenterServer\logs\vmca\certificate-manager.log
    • vCenter Server Appliance: /var/log/vmware/vmcad/certificate-manager.log

  • このコマンドを実行すると、CA:FALSE が返されます。

    vCenter Server Appliance:

    openssl x509 -in root_signing_cert.cer -text -noout | grep CA\:

    Windows vCenter Server:

    "C:\Program Files\VMware\vCenter Server\openSSL\openssl" x509 -in C:\Certs\root_signing_cert.cer -text -noout | findstr CA:
  • vCenter Server Applaince で openssl req -in /tmp/vmca_issued_csr.csr -noout -text | grep -A4 "Requested Extensions" コマンドを実行すると、以下が表示されます。

    Requested Extensions:
    X509v3 Subject Alternative Name:
    email:[email protected], DNS:vcsa.domain.com
    X509v3 Subject Key Identifier:
    0A:28:33:A7:44:EB:2D:C8:88:48:C0:4E:C5:6E:F2:82:6E:EF:D1:CC


Environment

VMware vCenter Server 6.0.x
VMware vCenter Server Appliance 6.0.x

Cause

この問題は、vCenter Server 6.0 Update 2 のルート署名証明書用に Certificate Manager ユーティリティが生成した正しくない署名要求 (CSR) が原因で発生します。
  • 6.0 Update 1b 以前の場合、CSR は、必要なエクステンションをすでに証明書に持っている VMCA の既存のデフォルト ルート証明書から属性をコピーして生成されます。
  • 6.0 Update 2 の場合、CSR は、VMCA ルートのサブジェクトの一部として特定の企業データを指定するために、*.cfg ファイルを使用して生成されます。
この変更が VMCA 署名証明書の要件で考慮されておらず、そのために VMCA に必要なフィールドである Key Usage 値および CA:True 値が CSR に含まれないという結果になります。

Resolution

これは既知の問題で、vCenter Server 6.0 Update 2 に影響します。

この問題を回避するには、OpenSSL を使用して、手動で CSR を生成します。

Windows vCenter Server:
  1. vCenter Server に接続します。
  2. C:\Certs\ に移動して、vmca_root.cfg という名前の空のテキスト ファイルを作成します。
  3. このテンプレートをファイルに追加します。

    [ req ]
    default_bits = 2048
    default_keyfile = rui.key
    distinguished_name = req_distinguished_name
    encrypt_key = no
    prompt = no
    string_mask = nombstr
    req_extensions = v3_req

    [ v3_req ]
    basicConstraints = CA:TRUE
    keyUsage = keyCertSign, cRLSign
    subjectAltName = @alt_names

    [ req_distinguished_name ]
    countryName = US
    stateOrProvinceName = NY
    localityName = New York
    0.organizationName = VMWare
    organizationalUnitName = VMCA
    commonName = vcsa.domain.com
    emailAddress = [email protected]

    [alt_names]
    DNS.1 = vcsa.domain.com
    IP.1 = IP_Address

    subjectAltNamealt_namesDNS、および IP の各フィールドはオプションです。

  4. 次のコマンドを使用して CSR を作成します。

    openssl req -days 365 -new -newkey rsa:2048 -keyout C:\Certs\vmca.key -out C:\Certs\vmca.csr -config C:\Certs\vmca_root.cfg

    :別の有効期限日が必要な場合は、日数を変更します。

  5. 証明書の作成のために、結果の vmca.csr を CA に提供します。
vCenter Server Appliance:
  1. vCenter Server Appliance に接続します。
  2. /tmp/ に移動します。
  3. 次のコマンドを使用して vmca_root.cfg ファイルを作成します。

    touch vmca_root.cfg

  4. テキスト エディタで vmca_root.cfg ファイルを開きます。

    vi vmca_root.cfg

  5. このテンプレートをファイルに追加します。

    [ req ]
    default_bits = 2048
    default_keyfile = rui.key
    distinguished_name = req_distinguished_name
    encrypt_key = no
    prompt = no
    string_mask = nombstr
    req_extensions = v3_req

    [ v3_req ]
    basicConstraints = CA:TRUE
    keyUsage = keyCertSign, cRLSign
    subjectAltName = @alt_names

    [ req_distinguished_name ]
    countryName = US
    stateOrProvinceName = NY
    localityName = New York
    0.organizationName = VMWare
    organizationalUnitName = VMCA
    commonName = vcsa.domain.com
    emailAddress = [email protected]
    [alt_names]
    DNS.1 = vcsa.domain.com
    IP.1 = 192.168.1.2

    subjectAltNamealt_namesDNS、および IP の各フィールドはオプションです。

  6. 次のコマンドを使用して CSR を作成します。

    openssl req -days 365 -new -newkey rsa:2048 -keyout /tmp/vmca.key -out /tmp/vmca.csr -config /tmp/vmca_root.cfg

    :別の有効期限日が必要な場合は、日数を変更します。

  7. 証明書の作成のために、結果の vmca.csr を CA に提供します。


Additional Information

Replacing the vCenter Server's VMCA certificate with a Subordinate Certificate Authority certificate fails with the error: Error Message : Not a CA Cert