본문 바로가기
Private & Public Cloud/VMware vSphere

ESXi 호스트 인증서 유효기간 변경, vCenter 인증서 갱신(Data Encipherment, sms_self_signed 추가 갱신), Trusted Root, 백업 인증서 삭제

by TwoJun 2025. 4. 29.

1. ESXi 호스트 인증서 유효 기간 변경 (vpxd.certmgmt.certs.daysValid)

1-1. 기본 5년(1825 day) → 10년(3650 day)으로 변경

(1) vCenter 구성 > Advanced Settings > vpxd.certmgmt.certs.daysValid

 

(2) 해당 파라미터 값을 변경함으로써 호스트 인증서 유효 기간을 변경할 수 있다.

 

 

(3) 1825 → 3650일로 변경

 

 

(4)  호스트 인증서 갱신 진행

 

 

(5) 10년 단위로 호스트 인증서 유효 기간이 변경된 것을 확인할 수 있다.

 

 

 

 

 

 

 

 

2. Certificate Manager 8번 옵션 사용 시 갱신되지 않는 Data-Encipherment, SMS(sms_self_signed)

(1)  Certificate Manager의 경우 STS 인증서까지 관리하지 않는다. SSO 도메인에 대한 토큰 관리를 담당하는 인증서이고 SSO 인증 도메인에 대한 보안 작업을 수행하기 때문에 해당 인증서가 변경되면 SSO 서비스 전체에 영향을 줄 수 있다. 따라서 VMware에서 관리자에 의한 수동 갱신 작업으로만 갱신되도록 구성되어 있다.

 

(2) STS 인증서는 관리자가 수동으로 관리해야 한다.

 

(3) Certificate Manager에서 8번 옵션으로 전체 갱신 진행 시 VMCA ROOT, MACHINE_SSL, Solution User는 갱신되지만 STS_CERT만 갱신되지 않는다.

- 수동 갱신 필요

 

(4) TRUSTED_ROOTS 인증서의 경우 VMCA가 갱신될 때마다 추가적으로 갱신되는 인증서

 

 

 

 

2-1. Certificate Manager에서 8번 옵션으로 vCenter 인증서 갱신 진행

(1) 8번 갱신 옵션 적용 이전 유효기간

 

 

(2) 갱신 진행 시 vCenter와 관련된 서비스들이 재시작된다.

- 해당 과정에서 vCenter와 연결이 잠시 끊기게 되어 약간의 접속 다운타임이 발생하지만 호스트 내부에서 동작 중인 VM 서비스들에 대한 영향은 없다.

 

 

(3) 갱신 이전과 확인해 보면 data-encipherment, sms_self_signed 인증서가 갱신되지 않은 것을 확인할 수 있다.

 

 

(4) 그 외에 STS 인증서 갱신 확인

 

 

 

(5) 위와 같이 VMCA 인증서를 갱신하게 되면 기존 인증서 내역이 삭제되며 STS까지 CLI에서 재갱신하게 되면 2년의 유효기간을 가진 인증서가 적용된다.

- 하지만 GUI 상에서 갱신을 한 번 더 해주면 10년 유효 인증서가 추가적으로 생성된다.

- CLI 갱신 2년 / GUI 갱신 10년 

 

 

 

 

 

3. Data-Encipherment, SMS(sms_self_signed) 인증서

(1) Data-Encipherment 인증서의 경우 vCenter에서 통신이 진행될 때 오고가는 데이터에 대한 암호화를 담당하는 인증서다.

 

(2) SMS(Storage Management Service)는  vCenter 내부의 스토리지 관련 기능(vSAN, iSCSI 등)을 제어하는 인증서다. sms_self_signed는 SMS가 자체적으로 서명한 인증서를 사용

 

 

 

 

 

 

 

4. Data-Encipherment, SMS(sms_self_signed) 인증서 추가 갱신 방법

4-1. 관련 Broadcom 문서

https://knowledge.broadcom.com/external/article/312152/replacing-an-expired-dataencipherment-ce.html

 

Replacing an expired data-encipherment certificate on vCenter Server

Replacing an expired data-encipherment certificate on vCenter Server book Article ID: 312152 calendar_today Updated On: Products VMware vCenter Server Show More Show Less Issue/Introduction This article provides steps to regenerate certificate in "data-enc

knowledge.broadcom.com

 

 

 

 

