Skip to main content

Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL

Project description

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.0

  • 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

0.4.4

  • Update test certificate files.

0.4.3

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.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

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ndg_httpsclient-0.5.0.tar.gz (24.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ndg_httpsclient-0.5.0-py3-none-any.whl (30.7 kB view details)

Uploaded Python 3

ndg_httpsclient-0.5.0-py2-none-any.whl (30.7 kB view details)

Uploaded Python 2

File details

Details for the file ndg_httpsclient-0.5.0.tar.gz.

File metadata

File hashes

Hashes for ndg_httpsclient-0.5.0.tar.gz
Algorithm Hash digest
SHA256 c009f5430790936b3a97eaf9f968516664d97e146ab2bda991f0caadb7cc088b
MD5 1c28be0449268359e795b3b5687feeb7
BLAKE2b-256 3052332f10939d263ea5047a1bbe8418cb5dc3dab1d1e99df35c93b2a852061c

See more details on using hashes here.

File details

Details for the file ndg_httpsclient-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ndg_httpsclient-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8647bb775de60e79fe795eeee602d705de4500a5b1a3d2224247c217dfa200a9
MD5 122b3e1afcca6794f442b8274394c4f1
BLAKE2b-256 78601458ed478eb5777498ca57f4fabf2cf9328ac43e5f6db7839cf73704f3a6

See more details on using hashes here.

File details

Details for the file ndg_httpsclient-0.5.0-py2-none-any.whl.

File metadata

File hashes

Hashes for ndg_httpsclient-0.5.0-py2-none-any.whl
Algorithm Hash digest
SHA256 683b7a17e8b093e422562e8b089a3ad5d87e00f8f8765aac128791ab9140eef3
MD5 fdc8730927a8d322510e25c1cee0c867
BLAKE2b-256 4ba173ba15c5e56be36f184b0eabf7ea0873ea54022238313757e55781e8a2ad

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page