【问题标题】:Python SSL CERTIFICATE_VERIFY_FAILEDPython SSL CERTIFICATE_VERIFY_FAILED
【发布时间】:2015-05-05 16:30:41
【问题描述】:

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

在我们将网络服务器更改为 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 magento ssl


    【解决方案1】:

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

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

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

    【讨论】:

    • 嗨,谢谢,太好了。我认为我们从负载均衡器更改为执行 SSL 的 Nginx 导致了问题,因为不正确的中间证书已上传为 SHA1,而它应该是 SHA2
    【解决方案2】:

    Python 通过自己的包验证证书,检查它的位置

    >>> import certifi
    >>> certifi.where()
    '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site- 
    packages/certifi/cacert.pem'
    

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

    【讨论】:

      猜你喜欢
      • 2020-12-07
      • 2019-09-30
      • 2015-04-01
      • 2015-12-22
      • 1970-01-01
      • 2021-02-22
      • 1970-01-01
      • 2022-01-18
      • 2018-08-17
      相关资源
      最近更新 更多