如果是编写的一个通用的客户端,可以用于支持访问所有的HTTP及HTTPS协议请求,这个时候SSL自签名就非常管用了,如soupUI,它是一款用于WEBSERVICE的性能及压力测试工具,可以访问所有的HTTPS请求,并且不需要我们指定trustStore。通过查看其源代码,原来它使用的就是SSL自签名的实现类org.apache.commons.httpclient.contrib.ssl.EasySSLProtocolSocketFactory,有了它,在访问任何HTTPS的时候都不需要指定trustStore了。
当然这个是有安全问题的,这个自签名的API中也有明确的提示,尽量不要用于生产环境,用于平时的测试过程中是可以的。使用是非常简单的,只需要在发起请求前将SSL自签名API注册到Protocol中即可:
EasySSLProtocolSocketFactory easySSL = null;
try {
easySSL = new EasySSLProtocolSocketFactory();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Protocol easyhttps = new Protocol( "https", ( ProtocolSocketFactory )easySSL, 443 );
Protocol.registerProtocol( "https", easyhttps );
如果你使用HttpClient,那么这个时候只需要在使用HttpClient发起请求之前执行这段注册代码即可。
通常的trustStore的注册方式,可以查看这篇文章 http://blog.csdn.net/fenglibing/article/details/16842543 。
本文介绍SoupUI这款工具如何利用SSL自签名实现对所有HTTPS请求的支持,无需指定trustStore,方便进行WEB SERVICE的性能及压力测试。同时也指出此方法的安全风险及应用场景。

506

被折叠的 条评论
为什么被折叠?



