मैं एक सिस्को CMX उपकरण के लिए API का उपयोग कर रहाssl.SSLError: tlsv1 चेतावनी प्रोटोकॉल संस्करण
और अजगर कोड है जिसके लिए एपीआई के GET अनुरोध करता है लिखने की कोशिश कर जानकारी। कोड निम्नानुसार है और आवश्यक जानकारी को छोड़कर फ़ाइल में वही है।
from http.client import HTTPSConnection
from base64 import b64encode
# Create HTTPS connection
c = HTTPSConnection("0.0.0.0")
# encode as Base64
# decode to ascii (python3 stores as byte string, need to pass as ascii
value for auth)
username_password = b64encode(b"admin:password").decode("ascii")
headers = {'Authorization': 'Basic {0}'.format(username_password)}
# connect and ask for resource
c.request('GET', '/api/config/v1/aaa/users', headers=headers)
# response
res = c.getresponse()
data = res.read()
हालांकि, मैं लगातार निम्न त्रुटि हो रही है:
Traceback (most recent call last):
File "/Users/finaris/PycharmProjects/test/test/test.py", line 14, in <module>
c.request('GET', '/api/config/v1/aaa/users', headers=headers)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 1106, in request
self._send_request(method, url, body, headers)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 1151, in _send_request
self.endheaders(body)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 1102, in endheaders
self._send_output(message_body)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 934, in _send_output
self.send(msg)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 877, in send
self.connect()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/http/client.py", line 1260, in connect
server_hostname=server_hostname)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 377, in wrap_socket
_context=self)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 752, in __init__
self.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 988, in do_handshake
self._sslobj.do_handshake()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/ssl.py", line 633, in do_handshake
self._sslobj.do_handshake()
ssl.SSLError: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:645)
मैं भी OpenSSL को अद्यतन करने की कोशिश की, लेकिन वह कोई प्रभाव नहीं पड़ा।
https://github.com/CiscoDevNet/devnet-express-dna-issues/issues/16 देखें। ऐसा लगता है कि आप अपने पायथन में ओपनएसएसएल के पुराने संस्करण का उपयोग कर रहे हैं। यह आम तौर पर मामला है यदि आप मैक पर हैं जो ओपनएसएसएल के वास्तव में पुराने और पुराने संस्करण के साथ भेज दिया गया है। –
मैं इस समस्या को विंडोज़ पर विमोस माइक्रोकंट्रोलर के लिए बाइनरी उपकरण प्राप्त करने पर चलाता हूं। कारण यह था कि Google ने मुझे अजगर 2.7.3 (पुराना) संस्करण डाउनलोड पेज लिया था, मैंने सोचा था कि यह नवीनतम था ... वर्तमान में 2.7.14 नवीनतम है और इसमें अब यह समस्या नहीं है, यह "स्वचालित रूप से" । – Feri