4-2. 스크립트(fix_encipherment_cert.sh)로 갱신 : Data-Encipherment 인증서

(1) vCenter VM의 /tmp 경로에 상단 공식 문서에 존재하는 fix_enchiperment_cert.sh 파일을 다운로드받는다.

- WinSCP  사용 시 SFTP 연결 고급 옵션에서 "shell /usr/libexec/sftp-server" 추가

 

 

(2) 작업 이전 chmod +x ./fix_enchiperment_cert.sh 명령으로 실행 권한을 부여한다.

 

 

(3) 해당 스크립트 파일을 실행한다.

 

 

 

 

4-3. 매뉴얼대로 갱신하는 방법 : Data-Encipherment 인증서

(1) 이전 인증서와 개인 키의 백업을 아래의 명령으로 가져온다.

> /usr/lib/vmware-vmafd/bin/vecs-cli entry getcert --store data-encipherment --alias data-encipherment --output /tmp/old-data-encipherment.crt

> /usr/lib/vmware-vmafd/bin/vecs-cli entry getkey --store data-encipherment --alias data-encipherment --output /tmp/old-data-encipherment.key

 

 

(2) 아래 커맨드로 VECS에서 기존 인증서 정보를 삭제한다.

> /usr/lib/vmware-vmafd/bin/vecs-cli entry delete -y --store data-encipherment --alias data-encipherment

 

 

(3) VECS 리스트에서 Data-Encipherment 인증서가 삭제되었는지 확인한다.

> /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store data-encipherment

 

 

(4) 백업한 개인 키를 사용하여 새로운 Data-encipherment 인증서를 갱신하고 VECS에 인증서를 추가한다.

> /usr/lib/vmware-vmca/bin/certool --server= <PSC_FQDN> --genCIScert --dataencipherment --privkey= /tmp/old-data-encipherment.key --cert=/tmp/tmp-data-encipherment.crt --Name=data-encipherment --FQDN= <VC_FQDN>

 

*PSC_FQDN의 경우 vCenter 7.0x 부터는 'localhost'

 

 

(5) 아래 명령을 통해 새로운 Data-encipherment 인증서를 확인한다.

> /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store data-encipherment --text | egrep 'Alias|Serial Number:|Subject:|Not Before|Not After'

 

 

(6) vpxd 서비스를 중지하고 재시작한다

> service-control --vpxd stop

> service-control --vpxd start 

 

 

 

 

4-4. SMS(SMS_Self_Singed) 인증서 갱신 방법

(1) VECS 상에서 SMS 인증서 확인

> /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store SMS

 

 

(2) vmware-sps 서비스 중지 후 SMS 인증서 Expired Date 확인

> service-control --stop vmware-sps

> for store in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list | grep -v TRUSTED_ROOT_CRLS); do echo "[*] Store :" $store; /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $store --text | grep -ie "Alias" -ie "Not After";done;

 

(3) 만료된 인증서는 아래의 명령어를 통해 제거한다.

> /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store sms --alias sms_self_signed

> /usr/lib/vmware-vmafd/bin/vecs-cli entry delete --store sms --alias SMS

 

 

(4) vmware-sps 서비스를 재시작해서 SMS 인증서가 갱신되었는지 확인한다.

> service-control --start vmware-sps

> service-control --status vmware-sps

 

 

(5) 이후 SMS 인증서가 갱신되었는지 확인한다. (갱신 성공)

 

 

 

 

 

 

 

 

 

 

5. vCenter 백업 인증서 삭제 (작업 이전 VCSA의 Offline-Snapshot 생성 필수)

5-1. 백업 인증서 삭제를 위한 스크립트 준비

(1) for store in $(/usr/lib/vmware-vmafd/bin/vecs-cli store list | grep -v TRUSTED_ROOT_CRLS); do echo "[*] Store :" $store; /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store $store --text | grep -ie "Alias" -ie "Not After";done;

 

(2) 위의 명령으로 백업 인증서 내역 조회 가능

 

 

https://knowledge.broadcom.com/external/article?legacyId=82560

 

Certificate alarm - Clearing BACKUP_STORES certificates in the VCSA

When replacing certificates in VCSA , 2 backup stores are being created, BACKUP_STORE and BACKUP_STORE_H5C. During the replacement, the old certificates are added as entries in these stores to allow for a rollback. When any of the entries in these store is

knowledge.broadcom.com

