VMCA(VMware Certificate Authority) 루트 인증서가 곧 만료되거나 다른 이유로 이를 교체하려는 경우, CLI를 사용하여 새 루트 인증서를 생성하고 VMware 디렉토리 서비스에 추가할 수 있습니다. 그런 다음 새 루트 인증서를 사용하여 새 시스템 SSL 인증서 및 솔루션 사용자 인증서를 생성할 수 있습니다.

대개의 경우 vSphere Certificate Manager 유틸리티를 사용하여 인증서를 교체합니다.

세밀한 제어가 필요한 경우 이 시나리오는 CLI 명령을 사용하여 전체 인증서 집합을 교체하는 방법에 대한 자세한 단계별 안내를 제공합니다. 해당 작업의 절차를 사용하여 개별 인증서만 교체할 수도 있습니다.

사전 요구 사항

[email protected] 또는 CAAdmins 그룹의 다른 사용자만 인증서 관리 작업을 수행할 수 있습니다. vCenter Single Sign-On 그룹에 멤버 추가의 내용을 참조하십시오.

CLI를 사용하여 새 VMCA 서명 루트 인증서 생성

certool CLI를 사용하여 새 VMCA 서명 인증서를 생성하고 이 인증서를 vmdir에 게시할 수 있습니다.

프로시저

  1. vCenter Server에서 새 자체 서명 인증서 및 개인 키를 생성합니다.
    certool --genselfcacert --outprivkey <key_file_path> --outcert <cert_file_path> --config <config_file>
  2. 기존 루트 인증서를 새 인증서로 교체합니다.
    certool --rootca --cert <cert_file_path> --privkey <key_file_path>
    명령은 인증서를 생성하여 vmdir에 추가하고 VECS에 추가합니다.
  3. 모든 서비스를 중지하고 인증서 생성, 전파 및 저장을 처리하는 서비스를 시작합니다.
    service-control --stop --all
    service-control --start vmafdd
    service-control --start vmdird
    service-control --start vmcad
    
  4. (선택 사항) 새 루트 인증서를 vmdir에 게시합니다.
    dir-cli trustedcert publish --cert newRoot.crt
    
    명령은 vmdir의 모든 인스턴스를 즉시 업데이트합니다. 명령을 실행하지 않으면 새 인증서를 모든 노드에 전파하는 데 상당한 시간이 소요될 수 있습니다.
  5. 모든 서비스를 다시 시작합니다.
    service-control --start --all

예: 새 VMCA 서명 루트 인증서 생성

다음 예에서는 현재 루트 CA 정보를 확인하고 루트 인증서를 다시 생성하는 전체 단계를 보여 줍니다.
  1. (선택 사항) vCenter Server에서 VMCA 루트 인증서를 나열하여 인증서 저장소에 있는지 확인합니다.
    /usr/lib/vmware-vmca/bin/certool --getrootca 
    출력은 다음과 비슷합니다.
    output:
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
                cf:2d:ff:49:88:50:e5:af
        ...
    
  2. (선택 사항) VECS TRUSTED_ROOTS 저장소를 나열하고 여기의 인증서 일련 번호를 1단계의 출력과 비교합니다.
    /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store TRUSTED_ROOTS --text
    
    루트 인증서가 하나만 있는 가장 간단한 경우 출력은 다음과 비슷합니다.
    Number of entries in store :    1
    Alias : 960d43f31eb95211ba3a2487ac840645a02894bd
    Entry type :    Trusted Cert
    Certificate:
        Data:
            Version: 3 (0x2)
            Serial Number:
                cf:2d:ff:49:88:50:e5:af
  3. 새 VMCA 루트 인증서를 생성합니다. 명령은 인증서를 VECS 및 vmdir(VMware Directory Service)의 TRUSTED_ROOTS 저장소에 추가합니다.
    /usr/lib/vmware-vmca/bin/certool --selfca --config=/usr/lib/vmware-vmca/share/config/certool.cfg

