La creazione dell'account CloudPools non è riuscita o l'account CloudPools non è raggiungibile con messaggio: errore clapi: CL_SSL_CACERT
Summary: Creazione dell'account CloudPools non riuscita con errore del certificato.
Symptoms
Se si tenta di creare un account CloudPools, viene visualizzato il seguente errore:
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.
Lo stesso errore viene visualizzato anche dopo l'aggiornamento a OneFS 8.2, durante la visualizzazione degli account CloudPools esistenti.
Cause
La creazione dell'account CloudPools non riesce e genera questo errore se i certificati root non sono installati correttamente. Lo stesso vale per i certificati autofirmati intermedi
Se è presente un aggiornamento a OneFs v8.2, ciò si verifica quando un elenco statico di certificati viene migrato nel nuovo archivio. Questo archivio non include i certificati installati (ad esempio, il certificato ECS) nel sistema per CloudPools e non fanno parte di questo elenco.
Resolution
Attenersi alla seguente procedura per risolvere il problema.
-
Eseguire il comando seguente per eseguire il dump di un elenco di certificati dal server CloudPools in un file di testo:
openssl s_client -connect <cloudpool_server>:443 -showcerts -certform PEM > cert.txt
-
Da cert.txt, i componenti del certificato necessari si trovano tra le righe che iniziano con:
-----BEGIN CERTIFICATE----- AND -----END CERTIFICATE----- -
Copiare l'ultimo certificato, in quanto dovrebbe essere il certificato CA ROOT dell'autorità di firma. Copiare e incollare tutti gli elementi da -----BEGIN CERTIFICATE----- a -----END CERTIFICATE----- in un nuovo file denominato /ifs/.ifsvar/modules/cloud/cacert/<some_cloudpools_root_cert.pem>.
-
Modificare la directory nella posizione del certificato.
cd /ifs/.ifsvar/modules/cloud/cacert
-
Calcolare l'hash del file di certificato con il comando:
openssl x509 -hash -noout -in <some_cloudpools_root_cert>.pem
-
Creare un link simbolico al certificato utilizzando l'output del comando hash value:
ln -s <some_cloudpools_root_cert>.pem <hash_value>.suffix
Nota:<Il suffisso> inizia come 0. Se si verifica una collisione del nome del file symlink esistente, utilizzare il numero successivo come suffisso. -
Passare attraverso l'account CloudPools e creare nuovamente il processo.
Se la versione è OneFs 8.2 e successive, procedere con i passaggi successivi in base alle esigenze:
-
Eseguire il comando certificate import dal percorso "/ifs/.ifsvar/modules/cloud/cacert."
Esempio:
# 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
-
Trovare il ecs_cert aggiunto all'elenco delle autorità con il comando:
#isi certificate authority list
-
Riavviare isi_cpool_d servizio con il comando:
# isi services -a isi_cpool_d disable
Attendere 30 secondi, quindi eseguire il comando:
# isi services -a isi_cpool_d enable
-
Verificare che l'account cloud sia raggiungibile e che lo stato sia ok con il comando:
# isi cloud accounts view <account-name>
Additional Information
Se l'amministratore abilita la convalida del certificato SSL durante la creazione di un account o la modifica di questa opzione da "skip" a "not skip", i server devono avere le certificazioni root installate correttamente. In caso contrario, CloudPools non riesce a connettersi ai provider di cloud e viene generato un SSL_CACERT_ERROR.
Quando un account viene configurato per eseguire la convalida del certificato SSL, la convalida viene eseguita ogni volta che CloudPools si connette al provider di cloud di tale account e la convalida potrebbe non riuscire. In questo caso, viene creato un evento del registro eventi del cluster simile a 1100000009 CPOOL_CERTIFICATE_ERROR.
Se il provider di servizi di storage ha installato un certificato autofirmato, dovrebbe essere visualizzato anche nella catena di certificati quando ci si connette al server. Individuare il certificato autofirmato, in quanto è il certificato radice per autenticare il server.
Solo i certificati root devono essere preinstallati nel cluster CloudPools. Se il sito implementa un server proxy SSL, potrebbe essere necessario ottenere e installare anche i certificati intermedi.
Se la copia del certificato root è in un formato diverso da quello codificato PEM, utilizzare i comandi OpenSSL per eseguire la conversione PEM prima di installarlo.