(3) vCenter 백업 스토어 인증서 삭제 공식 Reference에서 관련 스크립트를 저장해 놓는다.

 

 

 

 

5-2. vCenter로 삭제 스크립트 .sh 파일 전송

(1) Winscp 사용 시 SFTP Advanced 설정에서 "shell /usr/libexec/sftp-server" 추가

(2) Winscp를 사용하지 못하는 환경일 수도 있으니 scp 관련 명령어 추가 학습 필요 

 

 

(3) chmod +x ./clean_backup_stores.sh

(4) Windows 환경에서 가져온 스크립트라면 스크립트 상 개행 문자(Carriage Return)을 인식하지 못하므로 아래 커맨드를 먼저 적용한 후 파일을 실행시킨다.

> sed -i -e 's/\r$//' clean_backup_stores.sh 

 

 

(5) 백업 인증서를 삭제하는 과정이기 때문에 SSO 도메인과 연결된 모든 vCenter와 연결 간 동기화 문제나 연결 끊김 등의 문제가 발생할 수 있으므로 백업 인증서 삭제 전 SSO 도메인에 대한 스냅샷을 만들었는지 확인하는 메시지이다. 

- 이상이 없다면 Y로 체크하고 넘어간다.

 

 

(6) 백업 인증서 삭제가 완료되었다.

 

(7) 현재 MACHINE 인증서나 STS 인증서처럼 핵심 인증서를 삭제한 것이 아니기 때문에 vCenter 서비스 재시작은 필수 옵션이 아니라는 것을 명시해주고 있다.

 

(8) 하지만 백업 인증서를 삭제한 후 VECS(VMware Endpoint Certificate Store)가 수정된 부분을 vSphere 일부 서비스가 이 부분을 인식하지 못할 수도 있기 때문에 관련된 vCenter 알람이 발생할 수 있다. 이 부분을 해결하기 위해 서비스 restart를 권장하고 재시작이 어려운 환경일 수도 있으니 Optional로 권고하고 있는 것.

 

(9) 백업 인증서 추가 정리

- 백업 인증서가 존재하는 이유

> 인증서 추가 갱신 시 백업본이 생성되고, 갱신 실패 시 롤백 등 작업에 대비해 백업 인증서를 미리 만들어둔다.

 

- 백업 인증서 삭제 시 VECS에 영향도가 있는지?

> 직접적인 영향은 없지만, 일부 오작동하는 서비스가 백업 인증서를 참조하는 등의 예외적인 케이스가 발생할 수 있다.

 

- 백업 인증서 삭제 후 vCenter restart가 필요한 이유?

> 백업본을 지워도 일부 vSphere 서비스가 백업 인증서를 캐싱하여 사용하고 있을 수 있으며 이로 인해 인증서 관련 오류나 알람이 발생할 수도 있어서 웬만하면 Restart 권장  

 

 

 

 

 

 

 

 

6. 게시된 Trusted Root 인증서 삭제

6-1. TRUSTED ROOT 인증서 삭제 개요

(1) /usr/lib/vmware-vmafd/bin/dir-cli 경로에 존재하는 인증서가 먼저 삭제되어야 한다.

 

(2) 이후 /usr/lib/vmware-vmafd/bin/vecs-cli 경로에 존재하는 인증서가 삭제가 필요하다.

 

(3) 만약, /usr/lib/vmware-vmafd/bin/vecs-cli 경로의 Trusted Root 인증서를 먼저 삭제하면 /usr/lib/vmware-vmafd/bin/dir-cli에 인증서가 남아 있어서 계속 롤백된다.

 

(4) 관련 공식 문서

https://knowledge.broadcom.com/external/article/326288/removing-ca-certificates-from-the-truste.html

 

Removing CA Certificates from the TRUSTED_ROOTS store in the VMware Endpoint Certificate Store(VECS)

--> Removing CA Certificates from the TRUSTED_ROOTS store in the VMware Endpoint Certificate Store(VECS) book Article ID: 326288 calendar_today Updated On: Products VMware vCenter Server Show More Show Less Issue/Introduction There is a critical alarm in t

knowledge.broadcom.com

 

 

 

 

6-2. VMware Directory Service, VMware Endpoint Certificate Store(VECS)

(1) VMware Directory Service(vmdir)

- SSO 도메인 기반과 관련된 모든 인증, 사용자, 그룹, 정책, 인증서 체인(신뢰성, 권한)을 관리한다.