CLI를 사용하여 시스템 SSL 인증서를 VMCA 서명 인증서로 교체

새 VMCA 서명 루트 인증서를 생성한 후에는 vecs-cli 명령을 사용하여 환경의 모든 시스템 SSL 인증서를 교체할 수 있습니다.

각 시스템마다 다른 서비스와의 보안 통신을 위한 시스템 SSL 인증서가 있어야 합니다. 여러 vCenter Server 인스턴스가 고급 연결 모드 구성에서 연결된 경우 각 노드에서 시스템 SSL 인증서 생성 명령을 실행해야 합니다.

사전 요구 사항

모든 서비스를 중지하고 인증서 전파 및 저장을 처리하는 서비스를 시작할 준비를 마칩니다.

프로시저

  1. 새 인증서가 필요한 각 시스템에 대해 certool.cfg 사본 하나를 만듭니다.
    certool.cfg 파일은 /usr/lib/vmware-vmca/share/config/ 디렉토리에 있습니다.
  2. 해당 시스템의 FQDN을 포함하도록 각 시스템의 사용자 지정 구성 파일을 편집합니다.
    시스템의 IP 주소에 대해 NSLookup을 실행하여 이름의 DNS 목록을 확인하고 이 이름을 파일의 Hostname 필드에 사용합니다.
  3. 공개/개인 키 파일 쌍과 각 파일에 대한 인증서를 생성하고 직전에 사용자 지정한 구성 파일을 사용하여 전달합니다.
    예:
    certool --genkey --privkey=machine1.priv --pubkey=machine1.pub
    certool --gencert --privkey=machine1.priv --cert machine1.crt --Name=Machine1_Cert --config machine1.cfg
  4. 모든 서비스를 중지하고 인증서 생성, 전파 및 저장을 처리하는 서비스를 시작합니다.
    service-control --stop --all
    service-control --start vmafdd
    service-control --start vmdird
    service-control --start vmcad
    
  5. VECS에 새 인증서를 추가합니다.
    모든 시스템은 SSL을 통해 통신하려면 로컬 인증서 저장소에 새 인증서가 필요합니다. 먼저 기존 항목을 삭제한 다음 새 항목을 추가합니다.
    vecs-cli entry delete --store MACHINE_SSL_CERT --alias __MACHINE_CERT  
    vecs-cli entry create --store MACHINE_SSL_CERT --alias __MACHINE_CERT --cert machine1.crt --key machine1.priv
  6. 모든 서비스를 다시 시작합니다.
    service-control --start --all

예: 시스템 인증서를 VMCA 서명 인증서로 교체

  1. SSL 인증서에 대한 구성 파일을 만들고 이를 현재 디렉토리에 ssl-config.cfg로 저장합니다.
    Country = US
    Name = vmca-<FQDN-example>
    Organization = <my_company>
    OrgUnit = <my_company Engineering>
    State = <my_state> 
    Locality = <mytown>
    Hostname = <FQDN>
  2. 시스템 SSL 인증서에 대한 키 쌍을 생성합니다. 고급 연결 모드 구성에서 연결된 여러 vCenter Server 인스턴스를 배포할 때 각 vCenter Server 노드에서 이 명령을 실행합니다.
    /usr/lib/vmware-vmca/bin/certool --genkey --privkey=ssl-key.priv --pubkey=ssl-key.pub
    

    ssl-key.privssl-key.pub 파일이 현재 디렉토리에 생성됩니다.

  3. 새 시스템 SSL 인증서를 생성합니다. 이 인증서는 VMCA에 의해 서명됩니다. VMCA 루트 인증서를 사용자 지정 인증서로 교체한 경우 VMCA가 전체 체인을 사용하여 모든 인증서에 서명합니다.
    /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vmca-ssl.crt --privkey=ssl-key.priv --config=ssl-config.cfg

    new-vmca-ssl.crt 파일이 현재 디렉토리에 생성됩니다.

  4. (선택 사항) VECS의 내용을 나열합니다.
    /usr/lib/vmware-vmafd/bin/vecs-cli store list
    • vCenter Server의 샘플 출력:
      output (on vCenter):
      MACHINE_SSL_CERT
      TRUSTED_ROOTS
      TRUSTED_ROOT_CRLS
      machine
      vsphere-webclient
      vpxd
      vpxd-extension
      hvc
      data-encipherment
      APPLMGMT_PASSWORD
      SMS
      wcp
      KMS_ENCRYPTION
  5. VECS의 시스템 SSL 인증서를 새로운 시스템 SSL 인증서로 교체합니다. --store--alias 값은 기본 이름과 정확하게 일치해야 합니다.
    • vCenter Server에서 다음 명령을 실행하여 MACHINE_SSL_CERT 저장소의 시스템 SSL 인증서를 업데이트합니다. FQDN이 서로 다르므로 각 시스템용 인증서를 개별적으로 업데이트해야 합니다.
      /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store MACHINE_SSL_CERT --alias __MACHINE_CERT
      /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store MACHINE_SSL_CERT --alias __MACHINE_CERT --cert new-vmca-ssl.crt --key ssl-key.priv
      

