Falha na criação da conta do CloudPools ou a conta do CloudPools está inacessível com a mensagem: clapi error: CL_SSL_CACERT
Summary: Falha na criação da conta do CloudPools com erro de certificado.
Symptoms
A tentativa de criar uma conta do CloudPools obtém o seguinte erro:
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.
O mesmo erro também é exibido após o upgrade para o OneFS 8.2, ao visualizar as contas existentes do CloudPools.
Cause
A criação da conta do CloudPools apresentará falha com esse erro se os certificados raiz não forem instalados corretamente. O mesmo com certificados autoassinados intermediários
Se houver um upgrade para o OneFS v8.2, isso acontecerá enquanto uma lista estática de certificados é migrada para o novo armazenamento. Esse armazenamento não inclui certificados que foram instalados (como o certificado do ECS) no sistema para CloudPools e não fazem parte dessa lista.
Resolution
Siga as etapas a seguir para resolver o problema:
-
Execute o seguinte comando para despejar uma lista de certificados do servidor CloudPools em um arquivo de texto:
openssl s_client -connect <cloudpool_server>:443 -showcerts -certform PEM > cert.txt
-
A partir cert.txt, os componentes de certificado necessários estão nas entrelinhas que começam com:
-----BEGIN CERTIFICATE----- AND -----END CERTIFICATE----- -
Copie o último certificado, pois ele deve ser o certificado ROOT CA da autoridade de assinatura. Copie e cole tudo, desde -----BEGIN CERTIFICATE----- até -----END CERTIFICATE----- em um novo arquivo chamado /ifs/.ifsvar/modules/cloud/cacert/<some_cloudpools_root_cert.pem>.
-
Altere o diretório para o local do certificado.
cd /ifs/.ifsvar/modules/cloud/cacert
-
Calcule o hash do arquivo de certificado com o comando:
openssl x509 -hash -noout -in <some_cloudpools_root_cert>.pem
-
Crie um link simbólico para o certificado usando a saída do comando hash value:
ln -s <some_cloudpools_root_cert>.pem <hash_value>.suffix
Nota:<O sufixo> começa como 0. Se houver uma colisão do nome do arquivo symlink existente, use o próximo número como sufixo. -
Percorra a conta do CloudPools e crie o processo novamente.
Se a versão for OneFs 8.2 e posterior, prossiga com as próximas etapas conforme necessário:
-
Execute o comando de importação de certificado quando estiver no caminho "/ifs/.ifsvar/modules/cloud/cacert".
Exemplo:
# 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
-
Localize o ecs_cert adicionado à lista de autoridades com o comando:
#isi certificate authority list
-
Reinicie isi_cpool_d serviço com o comando:
# isi services -a isi_cpool_d disable
Aguarde 30 segundos e execute o comando:
# isi services -a isi_cpool_d enable
-
Confirme se a conta de nuvem está acessível e se o estado está ok com o comando:
# isi cloud accounts view <account-name>
Additional Information
Se o administrador ativar a validação do certificado SSL ao criar uma conta ou alterar essa opção de "ignorar" para "não ignorar", os servidores deverão ter certificações raiz instaladas corretamente. Caso contrário, o CloudPools não conseguirá se conectar aos provedores de serviços em nuvem e uma SSL_CACERT_ERROR será gerada.
Quando uma conta é configurada para fazer a validação de certificado SSL, a validação é executada sempre que o CloudPools se conecta ao provedor de nuvem dessa conta e a validação pode falhar. Quando isso acontece, um evento de log de eventos do cluster, como 1100000009 CPOOL_CERTIFICATE_ERROR, é criado.
Se o provedor de serviços de armazenamento tiver instalado um certificado autoassinado, ele também deverá aparecer na cadeia de certificados quando você se conectar ao servidor. Localize o certificado autoassinado, pois é o certificado raiz para autenticar o servidor.
Somente os certificados raiz precisam ser pré-instalados no cluster do CloudPools. Se o site implantar um servidor proxy SSL, pode ser necessário obter e instalar os certificados intermediários também.
Se a cópia do certificado raiz estiver em um formato diferente do formato codificado por PEM, use os comandos OpenSSL para fazer a conversão de PEM antes de instalá-la.