La llamada de la API REST de PowerFlex falla al recuperar certificados de MDM
Summary: Cuando se intenta recuperar certificados de MDM mediante una llamada de la API REST desde el gateway de PowerFlex, la operación falla.
Symptoms
Gateway de PowerFlex que muestra que los certificados de MDM ya se agregaron al truststore:
[root@gw /]# /usr/bin/keytool -list -keystore /opt/emc/scaleio/gateway/webapps/ROOT/WEB-INF/classes/certificates/truststore.jks -storepass changeit|grep -i mdm ou=asd, o=emc, c=us, st=massachusetts, l=hopkinton, cn=scaleio-14.14.14.101, givenname=mdm, Nov 7, 2023, trustedCertEntry, ou=asd, o=emc, c=us, st=massachusetts, l=hopkinton, cn=scaleio-14.14.14.102, givenname=mdm, Nov 7, 2023, trustedCertEntry,
La llamada de la API REST para recuperar los certificados de MDM muestra el error:
[root@gw /]# mdm_ip=14.14.14.101; curl -k -u admin:$token https://$gw_ip/api/getHostCertificate/Mdm?host=$mdm_ip
{"message":"Failed retrieving host 14.14.14.101 certificate","httpStatusCode":500,"errorCode":0}[root@gw /]#
Los registros del archivo scaleio.log pueden mostrar el siguiente error:
2023-11-07 22:05:43,739 [https-jsse-nio-443-exec-3] ERROR c.e.s.s.w.c.SpecialImplController - Got an exception in handleException com.emc.s3g.scaleio.common.gateway.ScaleIOException: Failed retrieving host 14.14.14.101 certificate
Tenga en cuenta que la misma llamada de la API REST para el componente de LIA puede devolver el mismo error.
Impacto
No se puede recuperar el certificado de MDM o LIA mediante una llamada a la API REST.
Cause
En el gateway de PowerFlex versión 3.6.1 y anteriores, el gateway proporcionó el certificado del MDM mediante un truststore ficticio. En la versión 3.6.2 del gateway de PowerFlex, el código se cambió como parte de la nueva versión de la biblioteca cryptoj. Por lo tanto, se utiliza un truststore válido.
En esta situación, el usuario intentó recuperar y agregar el certificado de MDM mediante una llamada a la API REST, pero el certificado de MDM ya estaba agregado en el almacén de confianza.
El código está diseñado para recuperar el certificado de MDM si no se encuentra en el gateway de PowerFlex, ya que no es un certificado de confianza antes de agregarlo al truststore.
Resolution
La llamada a la API REST puede recuperar el certificado de MDM/LIA si el certificado aún no se ha agregado al truststore.
Verifique que el certificado de MDM que se recupera no esté ya agregado al truststore. En este ejemplo, el MDM con IP "14.14.14.102" no se agrega al truststore.
[root@gw /# /usr/bin/keytool -list -keystore /opt/emc/scaleio/gateway/webapps/ROOT/WEB-INF/classes/certificates/truststore.jks -storepass changeit|grep -i mdm ou=asd, o=emc, c=us, st=massachusetts, l=hopkinton, cn=scaleio-14.14.14.101, givenname=mdm, Nov 7, 2023, trustedCertEntry,
La ejecución de la llamada de la API REST para recuperar el certificado de MDM se realizó correctamente.
[root@gw /]# gw_ip=14.14.14.100; mdm_pass='Scaleio123!';token=`curl -k -u admin:$mdm_pass https://$gw_ip/api/login| sed 's/\"//g'` [root@gw /]# mdm_ip=14.14.14.102; curl -k -u admin:$token https://$gw_ip/api/getHostCertificate/Mdm?host=$mdm_ip -----BEGIN CERTIFICATE----- MIIDZDCCAkwCAQEwDQYJKoZIhvcNAQELBQAweDEMMAoGA1UEKgwDTURNMRMwEQYDVQQDDApuZXN0ZWRzdm0yMRIwEAYDVQQHDAlIb3BraW50b24xFjAUBgNVBAgMDU1hc3NhY2h1c2V0dHMxCzAJBgNVBAYTAlVTMQwwCgYDVQQKDANFTUMxDDAKBgNVBAsMA0FTRDAeFw0yMzAzMTQxNDA5MDFaFw0zMzAzMTIxNfe74hjFaMHgxDDAKBgNVBCoMA01ETTETMBEGA1UEAwwKbmVzdGVkc3ZtMjESMBAGA1UEBwwJSG9wa2ludG9uMRYwFAYDVQQIDA1NYXNzYWNodXNldHRzMQswCQYDVQQGEwJVUzEMMAoGA1UECgwDRU1DMQwwCgYDVQQLDANBU0QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCfLI5AFL9EDmd7cBO0Vpe0tuGQa4iHDGIGik8tjCtZKvA9dNh1J5AlVrond1IUOxSezZYz19nDD4wPFrFE99/8zs9OXoisMgw7snNM0orKxbr3uxeQAdO37HVZL0Z4lbKHR3hCRAIEC4F6XZ1rid5gjpKQgePwCM2PWmOsefg68EDCpTWXoYzXgY0OVExbvC56CUTgIZGp92RCcXlZX5/x5pVfMXHYnlKm+wyUkQvl2Lg7GNjjqMGS8K8yaXQKzFpBjsnj58dxcThGCVxzntWit9/q35H0joa8Hw/YORN6gIUNzj79RFk1wopqa02zYRu8ooJJOOjNmGRahFVy7iyPAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAHGhJiiHG7UlEAGk4k0QUKxIvUF0Agi/ho4ScnyWZlpu0YYrJpwrv4+RuZA5JgF6J13b8eOZMDlEvgOv5ljwsep4F8NgoUOUY7S3mu508HuPeNn5jw6vjYGclfbJSfttJ3/uAuTDt4+Fpor4SBuqEELegRaeABsT3ucuyhjyUKQoFR0krQQ77sVyI18PO5A7xb+RfaLViyiHbBSLZDyrhR9xePEoj/8IPJKFFqWIJGQRRPN6ynKa9vZT1P16HSuIt/2mlOsqEvTHbnPsJ9C1IUoI11ZApZI4vVwRAbLUTQjdNlcv/zekC0SfaJls/w9IgMdWiqMV42QOA0L7xEcoNc8= -----END CERTIFICATE-----[root@gw /]#
Additional Information
Versiones afectadas
PowerFlex 3.6.2
Problema corregido en la versión
N/D: Funciona según lo previsto