TLS y cifrado
Todas las conexiones a la base de datos están protegidas por cifrado TLS.
Comportamiento por modo
Sección titulada «Comportamiento por modo»Modo producción (DEVELOPER_MODE=false)
Sección titulada «Modo producción (DEVELOPER_MODE=false)»encrypt=true— Cifrado obligatoriotrustservercertificate=false— Requiere certificados válidos y de confianza- Errores genéricos sin información técnica
Modo desarrollo (DEVELOPER_MODE=true)
Sección titulada «Modo desarrollo (DEVELOPER_MODE=true)»encrypt=false— Cifrado desactivado para SQL Server localtrustservercertificate=true— Permite certificados autofirmados- Errores detallados para depuración
Forzar cifrado en desarrollo
Sección titulada «Forzar cifrado en desarrollo»Si necesitas cifrado en desarrollo:
MSSQL_ENCRYPT=trueDEVELOPER_MODE=trueEsto activa el cifrado pero permite certificados autofirmados.
Cadenas de conexión TLS
Sección titulada «Cadenas de conexión TLS»Producción (Azure SQL)
Sección titulada «Producción (Azure SQL)»server=prod.database.windows.net;database=ProdDB;encrypt=true;trustservercertificate=falseDesarrollo local
Sección titulada «Desarrollo local»server=localhost;database=DevDB;encrypt=false;trustservercertificate=trueDesarrollo con cifrado
Sección titulada «Desarrollo con cifrado»server=localhost;database=DevDB;encrypt=true;trustservercertificate=trueResolución de problemas TLS
Sección titulada «Resolución de problemas TLS»”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=truepara desactivar cifrado local
”TLS Handshake failed”
Sección titulada «”TLS Handshake failed”»- 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=falsejunto conDEVELOPER_MODE=true
DEVELOPER_MODE=trueMSSQL_ENCRYPT=falseEsto 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.