본문 바로가기

Virtualization/VMware vCenter Server

[VMware] expired STS certificate on vCenter / vCenter CertificateStatus Alaram

사용 버전

vCenter 6.5 ~ 6.7 (both Windows or Appliance)

 

 

 

Error Message

"Certificate Status" alarm in vCenter

vCenter 내 "인증서 상태" 경고

 

 

상세 내용

vCenter 내 "인증서 상태" 내용으로 경고가 떠 있을 수 있다.

vCenter는 STS Token (Security Token Service) 인증을 통해 SSO에 자격 증명 과정을 거친다.

자격 증명을 STS 인터페이스에 제공해 SAML 토큰을 획득하여 vCenter SSO에 접근하는 방식인데,

모든 vCenter의 STS Token에는 인증서 수명이 있다.

 

수명을 다하면? 사진처럼 vCenter 로그인 시 접속이 되지 않는다.

 

6.5 라인 중 U2 이상의 빌드에서는 이 인증서 수명이 2년밖에 되지 않는다.

내 경우는 6.0 U3, 6.5U3에서 발생했고 6.0U3를 "다시 설치"했더니 인증서 수명이 10년이었다.

테스트 삼아 6.5U3를 "재설치"가 아닌 인증서 "갱신"했을 땐 2년만 늘어났었다.

버전이나 빌드에 따라 조금씩 다른 것으로 보인다.

 

한창 6.0과 6.5가 새로 나왔을 때, 설치/업그레이드를 빈번히 했을테니 최근 동시에 터지고 있는 이슈이다.

참고사항

- vCenter 업그레이드를 해도 인증서는 refresh 되지 않는다.

- 인증서 만료는 Appliance와 Windows 모두 발생한다. 갱신 프로세스는 동일하지만 과정이 조금 다르다.

- vSphere 환경이라면 재설치가 간편한 방법일 수 있다.

- 하지만 vSAN, NSX, SRM, Replication, 백업 등 추가 솔루션을 함께 쓰는 경우는 최대한 갱신 방향으로 보는 것이 좋다. 갱신 후에도 재등록이 필요하다.

 

<UI 확인 방법>

1. vCenter 접속 (Flex)

2. 메뉴 > 관리 > Single Sign-on > 구성 > 인증서 > STS 서명 > 유효 기간 종료 일자 확인

or

1. vCenter 접속 (HTML5)

2. 메뉴 > 관리 > 인증서 > 인증서 관리 > 유효 기간 종료 일자 확인

* HTML5에는 CN=ssoserverSign이 안나오는 것 같은데.. Flash 기반이 더 정확한 것으로 보인다.

* vCenter SSH 내 스크립트를 돌려 확인하는 방법도 있다. (kb.vmware.com/s/article/79248)

 

 

 

해결책

* Windows건 Appliance건 STS 인증서 갱신을 위한 스크립트 실행이 필요한데,

이 스크립트는 vmdir 내 데이터베이스와 상호작용하기 때문에, SSO 도메인 당 한 번만 실행하라고 되어 있다.

 

 

01. Windows

  - KB79263 내 (kb.vmware.com/s/article/79263) fixsts.ps1 스크립트를 다운받는다.

    * 6.7U3g 이하 버전이라면 vmware-identity-sso-config67u3g 파일도 함께 다운받는다.

  - vCenter가 설치된 Windows VM에 접속하여 C드라이브 내 Temp 폴더에 해당 파일들을 paste한다.

    내 경우는 C:\Windows\Temp 폴더에 파일을 넣었다.

  - PowerShell 실행 후 아래 내용 및 사진대로 진행한다.

    #cd C:\Windows\Temp  // 파일이 있는 탐색기 경로로 접근

    #./fixsts.ps1                        // 스크립트 실행

  - vCenter Reboot (Windows VM) 한다.

  - vCenter 접속하여 STS 인증서 기간 혹은 SSH 접속하여 스크립트 통한 유효 기간 갱신여부를 확인한다.

  - 만약 vCenter 접속이 안된다면?

    당황하지 말고 다시 Windows 탐색기를 열어 C:\Program Files\VMware\vCenter Server\vmcad 경로로 접근한다.

  - certifiacate-manager 파일을 실행하여 Option value로 8번을 입력한다.

  - 여러 옵션 값을 입력하라 나오는데, IP Address/FQDN/VMCA 값만 제외하고 Default로 Enter를 누른다.

    IP Address는 vCenter IP, FQDN는 FQDN 혹은 IP, VMCA도 FQDN 혹은 IP를 입력하면 된다.

  - service reset을 알아서 진행할텐데, 85%에서 오래 걸린다. 여유를 갖고 기다리면 마무리된다.

 

 

VMware KB (Windows STS 만료) : kb.vmware.com/s/article/79263 

VMware KB (VMCA 인증서 갱신) : kb.vmware.com/s/article/2112283

 

 

 

 

 

 

 

02. Appliance

  - KB76719 내 (kb.vmware.com/s/article/76719) fixsts.sh 스크립트 파일을 다운로드 받는다.

  - fixsts.sh 파일을 메모장 혹은 워드패드 파일로 실행해 전체내용을 copy 한다.

  - PuTTY 등을 통해 vCenter IP로 SSH 접속한다.

  - 아래 내용 및 사진대로 진행한다.

    #cd /tmp                    // tmp 경로 접근

    #vi fixsts.sh                // fixsts.sh 이름의 파일을 vi 편집기로 실행

    "i" key를 누른 후 Ctrl+V (위에서 copy한 fixsts.sh 전체내용을 paste)

    :wq!를 통해 저장 후 vi 편집기를 빠져나온다.

    #chmod +x fixsts.sh   // 스크립트 실행을 위한 권한 부여

    #./fixsts.sh                 // 스크립트 실행

  - 실행이 마무리 되었다면, vCenter Reboot을 진행한다.

  - vCenter 접속하여 STS 인증서 기간 혹은 SSH 접속하여 스크립트 통한 유효 기간 갱신여부를 확인한다.

  - #/usr/lib/vmware-vmca/bin/certificate-manager   // 인증서 all reset을 위한 인증서 매니져 실행

  - Option value로 8번을 입력한다.

  - 여러 옵션 값을 입력하라 나오는데, IP Address/FQDN/VMCA 값만 제외하고 Default로 Enter를 누른다.

    IP Address는 vCenter IP, FQDN는 FQDN 혹은 IP, VMCA도 FQDN 혹은 IP를 입력하면 된다.

  - service reset을 알아서 진행할텐데, 85%에서 오래 걸린다. 여유를 갖고 기다리면 마무리된다.

    

 

VMware KB (Appliacne STS 만료) : kb.vmware.com/s/article/76719

VMware KB (VMCA 인증서 갱신) : kb.vmware.com/s/article/2112283