fix certificate check on servers which don't allow SSLv3
This commit is contained in:
parent
251eaef0c7
commit
f183e5e80c
1 changed files with 8 additions and 2 deletions
|
|
@ -409,8 +409,14 @@ class StandardBrowser(mechanize.Browser):
|
||||||
raise BrowserSSLError()
|
raise BrowserSSLError()
|
||||||
|
|
||||||
def _certhash(self, domain, port=443):
|
def _certhash(self, domain, port=443):
|
||||||
certs = ssl.get_server_certificate((domain, port))
|
for proto in HTTPSConnection2._PROTOCOLS:
|
||||||
return hashlib.sha256(certs).hexdigest()
|
try:
|
||||||
|
certs = ssl.get_server_certificate((domain, port), ssl_version=proto)
|
||||||
|
except ssl.SSLError as e:
|
||||||
|
continue
|
||||||
|
else:
|
||||||
|
return hashlib.sha256(certs).hexdigest()
|
||||||
|
raise e
|
||||||
|
|
||||||
def __setitem__(self, key, value):
|
def __setitem__(self, key, value):
|
||||||
if isinstance(value, unicode):
|
if isinstance(value, unicode):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue