]> git.ipfire.org Git - thirdparty/squid.git/commit - src/FwdState.cc
Peering support for SslBump (#380)
authorChristos Tsantilas <christos@chtsanti.net>
Mon, 25 Mar 2019 09:37:42 +0000 (09:37 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Sun, 31 Mar 2019 07:37:55 +0000 (07:37 +0000)
commitf5e179474d15c0b43e3454f4763f36fba611c99c
treeffc80266647e6b7e3fd5d7d114820c0dafd17c68
parent98f951b75c6867831828b18909240cdc5fab20cf
Peering support for SslBump (#380)

Support forwarding of bumped, re­encrypted HTTPS requests through a
cache_peer using a standard HTTP CONNECT tunnel.

The new Http::Tunneler class establishes HTTP CONNECT tunnels through
forward proxies. It is used by TunnelStateData and FwdState classes.

Just like before these changes, when a cache_peer replies to CONNECT
with an error response, only the HTTP response headers are forwarded to
the client, and then the connection is closed.

No support for triggering client authentication when a cache_peer
configuration instructs the bumping Squid to relay authentication info
contained in client CONNECT request. The bumping Squid still responds
with HTTP 200 (Connection Established) to the client CONNECT request (to
see TLS client handshake) _before_ selecting the cache_peer.

HTTPS cache_peers are not yet supported primarily because Squid cannot
do TLS-in-TLS with a single fde::ssl state; SslBump and the HTTPS proxy
client/tunneling code would need a dedicated TLS connection each.

Also fixed delay pools for tunneled traffic.

This is a Measurement Factory project.
34 files changed:
src/Debug.h
src/FwdState.cc
src/FwdState.h
src/HttpRequest.cc
src/HttpRequest.h
src/RequestFlags.h
src/client_side.cc
src/client_side.h
src/client_side_request.cc
src/clients/HttpTunneler.cc [new file with mode: 0644]
src/clients/HttpTunneler.h [new file with mode: 0644]
src/clients/HttpTunnelerAnswer.cc [new file with mode: 0644]
src/clients/HttpTunnelerAnswer.h [new file with mode: 0644]
src/clients/Makefile.am
src/clients/forward.h
src/comm/ConnOpener.cc
src/comm/ConnOpener.h
src/comm/Read.cc
src/comm/Read.h
src/debug.cc
src/err_type.h
src/errorpage.cc
src/errorpage.h
src/http.cc
src/http/StateFlags.h
src/security/BlindPeerConnector.cc
src/security/PeerConnector.cc
src/security/PeerConnector.h
src/ssl/ServerBump.cc
src/ssl/ServerBump.h
src/tests/stub_client_side.cc
src/tests/stub_libcomm.cc
src/tests/stub_libsecurity.cc
src/tunnel.cc