CloudPools 계정을 생성하지 못했거나 CloudPools 계정에 연결할 수 없습니다. 메시지 표시 CL_SSL_CACERT
Summary: 인증서 오류로 인해 CloudPools 계정을 생성하지 못했습니다.
Symptoms
CloudPools 계정을 생성하려고 하면 다음 오류가 발생합니다.
Account Create Failed. The CloudPools account did not create due to the following error: Account validation failed to connect to remote server: clapi error: CL_SSL_CACERT; Peer certificate cannot be authenticated with known CA certificates.
OneFS 8.2로 업그레이드한 후에도 기존 CloudPools 계정을 볼 때 동일한 오류가 나타납니다.
Cause
루트 인증서가 올바르게 설치되지 않은 경우 CloudPools 계정 생성이 실패하고 이 오류가 발생합니다. 중간 자체 서명 인증서와 동일
OneFs v8.2로 업그레이드하는 경우 인증서의 정적 목록이 새 저장소로 마이그레이션될 때 이 문제가 발생합니다. 이 저장소에는 CloudPools용 시스템에 설치된 인증서(예: ECS 인증서)가 포함되지 않으며 이 목록에 포함되지 않습니다.
Resolution
아래의 단계를 따라 문제를 해결합니다.
-
다음 명령을 실행하여 CloudPools 서버의 인증서 목록을 텍스트 파일로 덤프합니다.
openssl s_client -connect <cloudpool_server>:443 -showcerts -certform PEM > cert.txt
-
cert.txt에서 필요한 인증서 구성 요소는 다음으로 시작하는 줄 사이에 있습니다.
-----BEGIN CERTIFICATE----- AND -----END CERTIFICATE----- -
서명 기관의 ROOT CA 인증서여야 하므로 마지막 인증서를 복사합니다. -----BEGIN CERTIFICATE-----에서 -----END CERTIFICATE-----까지의 모든 항목을 복사하여 /ifs/.ifsvar/modules/cloud/cacert/<some_cloudpools_root_cert.pem>이라는 새 파일에 붙여넣습니다.
-
디렉토리를 인증서 위치로 변경합니다.
cd /ifs/.ifsvar/modules/cloud/cacert
-
다음 명령을 사용하여 인증서 파일의 해시를 계산합니다.
openssl x509 -hash -noout -in <some_cloudpools_root_cert>.pem
-
hash value 명령의 출력을 사용하여 인증서에 대한 기호 링크를 생성합니다.
ln -s <some_cloudpools_root_cert>.pem <hash_value>.suffix
참고:<접미사> 는 0으로 시작합니다. 기존 symlink 파일 이름이 충돌하는 경우 다음 숫자를 접미사로 사용합니다. -
CloudPools 계정으로 이동하여 프로세스를 다시 생성합니다.
버전이 OneFS 8.2 이상인 경우 필요에 따라 다음 단계를 진행합니다.
-
"/ifs/.ifsvar/modules/cloud/cacert" 경로에 있는 경우 인증서 가져오기 명령을 실행합니다.
예:
# ls -lh 94d536c0.0 lrwxr-xr-x 1 root wheel 39B Jun 3 10:35 94d536c0.0 -> cert_cloud account.pem # isi certificate authority import --certificate-path=cert_account-URI.pem --description="ECS CA" --name=ecs_cert
-
다음 명령을 사용하여 권한 목록에 추가된 ecs_cert 찾습니다.
#isi certificate authority list
-
다음 명령을 사용하여 isi_cpool_d 서비스를 재시작합니다.
# isi services -a isi_cpool_d disable
30초 동안 기다린 후 다음 명령을 실행합니다.
# isi services -a isi_cpool_d enable
-
다음 명령을 사용하여 클라우드 계정에 연결할 수 있고 상태가 정상인지 확인합니다.
# isi cloud accounts view <account-name>
Additional Information
관리자가 계정을 만들 때 SSL 인증서 유효성 검사를 활성화하거나 이 옵션을 '건너뛰기'에서 '건너뛰지 않음'으로 변경하는 경우 서버에 루트 인증이 올바르게 설치되어 있어야 합니다. 그렇지 않으면 CloudPools가 클라우드 공급업체에 연결하지 못하고 SSL_CACERT_ERROR 생성됩니다.
SSL 인증서 검증을 수행하도록 계정을 구성하면 CloudPools가 해당 계정의 클라우드 공급업체에 연결할 때마다 검증이 수행되며 검증이 실패할 수 있습니다. 이 경우 1100000009 CPOOL_CERTIFICATE_ERROR와 같은 클러스터 이벤트 로그 이벤트가 생성됩니다.
스토리지 서비스 공급자가 자체 서명된 인증서를 설치한 경우 서버에 연결할 때 인증서 체인에도 표시되어야 합니다. 서버를 인증하기 위한 루트 인증서이므로 자체 서명된 인증서를 찾습니다.
루트 인증서만 CloudPools 클러스터에 사전 설치해야 합니다. 사이트에서 SSL 프록시 서버를 배포하는 경우 중간 인증서도 가져와서 설치해야 할 수 있습니다.
루트 인증서의 복사본이 PEM 인코딩 형식 이외의 형식인 경우 설치하기 전에 OpenSSL 명령을 사용하여 PEM 변환을 수행합니다.