Falha na chamada da API REST do PowerFlex ao recuperar certificados MDM
Summary: Ao tentar recuperar certificados MDM, usando uma chamada da API REST do PowerFlex Gateway, a operação falha.
Symptoms
Gateway do PowerFlex mostrando que os certificados MDM já estão adicionados ao 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,
A chamada da API REST para recuperar os certificados MDM mostra o erro:
[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 /]#
Os logs do arquivo scaleio.log podem mostrar o seguinte erro:
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
Observe que a mesma chamada da API REST para o componente LIA pode retornar o mesmo erro.
Impacto
Não é possível recuperar o certificado MDM ou LIA usando uma chamada da API REST.
Cause
No PowerFlex Gateway versão 3.6.1 e posteriores, o Gateway forneceu o certificado MDM usando um truststore fictício. No PowerFlex Gateway versão 3.6.2, o código foi alterado como parte da nova versão da biblioteca cryptoj. Portanto, um truststore válido é usado.
Nesse cenário, o usuário tentou recuperar e adicionar o certificado MDM usando uma chamada da API REST, mas o certificado MDM já foi adicionado no truststore.
O código foi projetado para recuperar o certificado MDM se ele não estiver no PowerFlex Gateway, pois não é um certificado confiável antes de adicioná-lo ao truststore.
Resolution
A chamada da API REST poderá recuperar o certificado MDM/LIA se o certificado ainda não tiver sido adicionado ao truststore.
Verifique se o certificado MDM que está sendo recuperado ainda não foi adicionado ao truststore. Neste exemplo, o MDM com IP "14.14.14.102" não é adicionado ao 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,
A execução da chamada da API REST para recuperar o certificado do MDM foi bem-sucedida.
[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
Versões afetadas
PowerFlex 3.6.2
Correção feita na versão
N/D - Funcionando conforme projetado