Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL
A HTTPS client implementation for
httplib
(Python 2), http.client
(Python 3) andurllib2
(Python 2) and urllib
(Python 3)... based on PyOpenSSL. PyOpenSSL provides a more fully featured SSL implementation
over the default provided with Python and importantly enables full verification
of the SSL peer using pyasn1
.
Thanks to @hugovk for contributions
ndg
namespace package warning issue (https://github.com/cedadev/ndg_httpsclient/issues/3).__init__.py
file now included in ndg
directory so that there are no longer warnings with imports
when using Python 2.x. Thanks to Max Mauntner for fix.pyasn1
to avoid conflicts with Ubuntu
install - see https://github.com/cedadev/ndg_httpsclient/issues/5 and
https://github.com/cedadev/ndg_httpsclient/pull/10. pyasn1
also becomes mandatory rather
than optional package for install. - It required by cryptography
anyway which is a
dependency for pyOpenSSL
from version 0.14.ndg.httpsclient.utils.open_url
- duplicate open call.httplib
and urllib2
interfaces that this package provides.subjectAltNames
field - added for support for CACert issued
certs (thanks to Gu1).ndg.httpsclient.utils.main
ServerSSLCertVerification
so that it can pass a function-based callback instead of using __call__
. In newer versions of OpenSSL (>= 0.14) the latter failed because of a request for __name__
attribute.urllib2
handlers.ndg.httpsclient.utils.fetch_stream_from_url
function and added
parameter for data to post in open_url
and fetch_*
methods.Initial release
This has been developed and tested for Python 2.7 with pyOpenSSL 0.13
and 0.14. Version 0.4.0 tested with pyOpenSSL
0.15.1 and Python 2.7 and
3.4.
pyasn1
is required for correct SSL verification with subjectAltNames
.
Installation can be performed using easy_install
or pip
.
A simple script for fetching data using HTTP or HTTPS GET from a specified URL.
Parameter:
url
The URL of the resource to be fetched
Options:
-h, --help
Show help message and exit.
-c FILE, --certificate=FILE
Certificate file - defaults to $HOME/credentials.pem
-k FILE, --private-key=FILE
Private key file - defaults to the certificate file
-t DIR, --ca-certificate-dir=DIR
Trusted CA certificate file directory.
-d, --debug
Print debug information - this may be useful in solving problems with HTTP or
HTTPS access to a server.
-p FILE, --post-data-file=FILE
POST data file
-f FILE, --fetch=FILE
Output file
-n, --no-verify-peer
Skip verification of peer certificate.