【问题标题】:SSL connection error: SSL certificate validation failure (2026) (SQLDriverConnect) pyodbc?SSL 连接错误:SSL 证书验证失败 (2026) (SQLDriverConnect) pyodbc?
【发布时间】:2018-12-18 14:24:05
【问题描述】:

我正在尝试连接到 Azure MySQL 数据库服务。我正在使用

pyodbc==3.0.3

python 2.7

我的连接字符串如下所示

connection_string = "DRIVER={MySQL};SERVER={server_name}.mysql.database.azure.com;PORT=3306;DATABASE" \
                        "={my_database_name};UID={username@server_name};PWD={password};CHARSET=UTF8;" \
                      "sslca=/home/sachin/BaltimoreCyberTrustRoot.crt.pem;sslverify=1"
cnxn = pyodbc.connect(connection_string)

但相同的配置适用于 mymysql.connector 工作正常。

import mysql.connector

cnx = mysql.connector.connect(user="{username@servername}", password="{password}",
                              host="{server_name}.mysql.database.azure.com",
                              port=3306, database="{database_name}", ssl_ca="/home/sachin//root.crt",
                              ssl_verify_cert=True)
cnx.cursor()

我现在不能使用 mysql.connector。所以如果有人遇到过这个问题,需要一些建议。

【问题讨论】:

    标签: python-2.7 ssl pyodbc


    【解决方案1】:

    我遇到了同样的问题,并通过将sslverify=1 设置为sslverify=0 来解决它。

    例如对于 Azure:

    ;sslca={BaltimoreCyberTrustRoot.crt.pem}; sslverify=0; Option=3;'
    

    【讨论】:

    • 请注意,这会禁用证书验证,这可能会降低系统的安全性。禁用验证只会隐藏问题;它没有解决它。该问题的解决方案是正确配置您的 TLS 证书并使用包含服务器证书的客户端本地信任库。
    猜你喜欢
    • 2019-09-08
    • 2015-06-05
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 2018-06-07
    相关资源
    最近更新 更多