Hi,
I was trying to setup a forward proxy solution with apache, but via
port 443(SSL) rather than just via 80. So I hope it should work as the
following diagram:
Client(IP1:Random) (IP2:443)Apache(IP2:Random) (IP3:443)Web Server
1 |--------SSL Hand Shake-----(443)|
2 |-CONNECT IP3:443 HTTP/1.1->(443)|
3 |----TCP hand shake---(443)|
4 |<-HTTP/1.0 200 Established-(443)|
6 |----------------------SSL Hand Shake------------------(443)|
7 |------GET / HTTP/1.1------>(443)|----GET / HTTP/1.1-->(443)|
8 |<------------HTML----------(443)|<---------HTML-------(443)|
So I configured my apache server like this:
<VirtualHost _default_:443>
ProxyRequests On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
I did the following test. It looks like apache works, after SSL hand
shake, I sent "CONNECT IP3:443 HTTP/1.1" to apache proxy(encrypted), apache
decrypted the CONNECT instruction correctly and tried to connect IP3 and
returned "HTTP/1.0 200 Connection Established..", BUT the only problem is
apache returned the HTTP/1.0 200 in PLAN TEXT, so my client doesn't
understand it and stops. Here is the test log:
1. Connect to proxy:
openssl s_client -connect IP2:443 -state -debug
SSL handshake has read 1361 bytes and written 340 bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is 1024 bit
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : DHE-RSA-AES256-SHA
Session-ID:
FC2A51765458493165B386D05A1DAF2CEAE4C762078D534ADD862E1802381486
Session-ID-ctx:
Master-Key:
695B9E094F07F7ECD0B73EC8E0FC0A441B8A96C41CE2B85E771C85DC5AADC5BBB41F1DDA7F38
7D62B0C808A6411BFDB6
Key-Arg : None
Krb5 Principal: None
Start Time: 1209048482
Timeout : 300 (sec)
Verify return code: 18 (self signed certificate)
---
2. I sent CONNECT instruction:
CONNECT 209.47.41.27:443 HTTP/1.1
Host: www.testhost.com
SSL3 alert write:fatal:protocol version
32713:error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version
number:s3_pkt.c:288:
SSL3 alert write:warning:close notify
I traced on proxy server, actually, it returned: "HTTP/1.0 200
Connection Established.." in PLAN TEXT and caused this problem.
Very Best Regards!
Stephen