다음에 수행할 작업

ESXi 호스트의 인증서를 교체할 수도 있습니다. "vSphere 보안" 자료를 참조하십시오.

CLI를 사용하여 솔루션 사용자 인증서를 새 VMCA 서명된 인증서로 교체

시스템 SSL 인증서를 교체한 후에는 dir-cli 명령을 사용하여 모든 솔루션 사용자 인증서를 교체할 수 있습니다. 솔루션 사용자는 만료되지 않은 유효한 상태여야 하지만 인증서 인프라는 인증서의 다른 정보를 사용하지 않습니다.

대부분의 VMware 고객은 솔루션 사용자 인증서를 교체하지 않고 시스템 SSL 인증서만 사용자 지정 인증서로 교체합니다. 이러한 하이브리드 방식은 사용자의 보안 팀 요구 사항을 충족합니다.
  • 인증서는 프록시 뒤에 있는 인증서이거나, 사용자 지정 인증서입니다.
  • 중간 CA는 사용되지 않습니다.

vCenter Server 시스템에서 시스템 솔루션 사용자 인증서와 솔루션 사용자 인증서를 교체합니다.

참고: 대규모 배포의 솔루션 사용자 인증서를 나열할 경우 /usr/lib/vmware-vmafd/bin/dir-cli list의 출력에는 모든 노드의 모든 솔루션 사용자가 포함됩니다. 각 호스트의 로컬 시스템 ID를 찾으려면 /usr/lib/vmware-vmafd/bin/vmafd-cli get-machine-id --server-name localhost를 실행하십시오. 각 솔루션 사용자 이름에 시스템 ID가 포함되어 있습니다.

사전 요구 사항

모든 서비스를 중지하고 인증서 전파 및 저장을 처리하는 서비스를 시작할 준비를 마칩니다.

