Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL
- A HTTPS client implementation for
- httplib (Python 2), http.client (Python 3) and
- urllib2 (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.
- Fix to Subject Alternative Name verification to handle certificates with up to 1024 names (previously it was 64). Tested with https://files.pythonhosted.org. Thanks to Matt Pegler for flagging up
- Fix defaults in SSL context objects and in tests to use TLS 1.2
- Use byte type for subjectAltName field matching
- Added additional Subject Alternative Name test - in test_urlib2
- Update test certificate files.
- Fix to 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.
- Minor fix for installation: set minimum release for 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.
- Fix to bug in ndg.httpsclient.utils.open_url - duplicate open call. Nb. This bug and the fix DO NOT affect the httplib``and ``urllib2 interfaces that this package provides.
- Added explicit ref to Python 3 in classifier text for Python 3 checking tools.
- Moved LICENSE file into package
- Made dual compatible with Python 2 / 3.
- Fix to add in AnotherName for subjectAltNames field - added for support for CACert issued certs (thanks to Gu1).
- Fix to HTTP Basic Auth option for ndg.httpsclient.utils.main
- Fix to 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.
- Fix to SubjectAltNames support check - should only be enabled if pyasn1 is installed.
- Fix to open_url: HTTP Request object was being created inside if headers is None block - now corrected to create regardless.
- Added http basic auth support to script. (Thanks to Willem van Engen)
- extended utils functions to support keyword for passing additional urllib2 handlers.
- Added ndg.httpsclient.utils.fetch_stream_from_url function and added parameter for data to post in open_url and fetch_* methods.
- fix to ndg.httpsclient.utils module _should_use_proxy and open_url functions
- added support for SSL verification with subjectAltNames using pyasn1
- fixed minor bug - SSL cert DN prefix matching
This has been developed and tested for Python 2.6 and 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. Note that proxy support is only available from Python 2.6.2 onwards. 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.
- The URL of the resource to be fetched
- -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.
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size & hash SHA256 hash help||File type||Python version||Upload date|
|ndg_httpsclient-0.5.0-py2-none-any.whl (30.7 kB) Copy SHA256 hash SHA256||Wheel||2.7|
|ndg_httpsclient-0.5.0-py3-none-any.whl (30.7 kB) Copy SHA256 hash SHA256||Wheel||3.6|
|ndg_httpsclient-0.5.0.tar.gz (24.3 kB) Copy SHA256 hash SHA256||Source||None|