Compartir a través de


Error "La cadena de certificados fue emitida por una autoridad que no es de confianza" después de actualizar las aplicaciones SNAC

La compatibilidad con SQL Server Native Client 11.0 (SNAC) como controlador para las aplicaciones de base de datos finalizó el 12 de julio de 2022. Todas las aplicaciones que usen SNAC 11.0 deben actualizarse para usar versiones más recientes de los controladores (vea Descargar odbc Driver for SQL Server y Descargar Microsoft OLE DB Driver for SQL Server). En este artículo se describe un problema que se produce al actualizar la aplicación SNAC 11.0 para usar Microsoft OLE DB Driver 19 para SQL Server o Microsoft ODBC Driver 18.x para SQL Server.

Si ha actualizado recientemente la aplicación SQL Server Native Client 11.0 (Provider=SQLNCLI11) para usar Microsoft OLE DB Driver 19 for SQL Server (Provider=MSOLEDBSQL19), puede recibir mensajes de error similares a los siguientes mensajes:

[Microsoft OLE DB Driver 19 for SQL Server]: El cliente no puede establecer la conexión

[Microsoft OLE DB Driver 19 for SQL Server]: Proveedor SSL: la cadena de certificados fue emitida por una autoridad que no es de confianza.

Causa

Estos errores se producen si se cumplen las dos condiciones siguientes:

  • La opción Forzar cifrado para la instancia de SQL Server se establece en No.

  • El cliente cadena de conexión no especifica explícitamente un valor para la propiedad de cifrado o la opción Cifrado no se estableció ni actualizó explícitamente en el DSN.

El error se produce debido a un cambio en el comportamiento predeterminado de los controladores de cliente. Las versiones anteriores de los controladores de cliente están diseñadas para suponer que el cifrado de datos está desactivado de forma predeterminada. Los nuevos controladores asumen que esta configuración está activada de forma predeterminada. Dado que el cifrado de datos se establece en ON, el controlador intenta validar el certificado del servidor y produce un error.

Soluciones

  • Solución 1: Use Microsoft OLE DB Driver for SQL Server 18.x. Puede descargar el controlador de las notas de la versión de Microsoft OLE DB Driver for SQL Server.

  • Solución 2: Si la aplicación cadena de conexión propiedad ya especifica un valor de o Obligatorio para la configuración Cifrar/Usar cifrado para datos, cambie el valor a No o Opcional. Por ejemplo, Usar el cifrado para los datos=Opcional. Si el cadena de conexión no especifica ningún valor para Cifrar/usar cifrado para datos, agregue Use Encryption for Data=Optional (Usar cifrado para datos=opcional) a la cadena de conexión. Para obtener más información, vea Cifrado y validación de certificados.

  • Solución 3: Agregue ;TrustServerCertificate=true al cadena de conexión. Esto obligará al cliente a confiar en el certificado sin validación.

  • Nota:

    Actualmente, MSOLEDBSQL19 impide la creación de servidores vinculados sin cifrado y un certificado de confianza (no es suficiente un certificado autofirmado). Si se requieren servidores vinculados, use la versión compatible existente de MSOLEDBSQL.

Consulte también