diff options
author | Simon Körner <git@lubiland.de> | 2019-05-18 00:32:15 +0200 |
---|---|---|
committer | Julian Andres Klode <julian.klode@canonical.com> | 2019-06-11 17:27:34 +0200 |
commit | 86d4d98060f36c7e71c34af20a1193a75496ef72 (patch) | |
tree | 10acbdf79bae5b8ad01bfef3c10380ef7cb9f081 /test/integration/test-proxy-connect | |
parent | 9244f712396c10b674740cc79fdab61c47173d04 (diff) |
http: Fix Host header in proxied https connections
Currently CONNECT requests use the name of the proxy as Host value, instead of
the origin server's name.
According to RFC 2616 "The Host field value MUST represent the naming authority
of the origin server or gateway given by the original URL."
The current implementation causes problems with some proxy vendors. This
commit fixes this.
[jak: Adding a test case]
See merge request apt-team/apt!66
Diffstat (limited to 'test/integration/test-proxy-connect')
-rwxr-xr-x | test/integration/test-proxy-connect | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/test/integration/test-proxy-connect b/test/integration/test-proxy-connect new file mode 100755 index 000000000..17927c9db --- /dev/null +++ b/test/integration/test-proxy-connect @@ -0,0 +1,22 @@ +#!/bin/sh +set -e + +TESTDIR="$(readlink -f "$(dirname "$0")")" +. "$TESTDIR/framework" +setupenvironment +configarchitecture 'amd64' + +buildsimplenativepackage 'unrelated' 'all' '0.5~squeeze1' 'unstable' + +setupaptarchive +changetowebserver --request-absolute='uri' + + +msgmsg 'Check that host header we send for CONNECT is for target, not proxy' +echo "deb https://example.example/ example example" > rootdir/etc/apt/sources.list +rm -f rootdir/etc/apt/sources.list.d/* +echo "Acquire::http::Proxy \"http://localhost:${APTHTTPPORT}\";" > rootdir/etc/apt/apt.conf.d/99proxy + +aptget update >/dev/null 2>&1 +testsuccessequal "CONNECT example.example:443 HTTP/1.1\r +Host: example.example:443\r" grep -A1 "^CONNECT" aptarchive/webserver.log |