Hello Nitya,
> in the implementation they say that you need to write this...
>
> Protocol stricthttps = new Protocol( "https", new
> StrictSSLProtocolSocketFactory(true), 443);
> HttpClient client = new HttpClient();
> client.getHostConfiguration().setHost("hostname", 443, stricthttps);
>
> Now this Factory implementation stops the man in the middle attack... by
> verifying the hostName... TRUE passed in its constructor..
>
> But doesnt it mean that it should also call this classes' createSocket()
> method??? because that method has the method verifyHostName() which should
> be called so that hostname is verified???
When SSL connections are tunnelled through a proxy, there is
first a plain HTTP connection to the proxy. That's what you've
made to work now. Subsequently, a tunnel to the target is
established, and the SSL connection with protocol "https"
is layered on top of that. You don't have to verify a hostname
for the connection to the proxy.
>
> By implementing the above code I see that the createSocket() method of
> StrictSSLProtocolSocketFactory class doesnt get called.. why is that??? or i
> m missing something here????
Have a look at HttpConnection.tunnelCreated, that's where
the SSL connection is layered on top of the tunnel.
If you have specific SSL questions, you should also consider
posting them to the nyc-ssl mailing list:
http://www.juliusdavies.ca/commons-ssl/
hope that helps,
Roland
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]