当前位置: 首页 > 知识库问答 >
问题:

python请求SSL错误(证书验证失败)

白灿
2023-03-14
import json
import requests

cert = ("/home/tests/certs/client.crt",
        "/home/tests/certs/client.key")


class TestCart():

    def test_cart(self, **kwargs):
        url = "https://192.168.X.Y/cart"
        cart_data = {
            'id': kwargs.get('id'),
            'items': kwargs.get('items')
        }
        req_data = json.dumps(cart_data)
        resp = requests.post(url,
                             data=req_data,
                             verify="/home/certs/ca.cert",
                             cert=cert)
        print resp.text


if __name__ == '__main__':
    t_cart = TestCart()
    data = {'id': 'ba396e79-0f0f-4952-a931-5a528c9ff72c', 'items': []}
    t_cart.test_cart(**data)
requests.exceptions.SSLError: HTTPSConnectionPool(host='192.168.X.Y', 
port=443): Max retries exceeded with url: /cart (Caused by 
SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify 
failed (_ssl.c:590)'),))

共有1个答案

宰父嘉胜
2023-03-14

强烈建议更深入地查看请求的优秀文档。它有一个关于SSL证书验证的专门章节解释:

您可以通过验证CA_BUNDLE文件或具有受信任CA证书的目录的路径:

>>> requests.get('https://github.com', verify='/path/to/certfile')

假设您的服务器证书是由ca.crt签名的,您应该将其用于verify参数。

 类似资料:
  • 问题内容: 这段代码 给我这个错误 我对SSL几乎一无所知,但我曾尝试下载该站点的证书并使用该选项指向该文件,但是它没有用。我想念什么吗? 问题答案: 正如评论中已经指出的那样:从SSLLabs报告中可以看出,该网站的SSL实施不正确。该报告中有关您的问题的主要部分是: 该服务器的证书链不完整。等级上限为B。 这意味着服务器没有发送验证证书所需的完整证书链。这意味着您需要在验证时自行添加丢失的证书

  • 误差 PHP警告:stream_socket_client():SSL操作失败,代码为1。OpenSSL错误消息:错误:14090086:SSL例程:SSL3_GET_Server_Certifice:证书验证失败

  • 问题内容: 在Windows Vista SP2 + Python 2.7.10上,我可以连接到https://www.python.org,但不能连接到https://codereview.appspot.com 剧本: 并输出: 如何解决问题,https://codereview.appspot.com/到底有什么问题? 问题答案: 我的猜测是,它与OpenSSL中的替代链处理有关,如Pyth

  • 当我想要在cPanel上安装证书时,我会看到以下错误: 错误证书验证失败! 已执行/usr/bin/openssl verify-capath/var/cpanel/ssl/installed/cabundles: stdin:CN=example.com 0深度查找时错误20:无法获取本地颁发者证书

  • 问题内容: 我陷入了持续的SSL验证问题。 SSL:CERTIFICATE_VERIFY_FAILED 我在构建让用户使用Mozilla Persona进行身份验证的Django应用程序时发现了错误。 我得到一个追溯从到到: python3和python2之间的区别 这就是它开始变得有趣的地方:使用python2.7时,我没有遇到相同的问题: 我的第一个想法是这两个版本的证书可能使用不同的证书[1

  • 我使用Let's encrypt free SSL(默认情况下,我的主机提供商支持它),我检查了我在SSLShopper.com的网站(唯一的警告是:)和https://www.geocerts.com/SSL_checker。结果是我的网站通过了所有测试,除了。所以我不认为问题出在证书上,据我所知,telegram接受自签名证书。 我曾尝试在https://core.telegram.org/b