【发布时间】:2020-11-07 21:51:38
【问题描述】:
我正在尝试连接到启用 SSL 的 MariaDB。 在我的旧安装(Kubuntu 19.10)上,这有效。 使用新安装(也是新 PC:Xubuntu 20.04)我收到以下错误消息:
ssl.SSLError: [SSL: UNSUPPORTED_PROTOCOL] 不支持的协议 (_ssl.c:1108)
这是我的安装细节:
旧安装:python 3.7.5、pymysql 0.9.3、ssl.OPENSSL_VERSION = 1.1.1c 2019 年 5 月 28 日
全新安装:python 3.8.2、pymysql 0.9.3、ssl.OPENSSL_VERSION = 1.1.1f 2020 年 3 月 31 日
我已经在我的新 PC 上编译了 python 3.7.5 -> 我仍然收到错误消息。
我用不同的 SSL 版本编译了 python:
这有效:python 3.7.5,ssl.OPENSSL_VERSION = OpenSSL 1.1.0m-dev xx XXX xxxx
这有效:python 3.7.5,ssl.OPENSSL_VERSION = OpenSSL 1.1.1h-dev xx XXX xxxx
这有效:python 3.8.2,ssl.OPENSSL_VERSION = OpenSSL 1.1.1h-dev xx XXX xxxx
这是我的测试脚本:
import os
import pymysql
#pymysql.connections.DEBUG = True
#pymysql._auth.DEBUG = True
host = "127.0.0.1"
port = 3306
ca = os.path.expanduser("~/ca-cert.pem")
ssl = {'ca': ca, 'check_hostname': False}
user = 'user'
passwd = 'passwd'
def test_ssl():
con = pymysql.connect(user=user, password=passwd, host=host, port=port, ssl=ssl)
con.close()
test_ssl()
我这样创建的 ca-cert:
openssl genrsa 2048 > ca-key.pem
openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca-cert.pem
似乎 openSSL 的一个特定版本不能与 PyMySQL 一起使用。 Xubuntu 编译可能有错误。或者它可能是特定版本(1.1.1f)。但我不知道,如何自己编译这个版本。
【问题讨论】:
标签: openssl pymysql ubuntu-20.04