当openssl s_客户端连接工作时,为什么Python2.7请求ssl失败?

当openssl s_客户端连接工作时,为什么Python2.7请求ssl失败?,python,ssl,Python,Ssl,我正在尝试创建一个使用自签名证书签名的服务器。我有 openssl s_client -connect myserveraddress:myport 工作 --- SSL handshake has read 4620 bytes and written 466 bytes --- 但当我运行python代码时: import requests url = MyURL querystring = {"q":"admin"} headers = { 'content-type': "a

我正在尝试创建一个使用自签名证书签名的服务器。我有

openssl s_client -connect myserveraddress:myport 
工作

---
SSL handshake has read 4620 bytes and written 466 bytes
---
但当我运行python代码时:

import requests

url = MyURL

querystring = {"q":"admin"}

headers = {
'content-type': "application/json",
'authorization': "Bearer SOME-TOKEN",
'cache-control': "no-cache"
}

response = requests.request("GET", url, headers=headers, params=querystring, verify=False)
它失败了:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/requests/api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 502, in request
    resp = self.send(prep, **send_kwargs)
  File "/Library/Python/2.7/site-packages/requests/sessions.py", line 612, in send
    r = adapter.send(request, **kwargs)
  File "/Library/Python/2.7/site-packages/requests/adapters.py", line 514, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:590)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/Library/Python/2.7/site packages/requests/api.py”,第58行,请求中
return session.request(method=method,url=url,**kwargs)
文件“/Library/Python/2.7/site packages/requests/sessions.py”,请求中的第502行
resp=自我发送(准备,**发送)
文件“/Library/Python/2.7/site packages/requests/sessions.py”,第612行,在send中
r=适配器.send(请求,**kwargs)
文件“/Library/Python/2.7/site packages/requests/adapters.py”,第514行,在send中
raise SSLError(e,请求=请求)
requests.exceptions.SSLError:[SSL:SSLV3\u ALERT\u HANDSHAKE\u FAILURE]SSLV3 ALERT HANDSHAKE FAILURE(\u SSL.c:590)
我安装了其他SO问题的所有软件包,但没有成功。
知道如何解决这个问题吗?

通过从2.7.10升级到python 2.7.13,安装开放式SSL软件包,并将自签名证书添加到存储解决了这个问题。

在大多数情况下,s_客户端和请求都会成功。它们不同的情况取决于特定的服务器配置,该配置不会导致密码重叠或协议版本重叠或类似情况。也有可能s_客户端和python使用了不同版本的OpenSSL库,并导致此问题等。这意味着如果不了解可能导致问题的所有细节,就无法提供帮助。并且可能存在与特定版本的请求或python相关的bug。请看一看类似的问题,以了解所需的所有细节。