mirror of
git://github.com/kovidgoyal/calibre.git
synced 2026-05-08 23:43:27 +02:00
Allow downloading https resources without verifying the server certificate
This commit is contained in:
parent
0149c98092
commit
0050a3aba7
1 changed files with 10 additions and 4 deletions
|
|
@ -35,7 +35,11 @@ def __init__(self, url, code):
|
|||
class HTTPSConnection(httplib.HTTPSConnection):
|
||||
|
||||
def __init__(self, ssl_version, *args, **kwargs):
|
||||
kwargs['context'] = ssl.create_default_context(cafile=kwargs.pop('cert_file'))
|
||||
cafile = kwargs.pop('cert_file', None)
|
||||
if cafile is None:
|
||||
kwargs['context'] = ssl._create_unverified_context()
|
||||
else:
|
||||
kwargs['context'] = ssl.create_default_context(cafile=cafile)
|
||||
httplib.HTTPSConnection.__init__(self, *args, **kwargs)
|
||||
else:
|
||||
# Check certificate hostname {{{
|
||||
|
|
@ -159,13 +163,16 @@ def get_https_resource_securely(
|
|||
certificate). Ensures that redirects, if any, are also downloaded
|
||||
securely. Needs a CA certificates bundle (in PEM format) to verify the
|
||||
server's certificates.
|
||||
|
||||
You can pass cacerts=None to download using SSL but without verifying the server certificate.
|
||||
'''
|
||||
if ssl_version is None:
|
||||
try:
|
||||
ssl_version = ssl.PROTOCOL_TLSv1_2
|
||||
except AttributeError:
|
||||
ssl_version = ssl.PROTOCOL_TLSv1 # old python
|
||||
cacerts = P(cacerts, allow_user_override=False)
|
||||
if cacerts is not None:
|
||||
cacerts = P(cacerts, allow_user_override=False)
|
||||
p = urlparse(url)
|
||||
if p.scheme != 'https':
|
||||
raise ValueError('URL %s scheme must be https, not %r' % (url, p.scheme))
|
||||
|
|
@ -209,6 +216,5 @@ def get_https_resource_securely(
|
|||
return response.read()
|
||||
|
||||
if __name__ == '__main__':
|
||||
# print (len(get_url_secure('https://status.calibre-ebook.com/dist/win32')))
|
||||
print (get_https_resource_securely('https://status.calibre-ebook.com/latest'))
|
||||
print (get_https_resource_securely('https://code.calibre-ebook.com/latest'))
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue