Error "El certificado recibido del servidor remoto lo emitió una entidad de certificación que no es de confianza" al conectarse a SQL Server

Este artículo le ayuda a resolver el problema que se produce al intentar establecer una conexión cifrada a SQL Server.

Versión del producto original: SQL Server
Número KB original: 2007728

Síntomas

Al conectarse a SQL Server, puede aparecer el mensaje de error siguiente:

La conexión con el servidor se ha establecido correctamente, pero se ha producido un error durante el proceso de inicio de sesión. (proveedor: Proveedor SSL, error: 0: La cadena de certificación fue emitida por una entidad que no es de confianza). (Proveedor de datos SqlClient de .NET)

Además, se registra el siguiente mensaje de error en el registro de eventos de Windows System.

Log Name:      System  
Source:        Schannel  
Date:          10/13/2020 3:03:31 PM  
Event ID:      36882  
Task Category: None  
Level:         Error  
Keywords:  
User:        USERNAME  
Computer:     COMPUTERNAME  
Description:  
The certificate received from the remote server was issued by an untrusted certificate authority. Because of this, none of the data contained in the certificate can be validated. The TLS connection request has failed. The attached data contains the server certificate.

Causa

Este error se produce al intentar establecer una conexión cifrada a SQL Server mediante un certificado no verificable. Esto puede suceder en los siguientes escenarios:

Escenario Cifrado del lado servidor Cifrado del lado cliente Tipo de certificado Entidad emisora de certificados presente en el almacén de Entidades de certificación raíz de confianza
1 No Aprovisione un certificado desde un origen no de confianza (la entidad emisora de certificados no aparece como una entidad de confianza en entidades de certificación raíz de confianza en el equipo cliente) No
2 Desactivada Certificado autogenerado de SQL Server Los certificados autofirmados no aparecen en este almacén.

Al establecer conexiones cifradas a SQL Server, Secure Channel (Schannel) crea la lista de entidades de certificación de confianza mediante la búsqueda en el almacén Entidades de certificación raíz de confianza en el equipo local. Durante el protocolo de enlace TLS, el servidor envía su certificado de clave pública al cliente. El emisor de un certificado de clave pública se conoce como entidad de certificación (CA). El cliente tiene que asegurarse de que la entidad de certificación es una en la que confía. Esto se logra conociendo la clave pública de las entidades de certificación de confianza de antemano. Cuando Schannel detecta un certificado emitido por una entidad de certificación que no es de confianza, como en los dos casos anteriores, aparece el mensaje de error en la sección Síntomas .

Solución

Si usa intencionadamente un certificado de una entidad de confianza o un certificado autofirmado para cifrar las conexiones a SQL Server, puede emplear una de las siguientes opciones:

En el escenario 1, agregue la entidad de certificación al almacén entidades de certificación raíz de confianza en el equipo cliente que inicia la conexión cifrada. Para ello, complete los procedimientos Exportar el certificado de servidor e Instalar la entidad de certificación raíz (CA) en los procedimientos del equipo cliente enumerados en las secciones siguientes de esa secuencia.

Exporte el certificado de servidor

En el ejemplo se usa un archivo denominado caCert.cer como archivo de certificado. Debe obtener este archivo de certificado del servidor. En los pasos siguientes se explica cómo exportar el certificado de servidor a un archivo:

  1. Haga clic en Inicio, en Ejecutar y escriba MMC. (MMC es un acrónimo de Microsoft Management Console).

  2. En MMC, abra los Certificados.

  3. Expanda Personal y luego Certificados.

  4. Haga clic con el botón derecho en el certificado del servidor y seleccione Todas las tareas->Exportación.

  5. Haga clic en Siguiente para pasar del cuadro de diálogo de bienvenida del Asistente para exportar certificados.

  6. Confirme que No, no exporte la clave privada seleccionada y, a continuación, seleccione Siguiente.

  7. Asegúrese de que el archivo binario X.509 codificado en DER (. CER) o X.509 codificado en Base 64 (. CER) está seleccionado y luego haga clic en Siguiente.

  8. Escriba un nombre de archivo de exportación.

  9. Haga clic en Siguiente y luego en Finalizar para exportar el certificado.

Instalación de la entidad de certificación raíz (CA) en el equipo cliente

  1. Inicie el complemento Certificados para MMC en el equipo cliente y agregue el complemento Certificados.

  2. En el cuadro de diálogo Complemento Certificados , seleccione Cuenta de equipo y, a continuación, seleccione Siguiente.

  3. En el panel Seleccionar equipo , seleccione Equipo local: (el equipo en el que se ejecuta esta consola) y, a continuación, seleccione Finalizar.

  4. Haga clic en Aceptar para cerrar el cuadro de diálogo Agregar o quitar complementos .

  5. En el panel izquierdo de MMC, expanda el nodo Certificados (equipo local).

  6. Expanda el nodo Entidades de certificación raíz de confianza , haga clic con el botón derecho en la subcarpeta Certificados , seleccione Todas las tareas y, a continuación, seleccione Importar.

  7. En el Asistente para importación de certificados, en la página principal, seleccione Siguiente.

  8. En la página Archivo que se va a importar , seleccione Examinar.

  9. Vaya a la ubicación del archivo de certificado de caCert.cer , seleccione el archivo y, a continuación, seleccione Abrir.

  10. En la página Archivo que se va a importar , seleccione Siguiente.

  11. En la página Almacén de certificados, acepte la selección predeterminada y, a continuación, seleccione Siguiente.

  12. En la página Finalización del Asistente para importación de certificados , seleccione Finalizar.

En los escenarios 1 y 2, establezca la opción Certificado de servidor de confianza en true en la aplicación cliente.

Para obtener más información sobre cómo hacerlo, consulte los temas siguientes:

Nota:

Si usa SQL Server Management Studio, seleccione la pestaña Opciones y seleccione la opción Certificado de servidor de confianza en la pestaña Propiedades de conexión.

Precaución: Las conexiones SSL cifradas mediante un certificado autofirmado no proporcionan una seguridad segura. Son susceptibles a man-in-the-middle ataques. No debe confiar en SSL mediante certificados autofirmados en un entorno de producción ni en servidores conectados a Internet.

Si la configuración descrita en las secciones anteriores de este artículo no es intencionada, puede usar una de las siguientes opciones para resolver este problema:

  • Configure el motor de base de datos para que use el cifrado según el procedimiento de la sección Habilitar conexiones de cifrado al motor de la base de datos.

  • Si el cifrado no es necesario:

    • Deshabilite la configuración de cifrado (si existe) en la aplicación cliente.

    • Deshabilite el cifrado del lado servidor mediante el Administrador de configuración de SQL Server. Para obtener más información sobre cómo hacerlo, vea Configurar servidor.