向外部服务器发出POST请求时SSL证书错误

问题描述 投票:0回答:1

我正在尝试使用请求库向https://app.getswift.co/api/public/v2/deliveries发出发布请求,但出现以下错误

HTTPSConnectionPool(host='app.getswift.co', port=443): Max retries exceeded with url: /api/public/v2/deliveries (Caused by SSLError(CertificateError("hostname 'app.getswift.co' doesn't match either of '*.my_domain.ai', 'another.my_domain.ai'),))

这是我发出的请求。

    headers = {
        'Content-Type': 'application/json',
    }

    data = {
        "apiKey": "my-api-key",
        "booking": {
            "pickupDetail": {
                "name": "Rupert 1",
                "phone": "1234567890",
                "address": "112 luscombe st, brunswick, melbourne"
            },
            "dropoffDetail": {
                "name": "Igor 2",
                "phone": "0987654321",
                "address": "105 collins st, 3000"
            }
        }
    }
    requests.post("https://app.getswift.co/api/public/v2/deliveries", headers=headers, json=data)

我在本地python shell上测试了相同的代码,甚至发出了邮递员请求,效果都很好。当我尝试将相同的代码推送到ec2服务器并进行发布请求调用时,就会出现问题。

我尝试使用verify = False来查看它是否有效(即使我知道安全后果),但我可以看到,相同的发布请求正在被退回给我的服务器,就像接收该请求一样。这是我在ec2日志中看到的内容

Not Found: /api/public/v2/deliveries 

HTTP POST /api/public/v2/deliveries 404 [0.01, 127.0.0.1:57840] 
https://app.getswift.co:443 "POST /api/public/v2/deliveries HTTP/1.1" 404 None

我将不胜感激。

python-3.x ssl post python-requests ssl-certificate
1个回答
0
投票

抛出的错误是由无效证书引起的证书错误。(Caused by SSLError(CertificateError(

如果您信任主机名,请使用以下命令禁用验证:

requests.post("https://app.getswift.co/api/public/v2/deliveries", json=data, headers=headers, verify=False)

© www.soinside.com 2019 - 2024. All rights reserved.