Curl调用可以工作,但Python请求调用失败,[SSL:CERTIFICATE_VERIFY_FAILED]

5uzkadbs  于 2023-05-08  发布在  Python
关注(0)|答案(1)|浏览(173)

我正在尝试使用自签名证书访问内部地址。我可以进入CA。如果我尝试使用curl,则没有问题:

curl https://myhost.internal  --cacert ./mycert.crt

我得200分
但是如果我在python中尝试(同一台机器):

import requests
requests.get('https://myhost.internal', verify='./mycert.crt'

然后我得到以下错误:

SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate
verify failed (_ssl.c:727)')

出于好奇,我尝试从python子进程调用curl,它也能工作。
如果我在python中请求忽略cert,它可以工作,但出于安全原因,这不是一个选项。
知道为什么吗

ukxgm1gy

ukxgm1gy1#

好吧,我找到原因了。我没有提供根CA,只是一个中间CA。看起来,为curl提供-cacert选项并不能使其验证完整的链,而对python则可以。

相关问题