본문 바로가기

Compute

Certificate Problem (2) - How to Replace certificates

 

지난 번 인증서 만료 일자 확인 글(https://haewon83.tistory.com/72)에 이이서 오늘은 개별 인증서별로 어떻게 갱신하는지에 대하여 다뤄보도록 하겠습니다.

 

본 글에서는 VMCA 대신 별도의 Enterprise(Customer) CA를 사용하는 경우는 다루지 않습니다.

 

우선 자주 사용되는 도구인 Certificate Manager를 말씀드려야 하는데요.

Certificate Manager를 통해서 Machine SSL, VMCA, Solution User의 인증서를 갱신할 수 있기 때문에 인증서 만료 문제가 생겼을 때 자주 보게 되실 수 있는 도구입니다.

Certificate Manager는 /usr/lib/vmware-vmca/bin/certificate-manager에 위치하고 있으며, 사용 전에 반드시 /usr/lib/vmware-vmca/share/config/certool.cfg 파일을 먼저 백업하시기 바랍니다.

 

인증서를 갱신하실 때 주의 사항으로는 VCHA 구성인 경우에는 VCHA 구성을 해제한 후 Active vCenter를 Power Off 하고 나서 Offline Snapshot을 생성해야 합니다.

 

그러면, 첫 번째로 STS 인증서를 갱신하는 방법입니다.

1. STS(Security Token Service) 인증서

vCenter가 정상 동작하고 있는 경우

인증서가 만료되기 이전에는 UI를 통해서 교체가 가능하기 때문에 다음 URL을 참고하시면 됩니다.

Refresh a vCenter Server STS Certificate Using the vSphere Client
https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.authentication.doc/GUID-568A53A4-BED4-4F05-BB94-650E758409CC.html

 

vCenter가 정상 동작하지 않는 경우(인증서 만료등으로 인하여)

인증서가 만료되어 정상적으로 vCenter UI에 접속이 안되는 경우에는 https://kb.vmware.com/s/article/76719 KB에 첨부된 fixsts.sh파일을 이용하여 갱신이 가능합니다.

 

Linked Mode를 사용하는 경우 STS 인증서를 갱신할 때 나머지 vCenter들도 재시작을 해줘야 다른 vCenter들의 STS 인증서도 갱신이 자동으로 이뤄집니다.

 

다음으로는 vCenter에서 자체적으로 가지고 있는 Certificate Authority의 인증서인 VMCA 인증서 교체 방법입니다.

Machine SSL과 Solution User 인증서는 이 VMCA 인증서를 가지고 Signing을 하기 때문에 VMCA 인증서를 교체하고 나면 반드시 나머지 인증서들을 신규 VMCA 인증서로 Signing된 인증서로 교체해줘야 합니다.

2. VMCA 인증서

VMCA 인증서는 아래 URL을 참고하셔서 갱신을 할 수 있습니다.

Generate a New VMCA-Signed Root Certificate
https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.authentication.doc/GUID-5B1D7962-E094-4E9B-B5CC-556575EBDCAC.html

 

다만, 어차피 VMCA 인증서를 갱신하고 나서 Machine SSL과 Solution User 인증서를 갱신해야 하기 때문에 Certificate Manager를 사용하시는 것이 가장 효율적인 방법입니다.

"After you generate a new VMCA-signed root certificate, you can replace all machine SSL certificates in your environment."

 

Certificate Manager에서 4번 옵션을 이용하여 VMCA 인증서를 갱신하고 나머지 모든 인증서를 갱신할 수 있습니다.

아니면 Certificate Manager를 이용하지 않고, 위 URL 대로 VMCA 인증서만 갱신한 후에 Machine SSL 인증서는 3번 옵션으로 Solution User 인증서는 6번 옵션으로 갱신할 수 있습니다.

만약 4번 옵션을 실행했을 때 실패하는 경우에는 8번 옵션을 이용하여 전체 인증서를 Reset 해볼 수 있습니다.

 

4번과 8번 옵션이 모두 실패하는 경우에는 처음에 다루었던 STS 인증서가 만료되었거나, 올바르지 않은 Trusted Root 인증서가 남아 있을 수 있습니다.

 

3. Machine SSL/Solution User 인증서

Machine SSL과 Solution User 인증서도 VMCA와 마찬가지로 아래 URL을 참고하시어, 개별적으로 갱신이 가능합니다.

Replace Machine SSL Certificates with VMCA-Signed Certificates
https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.authentication.doc/GUID-87E0E135-26FA-4FA4-8134-33D29849106D.html

Replace Solution User Certificates with New VMCA-Signed Certificates
https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.authentication.doc/GUID-03705B8B-7B63-4C9A-961C-8DCB1D857557.html

 

위 두 인증서 또한, Certificate Manager를 통해서도 각각 옵션 3과 옵션 6을 이용하여 갱신도 가능합니다.

일반적으로는 굳이 위 URL을 통해서 Commnad Line으로 하나씩 하실 필요 없이 Certificate Manager를 사용하시는 것이 보다 문제를 일으킬 소지를 적게할 수 있습니다.

 

4. Trusted Roots Store

VMCA 인증서를 정상적으로 갱신했음에도 인증서 관련된 알람이 vCenter에서 지속적으로 발생하는 경우가 있을 수도 있습니다.

이런 경우 중의 하나로 https://kb.vmware.com/s/article/2146011 KB에 기술되어 있는 것처럼 VECS(Vmware Endpoint Cetficiate Store)중 하나인 Trusted Roots Store에 이미 만료된 인증서가 남아 있는 경우에 이를 수동으로 정리해줄 수 있습니다.

 

 

이전 글에서 다음 명령어로 VECS에 위치하는 인증서들 목록을 조회한 경우가 있습니다.

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;

해당 명령어로 조회 시 확인되는 인증서 중 Machine SSL과 Solution User는 이전에 설명했던 것처럼 Certificate Manager를 통해서 갱신이 가능하지만 그렇지 못한 인증서들이 있어 이에 대해서도 추가로 정리합니다.

 

5. SMS Store

VECS 중에서 SMS 인증서가 만료된 경우 아래 절차를 이용하시어 갱신이 가능합니다.

서비스를 중지하고, SMS 인증서 만료일자를 확인
service-control --stop vmware-sps

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

만료된 SMS 인증서 제거
/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

서비스를 시작해서 SMS 인증서가 갱신되었는지 확인
service-control --start vmware-sps
/usr/lib/vmware-vmafd/bin/vecs-cli entry list --store SMS

 

6. Data-enchiperment Store

SMS와 마찬가지로 VECS 중에서 Data-enchiperment가 만료된 경우 아래 KB를 참고하시어 첨부된 fix_enchiperment_cert.sh 파일을 이용하시거나 수동으로 Command Line을 통해 갱신이 가능합니다.

How to replace an expired data-encipherment certificate on vCenter Server (88548)
https://kb.vmware.com/s/article/88548?lang=en_US

 

오늘은 인증서 갱신 방법에 대해서 다뤄보았는데요.

vCenter 단일 제품 내에서도 신경써야 할 인증서가 VMCA, Machine SSL, Solution User, VECS등 여러 가지가 있습니다.

평상 시에 인증서 만료 기간을 모두 정리하여, 지속적으로 모니터링 및 관리를 해야 인증서 만료로 인한 문제를 사전에 예방할 수 있습니다.