我正在尝试使用自签名证书访问内部地址。我可以进入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,它可以工作,但出于安全原因,这不是一个选项。
知道为什么吗
1条答案
按热度按时间ukxgm1gy1#
好吧,我找到原因了。我没有提供根CA,只是一个中间CA。看起来,为curl提供-cacert选项并不能使其验证完整的链,而对python则可以。