Python SSL CERTIFICATE_VERIFY_FAILED

Python SSL CERTIFICATE_VERIFY_FAILED

我正在使用以下代码通过 XMLRPC api 与 Magento 网上商店进行交互。 Magento API Python XMLRPC

一切正常,直到我们将 Web 服务器更改为 SSL

现在我收到以下错误。

ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:581)

我不确定为什么证书会失败,因为我们有 EV 证书并且所有浏览器都显示正常。

我的连接字符串是:

我该如何解决这个问题/覆盖代码

我是 Python 的新手,所以请放轻松 :o)

magento = MagentoAPI("www.website.co.uk", 443, "myUsername", "myPassword", "/api/xmlrpc", True)

Python,或者更好的是它使用的OpenSSL库,无法验证服务器证书的有效性。可能的原因有很多:配置错误、缺少中间证书或 CA 证书、CN 错误...

第一步可能是访问此站点并让它测试服务器的 SSL/TLS 功能:https://www.ssllabs.com/ssltest/

它还会为您提供解决问题的提示。

Python 通过它自己的包验证证书,通过

检查它所在的位置
>>> import certifi
>>> certifi.where()
'/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site- 
packages/certifi/cacert.pem'

并将您的证书添加到该文件的末尾。