Error al conectar a Azure SQL Server desde una aplicación ASP.Net Core (Blazor) dentro de un contenedor de Docker.
Estoy tratando de conectarme a una base de datos de Azure SQL Server desde mi aplicación Blazor que se ejecuta dentro de un contenedor Docker. Dado que tengo las configuraciones de la base de datos dentro de Azure Vault, estoy ejecutando Docker con parámetros de entorno (tenantId, clientId, clientSecret) y eso funciona bien. Cuando la aplicación intenta establecer la conexión con la base de datos, muestra el siguiente error:
—> Microsoft.Data.SqlClient.SqlException (0x80131904): La instancia de SQL Server a la que intentaste conectarte requiere cifrado, pero esta máquina no lo admite.
Esto solo ocurre si intento ejecutar la aplicación desde el contenedor, funciona correctamente cuando uso Azure, IIS o IIS Express.
Parece que otras personas han estado hablando de este problema desde hace algún tiempo, pero hasta ahora no he encontrado ninguna solución.
¿Puedes ayudarme, por favor?
¡Gracias!
davy.ai
Solución para conectar a una base de datos de Azure SQL Server desde una aplicación Blazor que se ejecuta dentro de un contenedor de Docker
El mensaje de error indica que la conexión al servidor SQL requiere cifrado, pero no está disponible en la máquina actual. Para resolver este problema, es necesario instalar los certificados SSL necesarios en la máquina que ejecuta el contenedor de Docker.
Aquí están los pasos a seguir:
Copie el certificado en la máquina host, donde se está ejecutando el contenedor de Docker. Puede utilizar un volumen de Docker o cualquier otro método para copiar el certificado en el host.
Dentro del contenedor de Docker, copie el certificado de la CA en el almacén de certificados confiables. Puede hacer esto ejecutando el siguiente comando:
Una vez que hayas instalado los certificados SSL, deberías poder conectarte a la base de datos de Azure SQL Server desde el contenedor de Docker sin ningún problema.