Error "La cadena de certificados la emitió una autoridad que no es de confianza" después de actualizar las aplicaciones SNAC
La compatibilidad con la SQL Server Native Client 11.0 (SNAC) como controlador para las aplicaciones de base de datos finalizó el 12 de julio de 2022. Las aplicaciones que usan SNAC 11.0 deben actualizarse para usar versiones más recientes de los controladores (consulte Descargar controlador ODBC para 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 que use Microsoft OLE DB Driver 19 para SQL Server o Microsoft ODBC Driver 18.x para SQL Server.
- Actualizado a Microsoft OLE DB Driver 19 para SQL Server
- Actualizado a Microsoft ODBC Driver 18. x para SQL Server
Si recientemente actualizó la aplicación SQL Server Native Client 11.0 (Provider=SQLNCLI11) para usar Microsoft OLE DB Driver 19 para SQL Server (Provider=MSOLEDBSQL19), es posible que reciba 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 la emitió una autoridad que no es de confianza.
Causa
Estos errores se producen si se cumplen las condiciones siguientes:
La opción Forzar cifrado para la instancia de SQL Server está establecida 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 está establecido 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 la Microsoft OLE DB Driver for SQL Server.
Solución 2: Si la aplicación cadena de conexión propiedad ya especifica un valor de Sí o Obligatorio para la configuración Cifrar o usar cifrado para datos, cambie el valor a No u Opcional. Por ejemplo, Use Encryption for Data=Optional. Si el cadena de conexión no especifica ningún valor para Cifrar o usar cifrado para datos, agregue Usar cifrado para datos=Opcional al cadena de conexión. Para obtener más información, consulte 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 (un certificado autofirmado no es suficiente). Si se requieren servidores vinculados, use la versión compatible existente de MSOLEDBSQL.