I am trying to make a local HTTPS connection with the XMLRPC api. Since I am upgrading to python version 2.7.9, enable default certificate verification , I got a CERTIFICATE_VERIFY_FAILED error when I use my API
>>> test=xmlrpclib.ServerProxy('https://admin: bz15h9v9n@localhost :9999/API',verbose=False, use_datetime=True) >>> test.list_satellites() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/xmlrpclib.py", line 1233, in __call__ return self.__send(self.__name, args) File "/usr/local/lib/python2.7/xmlrpclib.py", line 1591, in __request verbose=self.__verbose File "/usr/local/lib/python2.7/xmlrpclib.py", line 1273, in request return self.single_request(host, handler, request_body, verbose) File "/usr/local/lib/python2.7/xmlrpclib.py", line 1301, in single_request self.send_content(h, request_body) File "/usr/local/lib/python2.7/xmlrpclib.py", line 1448, in send_content connection.endheaders(request_body) File "/usr/local/lib/python2.7/httplib.py", line 997, in endheaders self._send_output(message_body) File "/usr/local/lib/python2.7/httplib.py", line 850, in _send_output self.send(msg) File "/usr/local/lib/python2.7/httplib.py", line 812, in send self.connect() File "/usr/local/lib/python2.7/httplib.py", line 1212, in connect server_hostname=server_hostname) File "/usr/local/lib/python2.7/ssl.py", line 350, in wrap_socket _context=self) File "/usr/local/lib/python2.7/ssl.py", line 566, in __init__ self.do_handshake() File "/usr/local/lib/python2.7/ssl.py", line 788, in do_handshake self._sslobj.do_handshake() ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581) >>> import ssl >>> ssl._create_default_https_context = ssl._create_unverified_context >>> test.list_satellites() [{'paired': True, 'serial': '...', 'enabled': True, 'id': 1, 'date_paired': datetime.datetime(2015, 5, 26, 16, 17, 6)}]
Is there a Putin way to disable default certificate verification in python 2.7.9?
I don’t know if it’s good to change the global SSL attribute “private” ( ssl._create_default_https_context = ssl._create_unverified_context )