프로시저

  1. certool.cfg 사본을 하나 만든 다음 이름, IP 주소, DNS 이름, 이메일 필드를 제거하고 파일의 이름을 변경합니다(예: sol_usr.cfg).
    생성 과정의 일부로 명령줄에서 인증서의 이름을 지정할 수 있습니다. 기타 정보는 솔루션 사용자에게 필요하지 않습니다. 기본 정보를 그대로 두면 생성된 인증서가 혼란을 줄 수 있습니다.
  2. 공개/개인 키 파일 쌍과 각 솔루션 사용자에 대한 인증서를 생성하고 직전에 사용자 지정한 구성 파일을 사용하여 전달합니다.
    예:
    /usr/lib/vmware-vmca/bin/certool --genkey --privkey=vpxd.priv --pubkey=vpxd.pub 
    /usr/lib/vmware-vmca/bin/certool --gencert --privkey=vpxd.priv --cert vpxd.crt --Name=VPXD_1 --config sol_usr.cfg
  3. 각 솔루션 사용자의 이름을 찾습니다.
    /usr/lib/vmware-vmafd/bin/dir-cli service list 
    
    인증서를 교체할 때 반환된 고유 ID를 사용할 수 있습니다. 입력 및 출력이 다음과 같을 수 있습니다.
    /usr/lib/vmware-vmafd/bin/dir-cli service list
    Enter password for [email protected]:
    1. machine-623bef28-0311-436e-b21f-6e0d39aa5179
    2. vsphere-webclient-623bef28-0311-436e-b21f-6e0d39aa5179
    3. vpxd-623bef28-0311-436e-b21f-6e0d39aa5179
    4. vpxd-extension-623bef28-0311-436e-b21f-6e0d39aa5179
    5. hvc-623bef28-0311-436e-b21f-6e0d39aa5179
    6. wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e
    고급 연결 모드 구성에서 연결된 여러 vCenter Server 인스턴스를 배포하는 경우 /usr/lib/vmware-vmafd/bin/dir-cli service list의 출력에 모든 노드의 모든 솔루션 사용자가 포함됩니다. 각 호스트의 로컬 시스템 ID를 찾으려면 /usr/lib/vmware-vmafd/bin/vmafd-cli get-machine-id --server-name localhost를 실행하십시오. 각 솔루션 사용자 이름에 시스템 ID가 포함되어 있습니다.
  4. 모든 서비스를 중지하고 인증서 생성, 전파 및 저장을 처리하는 서비스를 시작합니다.
    service-control --stop --all
    service-control --start vmafdd
    service-control --start vmdird
    service-control --start vmcad
    
  5. 각 솔루션 사용자에 대해 vmdir 및 VECS에서 차례로 기존 인증서를 교체합니다.
    다음 예는 vpxd 서비스에 대한 인증서를 교체하는 방법을 보여 줍니다.
    /usr/lib/vmware-vmafd/bin/dir-cli service update --name <vpxd-xxxx-xxx-7c7b769cd9f4> --cert ./vpxd.crt
    /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store vpxd --alias vpxd
    /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store vpxd --alias vpxd --cert vpxd.crt --key vpxd.priv
    
    참고: vmdir에서 인증서를 교체하지 않으면 솔루션 사용자가 vCenter Single Sign-On에 인증할 수 없습니다.
  6. 모든 서비스를 다시 시작합니다.
    service-control --start --all

