Problem
When trying to connect to Databricks from Tableau, you receive an error.
Error: Unexpected response from server during an HTTP connection: SSL_connect: certificate verify failed.
Error code: B19090E0
The following image shows an example of the error in the UI.
Cause
Intermediate certificates from sources such as corporate root certificates, VPNs, proxy servers, or firewalls are not automatically picked up.
Solution
Manually add intermediate certificates to the root certificates file in order to be recognized by the ODBC driver.
Important
Before proceeding, confirm with your organization’s infrastructure team whether the certificates belong to your infrastructure. They may relate to firewalls, VPNs, proxy servers, and so on.
On the machine where you are running Tableau Desktop, open the Databricks workspace in a new tab and locate the certificate chain. Export all intermediate certificates and append content from all the generated files to the cacerts.pem
file.
The following image is an example of the certificate viewer in the UI.
Alternatively, you can run the following command to export the certificates and append the content.
openssl s_client -showcerts -connect <your-databricks-host>:443 </dev/null 2>/dev/null | openssl x509 -outform PEM > databricks_cert_chain.pem
The generated databricks_cert_chain.pem
file will now contain the intermediate certificates.
Once the certificates are verified, copy the contents of databricks_cert_chain.pem
to the ODBC driver cacerts.pem
file. The following list shows the paths to the ODBC driver cacerts.pem
file in Linux, MacOS, and Windows.
- Linux -
/opt/simba/spark/lib/cacerts.pem
- MacOS -
/Library/simba/spark/lib/cacerts.pem
- Windows -
C:\Program Files\Simba Spark ODBC Driver\lib\cacerts.pem
If the issue still persists, set AllowDetailedSSLErrorMessages=1
and EnableCurlDebugLogging=1
in the microsoft.sparkodbc.ini
file to obtain more detailed SSL debugging logs.