Technical Anshu Inicio › Tutoriales › Error de cifrado de SQL Server
🔐 Solución de servidor SQL

Solucionar el error de cifrado de SQL Server: solución con un solo clic

SQL Server se conecta y luego rechaza el inicio de sesión porque no puede confiar en el certificado del servidor. Esto no es un problema de red y sus datos no se han perdido, es un problema de confianza. Resuelva las correcciones en el orden en que las muestra el video: la opción rápida del lado del cliente, el mismo interruptor dentro de la cadena de conexión de una aplicación y la corrección adecuada en el servidor mismo.

✍️ Technical Anshu🔐 SQL Server🎧 Multi-Language Audio
Solucionar el error de cifrado de SQL Server: solución con un solo clic
🎧 Audio multilingüe: En el reproductor de video, haz clic en [Configuración] (⚙️) ➔ [Pista de audio] para elegir tu idioma.

📑Capítulos

  1. Error de inicio de sesión: "La cadena de certificados fue emitida por una autoridad que no es de confianza"
  2. Lo que realmente significa el error: se exige cifrado, el certificado del servidor no puede probar su identidad
  3. La solución rápida para el cliente: certificado de servidor de confianza en la ventana de conexión de SSMS
  4. La misma solución dentro de una cadena de conexión de aplicación
  5. La solución adecuada: proporcione al servidor un certificado real en el que los clientes confíen por sí solos
  6. Verificando la solución: vuelva a conectarse de forma estricta y demuestre que el cifrado está realmente activado

📋 Descripción general y guía paso a paso

1

Lea el error: es un problema de confianza, no un problema de red

Su red está bien y el servidor está funcionando. La conexión llegó a SQL Server, el servidor ofreció un canal cifrado para iniciar sesión y su PC lo rechazó porque el certificado que prueba la identidad del servidor no está firmado por nadie en quien su PC confíe. El error completo que muestra SSMS es:

📌 El error, exactamente como lo muestra SSMS: "Se estableció exitosamente una conexión con el servidor, pero luego ocurrió un error durante el proceso de inicio de sesión. (proveedor: Proveedor SSL, error: 0 - La cadena de certificados fue emitida por una autoridad que no es confiable)".

De forma predeterminada, SQL Server protege el inicio de sesión con un certificado autofirmado que crea él mismo. Un certificado autofirmado cifra el tráfico, pero no puede probar que el servidor sea realmente el suyo, por lo que los clientes que exigen cifrado verificado lo rechazan. Cada solución honesta es una de dos cosas: hacer que el cliente acepte este servidor en particular con conocimiento (Pasos 2 y 3), o darle al servidor un certificado en el que los clientes confíen por sí mismos (Paso 4).

2

La solución rápida del cliente en SSMS: certificado de servidor de confianza

Esta es la ruta rápida que se muestra en el vídeo. No cambia nada en el servidor; le dice a esta conexión que acepte el certificado del servidor sin verificar quién lo firmó. En la ventana SSMS Conectar al servidor, haga clic en Opciones para abrir las pestañas adicionales, vaya a la pestaña Propiedades de conexión, establezca el cifrado en Obligatorio (o déjelo como se ofrece), marque Certificado de servidor de confianza y haga clic en Conectar. El inicio de sesión se realiza de inmediato.

⚠️ Sepa qué desactiva la casilla de verificación: el tráfico permanece cifrado, pero se omite la verificación de identidad; el cliente también aceptaría un servidor falso colocado en el medio. En la LAN de su propia oficina, para un servidor que usted controle, esta es la solución alternativa aceptada en el día a día, y en máquinas de desarrollo y prueba es un trato justo. A través de Internet, o en un servidor de producción que contenga datos del cliente, trátelos solo como un puente temporal y finalice el trabajo con el Paso 4. Es un puente, no el destino.
3

La misma solución dentro de la cadena de conexión de una aplicación

Si falla una aplicación en lugar de SSMS, el mismo conmutador reside en su cadena de conexión. Agregue las dos configuraciones explícitamente: Encrypt=True activa el canal protegido y TrustServerCertificate=True es la ortografía de la cadena de conexión de la casilla de verificación SSMS:

Connection String
Server=SQL01;Database=AppDB;User Id=appuser;Password=YourPassword;Encrypt=True;TrustServerCertificate=True;

Utilice su propio nombre de servidor, base de datos e inicio de sesión en lugar de los valores de ejemplo. La compensación es exactamente la misma que la casilla de verificación en el Paso 2, con un peligro adicional: incorporada en la configuración de una aplicación enviada, la verificación omitida se aplica a todos los usuarios, de manera invisible y permanente. Manténgalo en las configuraciones de desarrollo y ensayo, y en producción trátelo como tiempo prestado hasta que el certificado de servidor del Paso 4 esté implementado.

