在配合android端测试SSL时的笔记

个人心得,总结的比较全面。

一、 在做ssl开发时,要注意的是android端与服务器端的

keystore类型是不一致的:如如下代码:

KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());,在android中代码默认拿到的是android的BKS类型.所以需要相应的工具转换:资料如下:

Android SDK 在进行 https 联机时,对于自签署的凭证是会拒绝联机的,会得到 Not trusted server certificate 的例外。如果使用 HttpsURLConnection 来联机,网络上可以找到一些破解方法,在此不多谈。使用 apache httpclient 其实执行效率比较差一点,但是他最大的好处就是有内建的机制储存cookie,并且也可以跟随 server 作自动转址。网络上数据比较多的是 httpclient 3.x版,Android 使用 httpclient 4 (而且还有些实作被拿掉) 唯一找到比较可信的来源是 apache httpclient 官方的 example。节录重点段落如下:

1. KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());

2. FileInputStream instream = new FileInputStream(new File("my.keystore"));

3. try {

4. trustStore.load(instream, "nopassword".toCharArray());

5. } finally {

6. instream.close();

7. }

8.

9. SSLSocketFactory socketFactory = new SSLSocketFactory(trustStore);

10.Scheme sch = new Scheme("https", socketFactory, 443);

11.httpclient.getConnectionManager().getSchemeRegistry().register(sch);

1. KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());

2. FileInputStream instream = new FileInputStream(new File("my.keystore"));

3. try {

4. trustStore.load(instream, "nopassword".toCharArray());

5. } finally {

6. instream.close();

7. }

8.

在配合android端测试SSL时的笔记相关文档

最新文档

返回顶部