Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python HTTPS/SSL错误:1407742E:SSL例程:SSL23\u GET\u SERVER\u HELLO:tlsv1警报协议版本_Python_Ssl - Fatal编程技术网

Python HTTPS/SSL错误:1407742E:SSL例程:SSL23\u GET\u SERVER\u HELLO:tlsv1警报协议版本

Python HTTPS/SSL错误:1407742E:SSL例程:SSL23\u GET\u SERVER\u HELLO:tlsv1警报协议版本,python,ssl,Python,Ssl,我正在尝试从CentOS 6.5使用python与REST API建立一个简单的HTTPS连接。安装的是python-2.6.6-52.el6.x86_64和openssl-1.0.1e-16.el6_5.7.x86_64 #!/usr/bin/env python import httplib, json, urllib, urllib2 # Gets the session ID to host c = httplib.HTTPSConnection("10.10.1.1") c.req

我正在尝试从CentOS 6.5使用python与REST API建立一个简单的HTTPS连接。安装的是python-2.6.6-52.el6.x86_64和openssl-1.0.1e-16.el6_5.7.x86_64

#!/usr/bin/env python

import httplib, json, urllib, urllib2

# Gets the session ID to host
c = httplib.HTTPSConnection("10.10.1.1")
c.request("GET", "/services/rest/V2/?method=authenticate&username=myusername&password=mypasswd&format=json")
response = c.getresponse()
data = json.loads(response.read())
session_id = data['session_id']

print "Session Created. Session ID: " + session_id
但是,它给了我这个错误:

Traceback (most recent call last):
  File "./test3.py", line 7, in <module>
    c.request("GET", "/services/rest/V2/?method=authenticate&username=myusername&password=mypasswd&format=json")
  File "/usr/lib64/python2.6/httplib.py", line 914, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib64/python2.6/httplib.py", line 951, in _send_request
    self.endheaders()
  File "/usr/lib64/python2.6/httplib.py", line 908, in endheaders
    self._send_output()
  File "/usr/lib64/python2.6/httplib.py", line 780, in _send_output
    self.send(msg)
  File "/usr/lib64/python2.6/httplib.py", line 739, in send
    self.connect()
  File "/usr/lib64/python2.6/httplib.py", line 1116, in connect
    self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file)
  File "/usr/lib64/python2.6/ssl.py", line 342, in wrap_socket
    suppress_ragged_eofs=suppress_ragged_eofs)
  File "/usr/lib64/python2.6/ssl.py", line 120, in __init__
    self.do_handshake()
  File "/usr/lib64/python2.6/ssl.py", line 279, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [Errno 1] _ssl.c:492: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
回溯(最近一次呼叫最后一次):
文件“/test3.py”,第7行,在
c、 请求(“GET”、“/services/rest/V2/?method=authenticate&username=myusername&password=mypasswd&format=json”)
请求中的文件“/usr/lib64/python2.6/httplib.py”,第914行
self.\u发送请求(方法、url、正文、标题)
文件“/usr/lib64/python2.6/httplib.py”,第951行,在发送请求中
self.endheaders()
文件“/usr/lib64/python2.6/httplib.py”,第908行,在endheaders中
self.\u发送\u输出()
文件“/usr/lib64/python2.6/httplib.py”,第780行,在发送输出中
self.send(msg)
文件“/usr/lib64/python2.6/httplib.py”,第739行,在send中
self.connect()
文件“/usr/lib64/python2.6/httplib.py”,第1116行,在connect中
self.sock=ssl.wrap\u套接字(sock、self.key\u文件、self.cert\u文件)
文件“/usr/lib64/python2.6/ssl.py”,第342行,在wrap_套接字中
抑制_参差_eofs=抑制_参差_eofs)
文件“/usr/lib64/python2.6/ssl.py”,第120行,在__
self.do_握手
文件“/usr/lib64/python2.6/ssl.py”,第279行,在do_握手中
赛尔夫:握手
ssl.SSLError:[Errno 1]\u ssl.c:492:error:1407742E:ssl例程:SSL23\u GET\u SERVER\u HELLO:tlsv1警报协议版本

这是openssl/python兼容性问题吗?我已经找到了最新的python和openssl RPM,我不想通过手动编译最新的tarball来摆脱RPM保留。

如果您将服务器配置为仅接受TLS1.2,但客户端不支持TLS1.2,则可能会发生这种情况。至少Ubuntu已经修补了openssl,在客户端不提供TLS1.1,而只在服务器端提供TLS1.1,以解决某些主机的一些bug。也许RHEL/CentOS也这么做了