使用pyodbc连接MSSQL遇SSL证书验证失败,如何跳过证书检查?
解决pyodbc连接MSSQL时SSL证书验证失败的问题
问题原因
你遇到的certificate verify failed:EE certificate key too weak错误,是因为ODBC Driver 18 for SQL Server默认启用强制加密,而服务器的SSL证书密钥强度不符合当前安全标准,导致验证不通过。
解决方法
在连接字符串中添加TrustServerCertificate=yes参数,即可跳过SSL证书验证步骤。修改后的代码如下:
try: conn_str = f'DRIVER={{ODBC Driver 18 for SQL Server}};SERVER={self._server};DATABASE={self._database};UID={self._username};PWD={self._password};TrustServerCertificate=yes' conn = pyodbc.connect(conn_str) cursor = conn.cursor() return cursor except pyodbc.Error as err: print('pyodbc error') print(str(err))
注意事项
TrustServerCertificate=yes仅适合开发测试环境或内部可信网络,它会让客户端直接信任服务器返回的证书,忽略其签发机构合法性、密钥强度等问题。生产环境建议更换符合安全标准的SSL证书,而非跳过验证。
内容的提问来源于stack exchange,提问作者cwhisperer
相关产品推荐
相关产品推荐

