Default TLS Certificate Validation Enabled for Import/Export Queries
Details
| Detail name | Value |
|---|---|
| Changelog Number | 25090 |
| Type | Improvement |
| Status | Resolved |
| Fix Versions | Exasol 2025.1.0 |
| Resolution Date | 2025-07-08 |
Background
Previously, the default behavior of the database was to have TLS certificate validation deactivated for IMPORT and EXPORT queries, leaving connections potentially vulnerable to security risks like man-in-the-middle attacks. Users needed to explicitly enable TLS certificate validation using custom parameters or SQL syntax.
Behavior Update
- TLS Certificate Validation is now activated by default for IMPORT and EXPORT queries, ensuring secure data transfers by validating certificates for external file connections like HTTPS and FTPS.
Manual Control
- To deactivate TLS certificate validation manually:
- Use the database parameter -etlCheckCertsDefault=0. This restores the previous behavior of no certificate validation for external connections.
- Use the IGNORE CERTIFICATE / PUBLIC KEY on SQL query to deactivate certificate validation for the query.
Error Handling
- If TLS certificate validation fails (e.g. missing or untrusted certificate files), users will encounter an error similar to:
SSL certificate problem: unable to get local issuer certificate
Public Key Bypass
- Users can bypass certificate validation by providing a public key explicitly via SQL syntax. This allows more granular control while ensuring secure connections:
IMPORT INTO Test.DB FROM CSV AT 'https://localhost:8511/' PUBLIC KEY 'sha256//<key>' FILE 'Test.csv';
Impact
- Security Improvement: Enhanced default security for external file connections.
- Backward Compatibility: This change results in a behavior shift for deployments relying on TLS certificate validation being deactivated by default. Existing queries without validated certificates may fail and require updates.
Examples
Disable Certificate Validation:
IMPORT INTO Test.DB FROM CSV AT 'https://localhost:8511/' IGNORE CERTIFICATE FILE 'Test.csv';
Provide Public Key for Certificate Validation:
IMPORT INTO Test.DB FROM CSV AT 'https://localhost:8511/' PUBLIC KEY 'sha256//<key>' FILE 'Test.csv';
Changed behavior
Previous Behavior
Default Setting: TLS certificate validation was deactivated by default for external file connections (HTTPS, FTPS) in IMPORT and EXPORT queries.
Action Required: Users had to manually activate certificate validation via database parameters (-etlCheckCertsDefault=1) or SQL syntax (VERIFY CERTIFICATE) to secure connections.
New Behavior
Default Setting: TLS certificate validation is now activated by default for external file connections like HTTPS and FTPS across all IMPORT and EXPORT queries.
Action Required: Users had to manually deactivate certificate validation via database parameters (-etlCheckCertsDefault=0) or SQL syntax (IGNORE CERTIFICATE).
Error Handling: Connections without valid TLS certificates will fail with errors such as:
SSL certificate problem: unable to get local issuer certificate
Public Key Priority: Providing a public key via SQL syntax (PUBLIC KEY 'sha256//<key>') will override other certificate validation settings and enable explicit validation.