https://github.com/cedadev/ndg_httpsclient
HTTPS client implementation for httplib and urllib2 based on PyOpenSSL
https://github.com/cedadev/ndg_httpsclient
Last synced: 3 months ago
JSON representation
HTTPS client implementation for httplib and urllib2 based on PyOpenSSL
- Host: GitHub
- URL: https://github.com/cedadev/ndg_httpsclient
- Owner: cedadev
- Created: 2013-09-02T12:53:27.000Z (almost 13 years ago)
- Default Branch: master
- Last Pushed: 2021-03-19T16:39:00.000Z (about 5 years ago)
- Last Synced: 2026-02-20T02:58:19.214Z (4 months ago)
- Language: Python
- Size: 116 KB
- Stars: 19
- Watchers: 13
- Forks: 20
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
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``.
Releases
========
0.5.1
-----
* Clean up handling for description file - pull in content from this file into setup()
* Allows the nightly build to fail
* Add Trove version classifiers to make it explicit what is supported
* Add python_requires to help pip
* Drop support for EOL Python 2.6 and 3.3
Thanks to @hugovk for contributions
0.5.0
-----
* Fix to Subject Alternative Name handling to allow for certificates with
more than 64 names (max now 1024). Thanks to Matt Pegler
* Fix to subjectAltName string to use byte type for correct matching
* Updated SSL Context objects to default to TLS 1.2
0.4.4
-----
* Updated test certificates
0.4.3
-----
* 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.
0.4.2
-----
* 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.
0.4.1
-----
* Added explicit ref to Python 3 in classifier text for Python 3 checking tools.
* Moved LICENSE file into package
0.4.0
-----
* Made dual compatible with Python 2 / 3.
0.3.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.
0.3.2
-----
* 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)
0.3.1
-----
* extended utils functions to support keyword for passing additional ``urllib2``
handlers.
0.3.0
-----
* 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
0.2.0
-----
* added support for SSL verification with subjectAltNames using pyasn1
* fixed minor bug - SSL cert DN prefix matching
0.1.0
-----
Initial release
Prerequisites
=============
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
============
Installation can be performed using ``easy_install`` or ``pip``.
Running ndg_httpclient
======================
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.