在文章HttpClient访问https链接(一)中,介绍了如何接受所有证书(不做验证)来通过HttpClient请求Https协议的链接,这次,是要验证服务端的证书,将证书导入到可信证书库,处理这部分有两种不同的做法,一是直接载入证书,还有一种是通过keystore导入证书的形式,但是注意android只支持bks类型的keystore。下面我们将会把这两种都处理到。
第一种方法:我们把服务端的证书通过浏览器导出成cer文件。并把cer文件放在assert目录中。我们通过AssetManager对象去读取这个文件流。主要代码如下:
1 | /** |
第二种方法是我们将证书cer导入bks格式的keystore,道理一致,只是我们需要一些工具来辅助我们很快的完成我们的工作,这个工具的名字叫portecle,下载地址:http://sourceforge.net/projects/portecle/ 。
简单介绍使用方法:
1 | 1、File -> New Keystore -> BKS |
保存为bks文件,我们也把server.bks拷贝到assert目录。
我们通过AssetManager对象去读取这个文件流。主要代码如下:
1 | /** |