SSL com autenticação mútua

Boa tarde,

Não estou conseguindo fazer um client que utilize autenticação mútua.
Tenho o seguinte ambiente:
Configurei o Tomcat 5.5.25 para rodar com autenticação mútua conforme os tutoriais: http://www.vorburger.ch/blog1/2006/08/setting-up-two-way-mutual-ssl-with.html e http://discuss.fogcreek.com/joelonsoftware4/default.asp?cmd=show&ixPost=134695. (Para quem for tentar fazer o mesmo, cuide com os nomes das variáveis no arquivo server.xml, pois no exemplo ele mostra tudo minúsculo mas na verdade ele tem caracteres maiúsculos e minúsculos)

A montagem do servidor em SSL com autenticação mútua está tudo bem, pois tentei abrir o site via Firefox e IE e não consegui. Só depois que instalei o certificado do cliente que consegui ter acesso.

Estou tentando criar um cliente Java para abrir esta página mas até agora não obtive sucesso, pois achei uma maneira que funcionou, mas ele alterou para que todas as conexões SSL sejam com autenticação mútua usando o certificado que configurei. E outras ele dava erro de não ter feito a autenticação.

Abaixo está o fonte que estou utilizando para realizar esta conexão:

[code]import java.io.;
import java.net.
;

import org.apache.commons.httpclient.;
import org.apache.commons.httpclient.contrib.ssl.
;
import org.apache.commons.httpclient.methods.;
import org.apache.commons.httpclient.protocol.
;

public class HTTPSNew {
public static void main(String[] args) throws Exception {
File f = new File("C:\Temp\tomcat.keystore");
String pass = "senha";
AuthSSLProtocolSocketFactory auth = new AuthSSLProtocolSocketFactory(f.toURI().toURL(),pass,f.toURI().toURL(),pass);

	try
    {
		int port = 443;
	    String serverUrl = "https://localhost:443/";
	    
	    HttpClient client = new HttpClient();
        URL url = new URL(serverUrl);
        String host = url.getHost();
        port = url.getPort();
        
        System.out.println("Host = " + host + ", " + ", Port = " + port );
        
        Protocol authhttps = new Protocol("https",(ProtocolSocketFactory)auth, port);

// Protocol.registerProtocol("https", authhttps);
client.getHostConfiguration().setHost(host, port, authhttps);
GetMethod fileGet = new GetMethod(serverUrl);
client.executeMethod(fileGet);
String responseString = fileGet.getResponseBodyAsString();
if (responseString != null && responseString.length() > 0) System.out.println("Response String : " + responseString);
}
catch (Exception e)
{
System.err.println("Exception sending event file\n" + e.getMessage());
e.printStackTrace(System.err);
}
}
}
[/code]

Desde já agradeço,

Ats,
Endrigo Antonini