Python请求模块中的SSLError

Python请求模块中的SSLError,python,ssl,python-requests,Python,Ssl,Python Requests,我想使用从服务器生成的证书从客户端向服务器进行身份验证。我有一个server-ca.crt,下面是正在工作的CURL命令。如何使用python请求模块发送类似的请求 $ curl -X GET -u sat_username:sat_password \ -H "Accept:application/json" --cacert katello-server-ca.crt \ https://satellite6.example.com/katello/api/organizations 我尝

我想使用从服务器生成的证书从客户端向服务器进行身份验证。我有一个server-ca.crt,下面是正在工作的CURL命令。如何使用python请求模块发送类似的请求

$ curl -X GET -u sat_username:sat_password \
-H "Accept:application/json" --cacert katello-server-ca.crt \
https://satellite6.example.com/katello/api/organizations
我尝试了以下方法,但出现了一些异常,是否有人可以帮助解决此问题

 python requestsCert.py
Traceback (most recent call last):
  File "requestsCert.py", line 2, in <module>
    res=requests.get('https://satellite6.example.com/katello/api/organizations', cert='/certificateTests/katello-server-ca.crt', verify=True)
  File "/usr/lib/python2.7/site-packages/requests/api.py", line 68, in get
    return request('get', url, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/api.py", line 50, in request
    response = session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 464, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 576, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 431, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: [SSL] PEM lib (_ssl.c:2554)
python requestsCert.py
回溯(最近一次呼叫最后一次):
文件“requestsCert.py”,第2行,在
res=requests.get('https://satellite6.example.com/katello/api/organizations“,cert=”/certificateTests/katello-server-ca.crt',verify=True)
get中第68行的文件“/usr/lib/python2.7/site packages/requests/api.py”
返回请求('get',url,**kwargs)
文件“/usr/lib/python2.7/site packages/requests/api.py”,第50行,请求中
response=session.request(方法=method,url=url,**kwargs)
文件“/usr/lib/python2.7/site packages/requests/sessions.py”,请求中的第464行
resp=自我发送(准备,**发送)
文件“/usr/lib/python2.7/site packages/requests/sessions.py”,第576行,在send中
r=适配器.send(请求,**kwargs)
文件“/usr/lib/python2.7/site packages/requests/adapters.py”,第431行,在send中
raise SSLError(e,请求=请求)
requests.exceptions.SSLError:[SSL]PEM lib(_SSL.c:2554)
requests.get
中的
cert
参数用于指定客户端证书和密钥,用于相互身份验证。它不像curl中的
--cacert
参数那样用于指定受信任的CA。相反,您应该使用
verify
参数:

res=requests.get('https://...', verify='/certificateTests/katello-server-ca.crt')
有关更多信息,请参阅与
请求

密切相关的文档中的和:但我不确定这是否重复,因为在这个问题中,
请求
代码中提出了错误,而在另一个问题中,
请求
不涉及。
res=requests.get('https://...', verify='/certificateTests/katello-server-ca.crt')