Azure · Certificados · Key Vault
Azure Key Vault – Error al restaurar un certificado
Recientemente tuve que hacer algunos experimentos relacionados con un Azure Application Gateway y utilizar certificados que estaban en un Azure Key Vault.
En resumen, necesitaba configurar un Application Gateway en otra Subscription para realizar algunas pruebas de migración de una aplicación del cliente.
Para realizar la prueba más cercana al entorno existente, resolví, también, utilizar los certificados ya existentes, que estaban en el Key Vault y fue cuando tuve el problema al restaurar el certificado en el nuevo Key Vault.
Voy a mostrar el paso a paso de lo ocurrido
Agregar un Listener en el Application Gateway
Al agregar un Listener en el Application Gateway, puedes elegir si quieres hacer upload de un certificado o elegir uno directamente del Key Vault.

Fue entonces cuando noté que el certificado no estaba disponible en el Key Vault de la nueva Subscription.
Hacer respaldo y restaurarlo en el Key Vault de destino
Pensé, voy a hacer un respaldo del Key Vault y restaurarlo en el Key Vault de la nueva Subscription.
Respaldo
Fui hasta el Key Vault en cuestión, busqué Certificates, y a continuación hice clic en el primer certificado del que necesitaba hacer respaldo.

Luego, seleccioné Download Backup.

Se te pedirá que no cierres esa pantalla y, a continuación, para bajar el archivo presionando el botón Download.


Elige una ubicación para guardar la copia de seguridad y presiona Save.

Restaurar
Fui hasta el Key Vault en la otra Subscription, nuevamente en Certificates y opté por Restore Backup.

Navegué hasta el lugar donde guardé el respaldo, seleccioné y hice clic en Open.

Error
Fue cuando recibí el error

An error occurred while restoring the certificate
Al revisar el error, obtuve un mensaje más claro de lo que ocurrió

This provided certificate backup file was from another subscription. Backups can only be restored into the same subscription.
Ya había realizado este proceso algunas veces, pero al parecer nunca entre Subscriptions.
Entonces, lo que aprendí aquí es que la restauración de la copia de seguridad de un certificado para un Key Vault solo puede ocurrir en otro Key Vault que esté en la misma Subscription.
Solución
En este caso, hay dos soluciones posibles:
Solución 1
Solicitar al cliente el certificado PFX y realizar una importación del certificado.
Dirígete a tu Azure Key Vault, Certificates y en Generate/Import.

En la pantalla de Create a certificate, elige en Method of Certificate Creation la opción de Import.

Luego, proporciona la información del certificado como Certificate Name, realiza la subida del certificado y coloca la contraseña del archivo PFX y presiona Salvar para completar el proceso.

Si todo sale bien, la información del certificado se mostrará, muy parecida al ejemplo a continuación.

Solución 2
Descargar el archivo PFX desde el certificado existente en el Key Vault y realizar la importación del certificado.
Dirígete al Key Vault donde se encuentra actualmente el certificado, Certificates, elige el certificado que quieres descargar y luego haz clic en la opción debajo de la Current Version.


Con el certificado abierto, haz clic en Download in PFX/PEM format y a continuación confirma la descarga y presiona Download.

Elige el lugar donde quieres guardar y presiona Save.

Luego, ve al Key Vault que está en la otra Subscription y repite el camino de la Solución 1 para importar el archivo PFX, pero con una información importante:
Cuando exportas el certificado (de un Key Vault), la contraseña queda en blanco
Es decir, al importar el PFX procedente de una exportación del Key Vault, basta con dejar el campo Password también en blanco.
Referencias:
- https://learn.microsoft.com/pt-br/azure/key-vault/certificates/how-to-export-certificate?tabs=azure-cli#export-stored-certificates
- https://learn.microsoft.com/pt-br/azure/key-vault/certificates/tutorial-import-certificate?tabs=azure-portal
- https://learn.microsoft.com/pt-br/azure/key-vault/certificates/how-to-export-certificate?tabs=azure-portal