有两个tomcat服务器,SSL都配置好了。
现在是两边的SSL都必须为提交证书才能进行链接。
想实现的功能:
如:A服务器提交数据到B服务器,要使用https链接,但是因为SSL要设置为客户端必须提交证书。而这个过程是后台自动完成,没有人工的。提交的证书为A服务器本身的服务器证书。
请问要怎样实现啊?怎样才能设置提交的证书?

解决方案 »

  1.   

    应该修改tomcat的server.xml的Host配置。
    1 增加connector元素
    2 修改connector属性建议看看web服务器应用方面的知识。
      

  2.   

    沙发做着舒服啊!
    没接触过,帮Ding
      

  3.   

    A服务器提交数据到B服务器,怎么提交数据,提交form的数据?
      

  4.   

    to:JAVA_WEB 能不能详细地说一下??急~!
      

  5.   

    既然是 POST 提交,想必你应该用的是某个第三方 HTTP 客户端类库吧?(比如 HttpClient),那就看看这个类库里是怎么支持 SSL 客户端认证的吧。
      

  6.   

    如果是socket要怎么实现呢?我现在真的没有任何头绪了~~
      

  7.   

    你可以看看openssl有没有java版,或者直接用jni
      

  8.   

    > 你可以看看openssl有没有java版,或者直接用jni不会吧?!我虽然没真去找过,但我不相信没有带 SSL 客户端验证的第三方开发包……
      

  9.   

    My Code (use socket):Concret X509 Trust manager:
    public class ClientConnectionX509TrustManager implements X509TrustManager 
    {
        X509TrustManager sunX509TrustManager;    ClientConnectionX509TrustManager() 
        {
            try
            {
                KeyStore store = null;
                TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
                tmf.init(store);
                sunX509TrustManager = (X509TrustManager)tmf.getTrustManagers()[0];
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
        }    public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException
        {
            System.out.println("checkClientTrusted called");
            return;
        }    public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException
        {
            System.out.println("checkServerTrusted called");
            return;
        }    public X509Certificate[] getAcceptedIssuers() 
        {
            return sunX509TrustManager.getAcceptedIssuers();
        }
    }how to connect to the server:TrustManager tm[] = new TrustManager [] { new com.lucent.lps.ExternalConnection.client.ClientConnectionX509TrustManager() };
                    context = SSLContext.getInstance("SSL");
                    context.init(null, tm, null);
                    SSLSocket sslSocket = (SSLSocket)context.getSocketFactory().createSocket(hostName, port);
                    sslSocket.startHandshake();
                    socket = sslSocket;