Ir al contenido

TLS y cifrado

Todas las conexiones a la base de datos están protegidas por cifrado TLS.

  • encrypt=true — Cifrado obligatorio
  • trustservercertificate=false — Requiere certificados válidos y de confianza
  • Errores genéricos sin información técnica
  • encrypt=false — Cifrado desactivado para SQL Server local
  • trustservercertificate=true — Permite certificados autofirmados
  • Errores detallados para depuración

Si necesitas cifrado en desarrollo:

Ventana de terminal
MSSQL_ENCRYPT=true
DEVELOPER_MODE=true

Esto activa el cifrado pero permite certificados autofirmados.

server=prod.database.windows.net;database=ProdDB;encrypt=true;trustservercertificate=false
server=localhost;database=DevDB;encrypt=false;trustservercertificate=true
server=localhost;database=DevDB;encrypt=true;trustservercertificate=true

”certificate signed by unknown authority”

Sección titulada «”certificate signed by unknown authority”»
  • Causa: Certificado autofirmado o CA no reconocida
  • Desarrollo: Establecer DEVELOPER_MODE=true
  • Producción: Instalar certificados SSL válidos en SQL Server

”SSL Provider: No credentials are available”

Sección titulada «”SSL Provider: No credentials are available”»
  • Causa: SQL Server local sin configuración TLS
  • Solución: Establecer DEVELOPER_MODE=true para desactivar cifrado local
  • Causa: SQL Server legacy (2008/2012) no soporta TLS 1.2, que es el mínimo requerido por el driver Go
  • Solución: Configurar MSSQL_ENCRYPT=false junto con DEVELOPER_MODE=true
Ventana de terminal
DEVELOPER_MODE=true
MSSQL_ENCRYPT=false

Esto desactiva TLS en la conexión. Solo usar para servidores legacy que no pueden actualizarse. Para SQL Server 2016+ y Azure SQL, mantener cifrado activado.