Error al crear la cuenta de CloudPools o no se puede acceder a la cuenta de CloudPools con el mensaje: error de clapi: CL_SSL_CACERT
Summary: La creación de la cuenta de CloudPools falló con un error de certificado.
Symptoms
Cuando se intenta crear una cuenta de CloudPools, se produce el siguiente error:
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.
El mismo error también aparece después de la actualización a OneFS 8.2 mientras se visualizan las cuentas de CloudPools existentes.
Cause
La creación de la cuenta de CloudPools falla con este error si los certificados raíz no están instalados correctamente. Lo mismo ocurre con los certificados intermedios autofirmados
Si hay una actualización a OneFs v8.2, esto sucede porque se migra una lista estática de certificados al nuevo almacén. Este almacén no incluye certificados que se instalaron (como el certificado de ECS) en el sistema para CloudPools y que no forman parte de esta lista.
Resolution
Siga los pasos que se indican a continuación para resolver el problema.
-
Ejecute el siguiente comando para volcar una lista de certificados del servidor de CloudPools en un archivo de texto:
openssl s_client -connect <cloudpool_server>:443 -showcerts -certform PEM > cert.txt
-
A partir de cert.txt, los componentes de certificado que se necesitan se encuentran entre las líneas que comienzan con:
-----BEGIN CERTIFICATE----- AND -----END CERTIFICATE----- -
Copie el último certificado, ya que debe ser el certificado de CA ROOT de la autoridad firmante. Copie y pegue todo, desde -----BEGIN CERTIFICATE----- hasta -----END CERTIFICATE----- en un nuevo archivo llamado /ifs/.ifsvar/modules/cloud/cacert/<some_cloudpools_root_cert.pem>.
-
Cambie el directorio a la ubicación del certificado.
cd /ifs/.ifsvar/modules/cloud/cacert
-
Calcule el hash del archivo de certificado con el siguiente comando:
openssl x509 -hash -noout -in <some_cloudpools_root_cert>.pem
-
Cree un enlace simbólico al certificado mediante la salida del comando de valor hash:
ln -s <some_cloudpools_root_cert>.pem <hash_value>.suffix
Nota:<El sufijo> comienza como 0. Si hay una colisión del nombre de archivo symlink existente, utilice el siguiente número como sufijo. -
Revise la cuenta de CloudPools y vuelva a crear el proceso.
Si la versión es OneFs 8.2 y posterior, continúe con los siguientes pasos según sea necesario:
-
Ejecute el comando de importación de certificados cuando se encuentre en la ruta "/ifs/.ifsvar/modules/cloud/cacert".
Ejemplo:
# 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
-
Busque el ecs_cert agregado a la lista de autoridades con el comando:
#isi certificate authority list
-
Reinicie isi_cpool_d servicio con el comando:
# isi services -a isi_cpool_d disable
Espere 30 segundos y, a continuación, ejecute el comando:
# isi services -a isi_cpool_d enable
-
Confirme que se pueda acceder a la cuenta de nube y que el estado sea correcto con el comando:
# isi cloud accounts view <account-name>
Additional Information
Si el administrador habilita la validación del certificado SSL al crear una cuenta o cambiar esta opción de "omitir" a "no omitir", los servidores deben tener certificaciones raíz instaladas correctamente. De lo contrario, los CloudPools no se conectan a los proveedores de servicio en la nube y se genera un SSL_CACERT_ERROR.
Cuando una cuenta está configurada para realizar la validación del certificado SSL, la validación se realiza cada vez que CloudPools se conecta al proveedor de servicio en la nube de esa cuenta y la validación puede fallar. Cuando eso sucede, se crea un evento de registro de eventos de clúster como 1100000009 CPOOL_CERTIFICATE_ERROR.
Si el proveedor de servicios de almacenamiento instaló un certificado autofirmado, también debe aparecer en la cadena de certificados cuando se conecte al servidor. Busque el certificado autofirmado, ya que es el certificado raíz para autenticar el servidor.
Solo se requiere que los certificados raíz estén preinstalados en el clúster de CloudPools. Si el sitio implementa un servidor proxy SSL, es posible que también sea necesario obtener e instalar los certificados intermedios.
Si la copia del certificado raíz está en un formato distinto del formato codificado PEM, utilice los comandos de OpenSSL para realizar la conversión de PEM antes de instalarlo.