- LDAP 기반 디렉터리 역할 수행

- 인증 토큰 검증 기반으로 STS 인증과 연결된다.

- Trusted Root 인증서 정보를 담고 있다.

 

 

(2) VMware Endpoint Certificate Store(VECS)

- vCenter 내부에서 사용되는 인증서를 관리하는 로컬 저장소 

- Machine SSL, Solution User(vpxd, vpxd-extension, etc ... 등) 등의 인증서 보관

- 별도의 비밀번호(인증) 없이 인증서, 키 값을 저장하고 있다.

 

 

 

 

6-3. 작업 이전, Trusted Roots 인증서의 Alias, X509v3 Subject Key Identifier 선확인 

(1) 확인 커맨드

> /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store TRUSTED_ROOTS --text | less

 

 

(2) 현재 삭제해야 할 루트 인증서가 2개다. Alias, X509v3(CN 값)을 매칭시켜서 위와 같이 따로 적어두면 편하다.

 

 

(3) 루트 인증서의 x509(CN) 값은 vCenter 인증서 관리에서도 확인해 볼 수 있다.

 

(3) 현재 CN 값이 "993EE554D333B1FE073E935EAF04BE73ECF90196"인 루트 인증서를 삭제하고자 한다.

 

 

 

 

6-4. /usr/lib/vmware-vmafd/bin/dir-cli : Trusted Root 인증서 삭제 작업

(1) vmdir에 등록된 Trusted 루트 인증서 목록 확인 - (CN(id)) 조회 가능

> /usr/lib/vmware-vmafd/bin/dir-cli trustedcert list 

 

 

(3) vmdir에 등록된 Trusted 루트 인증서에 CN 값으로 인증서에 대한 체인 정보를 파일로 추출한다. 

> /usr/lib/vmware-vmafd/bin/dir-cli trustedcert get --id 'CN(id)' --login 'administrator@vsphere.local' --password 'password' --outcert/tmp/oldcert.cer

 

(4) /tmp/oldcert.cer를 vi 명령어로 확인해 보면 인증서 정보가 저장된 것을 확인할 수 있다.

 

 

(4) VMDIR에서 Trusted 루트 인증서 게시를 취소한다.

> /usr/lib/vmware-vmafd/bin/dir-cli trustedcert unpublish --cert /tmp/oldcert.cer

 

(5) 작업 이후 oldcert.cer 파일들을 rm으로 삭제한다.

 

 

(6) 해당 명령으로 vmdir에서 인증서 게시가 취소되었는지 확인한다.

> /usr/lib/vmware-vmafd/bin/dir-cli trustedcert list

 

 

(7) vSphere Web Client 상에서도 신뢰 가능한 루트 인증서가 사라진 것을 확인할 수 있다.

 

(8) VECS 상에서도 보면 신뢰가능한 루트 인증서는 1개만 남아있다

/usr/lib/vmware-vmafd/bin/vecs-cli entry list --store TRUSTED_ROOTS --text | less

 

 

 

 

6-5. /usr/lib/vmware-vmafd/bin/vecs-cli : VECS 상에서 존재하는 TRUSTED_ROOTS 삭제

(1) vmdir에서도 인증서 게시를 취소하여 VECS에서도 TRUSTED_ROOT 인증서가 1개만 남은 것을 확인할 수 있다.

 

(2) VECS에서 해당 alias를 가진 Trusted Root 인증서 삭제를 진행한다.

> /usr/lib/vmware-vmafd/bin/vecs-cli entry delete  --store TRUSTED_ROOTS --alias <Alias_Name>

 

(3) 삭제할 건지 확인하는 메시지가 나타난다면 Y 입력 후 삭제 

 

 

(4) 해당 Alias를 가진 Trusted 루트 인증서가 삭제되었는지 탐색한다.

> /usr/lib/vmware-vmafd/bin/vecs-cli entry list --store TRUSTED_ROOTS --text | grep <Alias_Name>

 

(5) 현재 삭제하려는 대상의 Alias로 인증서를 조회해 보면 조회되지 않지만, 보존하려고 했던 인증서의 Alias로 인증서 리스트 확인 시 남아있는 것을 확인할 수 있다.

 

 

(6) VECS(VMware Endpoint Certificate Store)를 강제로 새로고침한다.

> /usr/lib/vmware-vmafd/bin/vecs-cli force-refresh 

 

 

 

 

댓글