aioodbc连接SQL Server报自签名证书验证失败如何关闭SSL校验
问题原因
ODBC Driver 18 for SQL Server 版本默认启用TLS连接加密,且默认校验服务端证书合法性。连接串中配置TrustServerCertificate=no时,驱动会强制校验服务端证书可信度,若连接的SQL Server实例使用自签名证书,且证书不在操作系统信任证书列表中,就会触发证书校验失败的报错。
修复方案
修改DSN连接串中的TrustServerCertificate参数值为yes,即可跳过服务端SSL证书校验流程,成功建立连接。
修正后的可运行代码:
import aioodbc from functools import partial dsn = 'Driver=ODBC Driver 18 for SQL Server;Server=my_adress;Database=ML;UID=123;PWD=123;TrustServerCertificate=yes' connect = partial(aioodbc.connect, dsn=dsn, echo=True, autocommit=True)
注意事项
TrustServerCertificate=yes的配置仅建议在内部测试环境、可信内网环境使用- 公网生产环境建议为SQL Server部署受信任的正规CA签发证书,保留
TrustServerCertificate=no的严格校验逻辑,防范中间人攻击风险
内容的提问来源于stack exchange,提问作者Alex Nikitin
相关产品推荐
相关产品推荐

