]> git.ipfire.org Git - thirdparty/squid.git/commit
TLS: GnuTLS implementation for listening ports and client connections (#81)
authorAmos Jeffries <yadij@users.noreply.github.com>
Thu, 1 Feb 2018 09:51:54 +0000 (22:51 +1300)
committerGitHub <noreply@github.com>
Thu, 1 Feb 2018 09:51:54 +0000 (22:51 +1300)
commit51e09c08a5e6c582e7d93af99a8f2cfcb14ea9e6
treecca5cc850b81a13dfe3a57265fd2c8fe0a9f59a4
parent57b6788e0438fe4bb09fddc6f25c13fd9549597e
TLS: GnuTLS implementation for listening ports and client connections (#81)

Move the http_port cert= and key= options logic to libsecurity and add GnuTLS implementation for PEM file loading. Also adds some extra debugging to clarify listening port initialization problems with the PEM files.

Enable most of the http(s)_port listening socket logic to always build except where OpenSSL-specific dependency still exists. It may seem reasonable to leave it optionally excluded for minimal builds, however a minimal proxy that does not support HTTPS in any way is increasingly useless in the modern web so preference is given to building the generic TLS related code. This also simplifies the required testing to detect code portability issues.

GnuTLS implementation is added for https_port configured with static cert=/key= parameters and the resulting TLS handshake behaviour. Squid built with GnuTLS can now act as useful parent proxies behind a SSL-Bump'ing frontend or for other clients which require a TLS explicit proxy.

Also fixes the definitions for the CertPointer and PrivateKeyPointer.
18 files changed:
configure.ac
src/cache_cf.cc
src/cf.data.pre
src/client_side.cc
src/client_side.h
src/security/KeyData.cc [new file with mode: 0644]
src/security/KeyData.h
src/security/Makefile.am
src/security/PeerOptions.h
src/security/ServerOptions.cc
src/security/ServerOptions.h
src/security/forward.h
src/servers/Http1Server.cc
src/ssl/bio.h
src/ssl/support.cc
src/ssl/support.h
src/tests/stub_libsecurity.cc
src/tests/stub_libsslsquid.cc