2015-05-30 12 views
7

Jestem nowym użytkownikiem Pythona i próbowałem uzyskać dostęp do strony internetowej za pomocą mechanizmu.Wyłączanie sprawdzania certyfikatów ssl w mechanize

br = mechanize.Browser() 
r=br.open("https://172.22.2.2/") 

Który daje mi następujący błąd:

Traceback (most recent call last): 
    File "<pyshell#4>", line 1, in <module> 
    br.open("https://172.22.2.2/") 
    File "/home/freeza/.local/lib/python2.7/site-packages/mechanize/_mechanize.py", line 203, in open 
    return self._mech_open(url, data, timeout=timeout) 
    File "/home/freeza/.local/lib/python2.7/site-packages/mechanize/_mechanize.py", line 230, in _mech_open 
    response = UserAgentBase.open(self, request, data) 
    File "/home/freeza/.local/lib/python2.7/site-packages/mechanize/_opener.py", line 193, in open 
    response = urlopen(self, req, data) 
    File "/home/freeza/.local/lib/python2.7/site-packages/mechanize/_urllib2_fork.py", line 344, in _open 
'_open', req) 
    File "/home/freeza/.local/lib/python2.7/site-packages/mechanize/_urllib2_fork.py", line 332, in _call_chain 
    result = func(*args) 
    File "/home/freeza/.local/lib/python2.7/site-packages/mechanize/_urllib2_fork.py", line 1170, in https_open 
    return self.do_open(conn_factory, req) 
    File "/home/freeza/.local/lib/python2.7/site-packages/mechanize/_urllib2_fork.py", line 1118, in do_open 
    raise URLError(err) 
URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)> 

możesz mi powiedzieć jak wyłączyć sprawdzanie poprawności certyfikatu SSL w mechanize w Pythonie?

Czy możesz mi również powiedzieć, jak dołączyć certyfikat, jeśli go otrzymam? Dzięki

Odpowiedz

7

Dodaj ten fragment kodu, aby wyłączyć sprawdzanie poprawności HTTPS przed br.open().

import ssl 
try: 
    _create_unverified_https_context = ssl._create_unverified_context 
except AttributeError: 
    # Legacy Python that doesn't verify HTTPS certificates by default 
    pass 
else: 
    # Handle target environment that doesn't support HTTPS verification 
    ssl._create_default_https_context = _create_unverified_https_context 
+1

Czy możesz wyjaśnić, co dokładnie robi? – Krishh

+1

Naprawdę chciałbym również wiedzieć, co to robi :) – Matthijs

Powiązane problemy