📌 Por qué las aplicaciones fallaron sin ser reconstruidas: los controladores recientes cambiaron sus valores predeterminados: Microsoft.Data.SqlClient 5.1 y versiones posteriores, y el controlador ODBC 18 activó Encrypt de forma predeterminada. Las cadenas de conexión que nunca mencionaron el cifrado comenzaron a exigirlo, contra servidores cuyos certificados autofirmados no pueden pasar la validación. Nada sobre su base de datos cambió; el contrato dentro de la cuerda lo hizo. Escribir la configuración explícitamente significa que la próxima actualización del controlador no puede cambiar el comportamiento de su aplicación a sus espaldas.
4

La solución adecuada: proporcione al servidor un certificado real

La reparación permanente ocurre una vez, en el servidor, y luego cada cliente se conecta estrictamente sin casillas de verificación ni advertencias. Primero obtenga un certificado para el nombre DNS completo del servidor (por ejemplo, sql01.company.local) de su autoridad certificadora interna o de una CA pública, con uso de Autenticación del servidor. Impórtelo, con su clave privada, al almacén de certificados del Equipo local en la máquina de SQL Server. Luego haga clic derecho en el certificado, elija Todas las tareas → Administrar claves privadas y otorgue a la cuenta de servicio de SQL Server permiso de Lectura sobre la clave privada. Abra el Administrador de configuración de SQL Server, expanda Configuración de red de SQL Server, haga clic con el botón derecho en Protocolos para MSSQLSERVER, elija Propiedades y seleccione el certificado en la pestaña Certificado. En la pestaña Flags también puede configurar ForceEncryption en Sí para que cada cliente deba cifrar. Reinicie el servicio SQL Server; el cambio no hace nada hasta que usted lo haga.

✅ Las dos trampas que causan casi todos los "no funcionó": un certificado cuyo nombre no coincide con el nombre por el que se conectan los clientes (se conectan por el nombre DNS del servidor, no por su dirección IP) y una cuenta de servicio que no puede leer la clave privada. Después del reinicio, el registro de errores de SQL Server debe registrar que el certificado se cargó exitosamente para el cifrado; si en cambio se queja, el permiso de clave privada es el primer lugar donde buscar.
⚠️ Acerca de ForceEncryption: configurarlo en Sí en el servidor fuerza el cifrado para cada conexión, que es el estado final correcto solo una vez que se instala un certificado confiable. Forzarlo mientras el servidor aún lleva su certificado autofirmado simplemente hace que todos los clientes estrictos fallen con el mismo error, todos a la vez.
5

Verifique la solución de forma estricta

Un inicio de sesión exitoso resulta ser menos de lo que la gente piensa, porque algunas combinaciones de configuraciones se conectan sin una protección real. Demuestre ambas mitades. Primero, vuelva a conectarse desde un cliente de manera estricta: conéctese usando el nombre DNS del servidor (el nombre dentro del certificado), configure el cifrado en Obligatorio y deje Certificado de servidor de confianza sin marcar. El inicio de sesión debería realizarse correctamente sin previo aviso. Luego, en esa misma sesión, pregunte al servidor si la conexión está realmente cifrada ejecutando esta consulta en SSMS:

SQL Query
SELECT session_id, encrypt_option, auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@SPID;

encrypt_option que muestra TRUE es la calificación aprobatoria. FALSO con un inicio de sesión funcional significa que la conexión se realizó correctamente al eliminar la protección y el trabajo no se realizó. Esa prueba de aprobación es la verdadera meta: cualquier cliente configurado correctamente, incluidas las versiones futuras de SSMS, ahora se conecta con una validación completa y sin configuraciones especiales.

🏷️Variables y palabras clave de búsqueda de temas

🔍 SQLServer 🔍 CertificateNotTrusted 🔍 TrustServerCertificate 🔍 SSMS 🔍 ForceEncryption 🔍 TechnicalAnshu 🔍 SQL Server Encryption Error 🔍 Certificate Chain Not Trusted 🔍 Encrypt Connection 🔍 Connection String Fix 🔍 SQL Server Configuration Manager 🔍 SSL Provider Error
🎙️ Transcripción completa: toque para ampliar

__TOK_24__

__TOK_25__

__TOK_26__

❓ Preguntas frecuentes

¿Este tutorial es 100% gratuito?

__TOK_27__

¿Pueden los principiantes seguir esta guía?

__TOK_28__

¿Dónde puedo hacer preguntas si me quedo atascado?

__TOK_29__

🚀 Mira el tutorial completo en YouTube

__TOK_30__

__TOK_31__

▶️ Ver vídeo completo
Este tutorial se basa en el vídeo Reparar error de cifrado de SQL Server de Technical Anshu • ¿Atascado en algún paso? Pregunte en los comentarios del video: allí recibirá ayuda 🙏