예: VMCA 서명 솔루션 사용자 인증서 사용

  1. 고급 연결 모드 구성에서 각 vCenter Server 노드의 솔루션 사용자 각각에 대해 공개/개인 키 쌍을 생성합니다. 여기에는 시스템 솔루션에 대한 쌍과 각 추가 솔루션 사용자(vpxd, vpxd-extension, vsphere-webclient, wcp)에 대한 쌍이 포함됩니다.
    1. 시스템 솔루션 사용자에 대한 키 쌍을 생성합니다.
      /usr/lib/vmware-vmca/bin/certool --genkey --privkey=machine-key.priv --pubkey=machine-key.pub
      
    2. 각 노드에서 vpxd 솔루션 사용자에 대한 키 쌍을 생성합니다.
      /usr/lib/vmware-vmca/bin/certool --genkey --privkey=vpxd-key.priv --pubkey=vpxd-key.pub
    3. 각 노드에서 vpxd-extension 솔루션 사용자에 대한 키 쌍을 생성합니다.
      /usr/lib/vmware-vmca/bin/certool --genkey --privkey=vpxd-extension-key.priv --pubkey=vpxd-extension-key.pub
    4. 각 노드에서 vsphere-webclient 솔루션 사용자에 대한 키 쌍을 생성합니다.
      /usr/lib/vmware-vmca/bin/certool --genkey --privkey=vsphere-webclient-key.priv --pubkey=vsphere-webclient-key.pub
    5. 각 노드에서 wcp 솔루션 사용자에 대한 키 쌍을 생성합니다.
      /usr/lib/vmware-vmca/bin/certool --genkey --privkey=wcp-key.priv --pubkey=wcp-key.pub
  2. vCenter Server 노드의 시스템 솔루션 사용자 및 각 추가 솔루션 사용자(vpxd, vpxd-extension, vsphere-webclient, wcp)에 대해 새 VMCA 루트 인증서로 서명된 솔루션 사용자 인증서를 생성합니다.
    참고: --Name 매개 변수는 고유해야 합니다. 솔루션 사용자 저장소의 이름을 포함하면 각 인증서가 어느 솔루션 사용자에게 매핑되는지 쉽게 확인할 수 있습니다. 이 예제에서는 각각에 vpxd 또는 vpxd-extension 같은 이름이 포함됩니다.
    1. /usr/lib/vmware-vmca/share/config/certool.cfg 파일의 복사본 하나를 만든 다음, 필요에 따라 이름, IP 주소, DNS 이름 및 이메일 필드를 수정하거나 제거하고 파일 이름을 바꿉니다(예: sol_usr.cfg).
    2. 각 노드에서 시스템 솔루션 사용자용 인증서를 생성합니다.
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-machine.crt --privkey=machine-key.priv --Name=machine --config sol_usr.cfg
    3. 각 노드에서 vpxd 솔루션 사용자용 인증서를 생성합니다.
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vpxd.crt --privkey=vpxd-key.priv --Name=vpxd --config sol_usr.cfg
      
    4. 각 노드에서 vpxd-extensions 솔루션 사용자용 인증서를 생성합니다.
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vpxd-extension.crt --privkey=vpxd-extension-key.priv --Name=vpxd-extension --config sol_usr.cfg
    5. 다음 명령을 실행하여 각 노드에서 vsphere-webclient 솔루션 사용자용 인증서를 생성합니다.
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-vsphere-webclient.crt --privkey=vsphere-webclient-key.priv --Name=vsphere-webclient --config sol_usr.cfg
    6. 다음 명령을 실행하여 각 노드에서 wcp 솔루션 사용자의 인증서를 생성합니다.
      /usr/lib/vmware-vmca/bin/certool --gencert --cert=new-wcp.crt --privkey=wcp-key.priv --Name=wcp --config sol_usr.cfg
  3. VECS의 솔루션 사용자 인증서를 새 솔루션 사용자 인증서로 교체합니다.
    참고: --store--alias 매개 변수는 서비스의 기본 이름과 정확하게 일치해야 합니다.
    1. 각 노드에서 시스템 솔루션 사용자 인증서를 교체합니다.
      /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store machine --alias machine
      /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store machine --alias machine --cert new-machine.crt --key machine-key.priv
      
    2. 각 노드에서 vpxd 솔루션 사용자 인증서를 교체합니다.
      /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store vpxd --alias vpxd
      /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store vpxd --alias vpxd --cert new-vpxd.crt --key vpxd-key.priv
      
    3. 각 노드에서 vpxd-extension 솔루션 사용자 인증서를 교체합니다.
      /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store vpxd-extension --alias vpxd-extension
      /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store vpxd-extension --alias vpxd-extension --cert new-vpxd-extension.crt --key vpxd-extension-key.priv
      
    4. 각 노드에서 vsphere-webclient 솔루션 사용자 인증서를 교체합니다.
      /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store vsphere-webclient --alias vsphere-webclient
      /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store vsphere-webclient --alias vsphere-webclient --cert new-vsphere-webclient.crt --key vsphere-webclient-key.priv
      
    5. 각 노드에서 wcp 솔루션 사용자 인증서를 교체합니다.
      /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store wcp --alias wcp
      /usr/lib/vmware-vmafd/bin/vecs-cli entry create --store wcp --alias wcp --cert new-wcp.crt --key wcp-key.priv
      
  4. VMware 디렉토리 서비스(vmdir)를 새 솔루션 사용자 인증서로 업데이트합니다. vCenter Single Sign-On 관리자 암호를 묻는 메시지가 나타납니다.
    1. /usr/lib/vmware-vmafd/bin/dir-cli service list를 실행하여 각 솔루션 사용자에 대한 고유한 서비스 ID 접미사를 가져옵니다. 이 명령은 vCenter Server 시스템에서 실행합니다.
      /usr/lib/vmware-vmafd/bin/dir-cli service list
      output:
      1. machine-623bef28-0311-436e-b21f-6e0d39aa5179
      2. vsphere-webclient-623bef28-0311-436e-b21f-6e0d39aa5179
      3. vpxd-623bef28-0311-436e-b21f-6e0d39aa5179
      4. vpxd-extension-623bef28-0311-436e-b21f-6e0d39aa5179
      5. hvc-623bef28-0311-436e-b21f-6e0d39aa5179
      6. wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e
      참고: 대규모 배포의 솔루션 사용자 인증서를 나열할 경우 /usr/lib/vmware-vmafd/bin/dir-cli list의 출력에는 모든 노드의 모든 솔루션 사용자가 포함됩니다. 각 호스트의 로컬 시스템 ID를 찾으려면 /usr/lib/vmware-vmafd/bin/vmafd-cli get-machine-id --server-name localhost를 실행하십시오. 각 솔루션 사용자 이름에 시스템 ID가 포함되어 있습니다.
    2. vCenter Server 노드에서 vmdir의 시스템 인증서를 교체합니다. 예를 들어 machine-6fd7f140-60a9-11e4-9e28-005056895a69가 vCenter Server의 시스템 솔루션 사용자인 경우 이 명령을 실행하십시오.
      /usr/lib/vmware-vmafd/bin/dir-cli service update --name machine-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-machine.crt
    3. 각 노드에서 vmdir의 vpxd 솔루션 사용자 인증서를 교체합니다. 예를 들어 vpxd-6fd7f140-60a9-11e4-9e28-005056895a69가 vpxd 솔루션 사용자 ID인 경우 이 명령을 실행하십시오.
      /usr/lib/vmware-vmafd/bin/dir-cli service update --name vpxd-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vpxd.crt
    4. 각 노드에서 vmdir의 vpxd-extension 솔루션 사용자 인증서를 교체합니다. 예를 들어 vpxd-extension-6fd7f140-60a9-11e4-9e28-005056895a69가 vpxd-extension 솔루션 사용자 ID인 경우 이 명령을 실행하십시오.
      /usr/lib/vmware-vmafd/bin/dir-cli service update --name vpxd-extension-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vpxd-extension.crt
      
    5. 각 노드에서 vsphere-webclient 솔루션 사용자 인증서를 교체합니다. 예를 들어 vsphere-webclient-6fd7f140-60a9-11e4-9e28-005056895a69가 vsphere-webclient 솔루션 사용자 ID인 경우 이 명령을 실행하십시오.
      /usr/lib/vmware-vmafd/bin/dir-cli service update --name vsphere-webclient-6fd7f140-60a9-11e4-9e28-005056895a69 --cert new-vsphere-webclient.crt
      
    6. 각 노드에서 wcp 솔루션 사용자 인증서를 교체합니다. 예를 들어 wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e이 wcp 솔루션 사용자 ID이면 다음 명령을 실행합니다.
      /usr/lib/vmware-vmafd/bin/dir-cli service update --name wcp-1cbe0a40-e4ce-4378-b5e7-9460e2b8200e --cert new-wcp.crt
      

다음에 수행할 작업

vCenter Server 노드에서 모든 서비스를 다시 시작합니다.