python MySQLdb:在没有证书的情况下使用ssl

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python MySQLdb:在没有证书的情况下使用ssl相关的知识,希望对你有一定的参考价值。

我有一个在AWS上运行的mysql服务器,它需要通过SSL进行身份验证(但不需要用户证书)。

我尝试过的事情:

没有证书的连接可以通过SequelPro(GUI)正常运行:enter image description here

[当使用带有空ssl参数的mysqlconnector:'ssl_ca': ''时,也可以使用。但不幸的是,没有使用MySQLdb。

我尝试过(使用连接字符串)

1。

conn = sqlalchemy.create_engine(
    con_str,
    connect_args='ssl':'ca': '')
pd.read_sql_query('select id from mytable limit 1', conn)

2。

conn = sqlalchemy.create_engine(
    # the following is used to enforce mysqlconnector usage
    con_str.replace("mysql:", "mysql+mysqlconnector:"),
    connect_args='ssl_ca':'')
pd.read_sql_query('select id from mytable limit 1', conn)

第二个很好,第一个不行。当然,我也尝试使用裸连接器(MySQLdb.connect()mysql.connector.connect()),并且遇到了相同的行为,无法使MySQLdb正常工作。

问题:

您能给我一些关于如何在没有证书(和密钥)的情况下在MySQLdb中使用SSL的提示吗?

其他背景:

很遗憾,我们从另一家提供商切换到AWS,因此不再像以前和现在的SSL那样使用ssh。而且我不是在管理数据库,所以我不能使用用户证书来实现它,只是被迫在没有任何证书的情况下使用ssl。

一位同事解释说,从安全的角度来看这是可以的,因为服务器发送了证书。我们相信他是相应URL的那个人,因为我们信任CA。

答案

在您的情况下可能不起作用,但是我也想在pymysql中执行此操作,并且似乎通过任何关键操作传递了dict:

以上是关于python MySQLdb:在没有证书的情况下使用ssl的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在没有 BackgroundWorker 的情况下使 WinForms 响应? [关闭]

如何在没有固定高度的情况下使动态div溢出

在没有更多上下文的情况下使表达式类型模棱两可

在没有更多上下文的情况下使表达式类型模棱两可

如何在没有单击事件的情况下使特定的 TabItem 获得对 TabControl 的关注?

如何在没有合并提交或使用 CLI 的情况下使 GitHub 分叉保持最新?