Skip to content

SSLError bad handshake #221

Open
Open

Description

@dbarrundia-tiger

Getting the following error when trying to connect to our warehouse:

from databricks import sql
your_token = '<token>'

connection = sql.connect(
  server_hostname="<>cloud.databricks.com",
  http_path="/sql/1.0/warehouses/<>",
  access_token=your_token
)

MaxRetryError: HTTPSConnectionPool(host='<>.cloud.databricks.com', port=443): Max retries exceeded with url: /sql/1.0/warehouses/<> (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))

We have tried:

connection = sql.connect(
  server_hostname="<>.cloud.databricks.com",
  http_path="/sql/1.0/warehouses/<>",
  access_token=your_token,
  _tls_no_verify=True)

and

connection = sql.connect(
  server_hostname="<>.cloud.databricks.com",
  http_path="/sql/1.0/warehouses/<>",
  access_token=your_token,
  _enable_ssl=False)

Activity

  1. sokojh commented on Sep 18, 2023

    @sokojh

    Can you tell what environment your Python script is running in?

    If it's running on mac local, then you're experiencing the same environment problem as me.

    Luckily, I was able to resolve this issue.

    Cause:
    Apparently python installed on a local mac sometimes doesn't come with an SSL certificate (I'm not sure).
    Solution:
    Go to your MAC terminal
    /Applications/Python\ {local python version e.g: 3.11}/Install\ Certificates.command
    Enter the command and wait for it to install.
    Then try running the script again, it works!

  2. susodapop commented on Sep 18, 2023

    @susodapop
    Contributor

    Ditto @sokojh's comment. Depending on how you installed python on your mac, you can also find the Install Certificates.command within the Python 3.x directory in your /Applications folder.

  3. dbarrundia-tiger commented on Sep 20, 2023

    @dbarrundia-tiger
    ContributorAuthor

    Thanks @susodapop this is not on a Mac unfortunately, it's on a Windows machine. Any ideas on what to do with that? Thanks so much!

  4. dbarrundia-tiger commented on Sep 20, 2023

    @dbarrundia-tiger
    ContributorAuthor

    @susodapop also wouldn't _tls_no_verify and _enable_ssl help us here?

  5. kravets-levko commented on Oct 2, 2024

    @kravets-levko
    Contributor

    @dbarrundia-tiger Were you able to figure out your issue? _tls_no_verify would just disable cert verification, so use it carefully (e.g. I wouldn't recommend to use it in production). Also plese note that due to bug, _tls_no_verify was ignored in some cases, so please try latest version of the library if it seems to be your case.

  6. deeksha-db commented on Feb 27, 2025

    @deeksha-db

    @dbarrundia-tiger Can you confirm if this is resolved on your side? This doesn't seem to be an issue with the connector?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions