2014-07-21 27 views
-1

我是SSL和安全新手,我想为使用SSL的Web服务构建Java客户端。服务器正确配置为使用双向SSL配置,但如何建立客户..如何通过SSL构建Web服务客户端

也仿佛春天有什么这将是很好的..提前
感谢

回答

0

得到的东西的工作,你必须创建一个客户端密钥库和信任,然后用这些商店定义的SSLContext,然后实例化的SSLSocketFactory产生的SSLSockets这样的:

SSLContext sslcontext = SSLContexts.createDefault();   
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
      sslcontext, SSLConnectionSocketFactory.STRICT_HOSTNAME_VERIFIER); 

CloseableHttpClient httpClient = HttpClients.custom() 
     .setSSLSocketFactory(sslsf) 
     .build();  
HttpsURLConnection.setDefaultSSLSocketFactory(sslcontext.getSocketFactory()); 

你应该阅读这http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html,了解它如何作品。
也是这个问题how to write java client and server applications that uses mutual ssl authentication between them?可能是有用的。

0

你不必对客户端没有什么特别之处,只需在请求中使用HTTPS而不是HTTP。

+1

确实如此,除非您使用不在默认JVM密钥库内的证书(例如,由公司特定的AC自签名或发出)或密钥对,如果OP使用2就我所知,默认的JVM密钥库没有SSL客户端身份验证材料。 然后,使事情工作可能涉及额外的步骤,例如将证书和密钥添加到默认的JVM密钥库,或者构建/使用特别配置的SSLSocketFactory实例。 – GPI

+0

我不认为这很简单,你必须建立一个SSL会话,并提供你的证书到服务器一些如何 – monim

+0

认证配置在服务器端 – paul