from:
经过修改,测试的确可以在android上使用。
折腾了两天,终于知道android上使用NIO的SSL的(也就是SSLEngine)的关键了。
关键的代码如下
String[] cipherSuites = sslEngine.getSupportedCipherSuites();
Set enabledSuites = new HashSet();
for (String cipherSuite : cipherSuites)
enabledSuites.add(cipherSuite);
sslEngine.setEnabledCipherSuites((String[]) enabledSuites
.toArray(new String[enabledSuites.size()]));
在这里作个笔记,同时也分享给在搞android的需要的同学。
如果不加入这几行代码的话,那么会在握手的时候抛异常:javax.net.ssl.SSLException: Error occured in delegated至于在考虑校验服务器的证书的情况下,如何处理 TrustManager,可以使用一下两种方式之一:
1、最最简单的办法。
sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, null, null);
2、使用网上提供的别人写的EasyX509TrustManager的类。
sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, new TrustManager[] {new EasyX509TrustManager(null)}, null);
两个用起来感觉是一样的,如果想深入的话就自己去搞吧。
阅读(2420) | 评论(0) | 转发(0) |