Error, invalid arguments:Certificate with subject my not found in localmachine\my

Publicado por

Ya en mi post anterior habrán notado que estoy en plena implementación de un Machine Learning Server 9.3 y como siempre, los problemas no faltan.

Quizá algunos de ustedes hayan seguido el post de Microsoft (Encrypt Credentials and Secrets) de la documentación oficial del producto, sin embargo, como habrán notado es una documentación bien básica en términos de lo que puede llegar a pasar.

Microsoft dice en su post lo siguiente:

En los nodos web ejecute el siguiente comando

# With elevated privileges, run the following commands.
# Get help on the commands
az ml admin credentials --help
# Display list of certificates installed on this machine
az ml admin credentials list
# For example:
# [
#   "A. DC=Windows Azure CRP Certificate Generator (private key)"
# ]
# Encrypt a secret
az ml admin credentials set ---cert-store-name <CERT_STORE_NAME> --cert-store-location <CERT_STORE_LOCATION> --cert-subject_name <CERT_SUBJECT_NAME> --secret <secret>

Yo me topé con el siguiente error

Error, invalid arguments: Certificate with subject my not found in localmachine\my

Como notan en el error, no es muy descriptivo, ni siquiera trae el subject del certificado que no encuentra en el repositorio, lo que tuve que hacer fue un poco de depuración sobre el comando, el problema es que cuando el Azure CLI intenta llamar a la DLL que se encargará del proceso, elimina las comillas que pudimos haber agregado, el problema se evidencia cuando el certificado digital fue emitido con comas (,) para tener mayor detalle en el subject, mi certificado tiene como subject CN=CertificadoML2, OU=DEMO.

Paso a paso de lo que ocurre

Listar los certificados digitales

az ml admin credentials list

az ml admin credentials list
Determinar los parámetros para el script

az ml admin credentials set --help

az ml admin credentials set --help
Intentemos con un certificado digital sencillo CN=CertificadoML asi:

az ml admin credentials -l localmachine -n my -j CN=CertificadoML -s “Texto a encriptar”

az ml admin credentials -l localmachine -n my -j CN=CertificadoML -s “Texto a encriptar”
Intentar con un certificado digital con Comas (,) CN=CertificadoML2, OU=DEMO

az ml admin credentials -l localmachine -n my -j “CN=CertificadoML2, OU=DEMO” -s “Texto a encriptar”

az ml admin credentials -l localmachine -n my -j “CN=CertificadoML2, OU=DEMO” -s “Texto a encriptar”
El error se debe a la coma en el nombre del certificado digital, ahora bien, no es necesario eliminar la coma para que todo funcione, lo que debemos hacer es pasar el nombre en forma de texto así:

az ml admin credentials -l localmachine -n my -j “’CN=CertificadoML2, OU=DEMO’” -s “Texto a encriptar”

Como notaron, lo que se debe hacer es agregar una comilla sencilla después de la comilla doble, de esa forma el parámetro pasa correctamente y el texto es encriptado de forma adecuada.

Nos leemos!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *