es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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!

Tags:  , , , ,

Answer

  1. Avatar for 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:

    1. Primero, descargue el certificado de la CA raíz desde el portal de Azure. Vaya al servidor SQL, seleccione “Configuración de SSL” en el menú de la izquierda y descargue el certificado de la CA raíz.
    2. 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.

    3. 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:

      cp ca.pem /usr/local/share/ca-certificates/
      update-ca-certificates
      

    4. Reinicie el contenedor para cargar los nuevos certificados.

    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.

Comments are closed.