最近完成一个项目,安全级别比较高。所以涉及到https双向认证,在网上找了很多资料都没有完美的解决方案。最后参考了org.sandrob.sslexample的实现方式,结合实际情况才完成该技术难题,现在分享一下我的实现方案来弥补这方面的空白。
正文:
1.android 4.0(不包含)以下版本的实现方法:
1.1 书写认证
private SSLContext createSSLContext() {
SSLContext localSSLContext = null;
try {
// 创建一个证书库,并将证书导入证书库
KeyStore keyStore = KeyStore.getInstance(“PKCS12”, “BC”);
keyStore.load(
mContext.getResources().openRawResource(R.raw.client),//client 是*.pfx文件
CERTFILE_PASSWORD.toCharArray());//CERTFILE_PASSWORD 为你的证书的密码
KeyManagerFactory localKeyManagerFactory = KeyManagerFactory
.getInstance(KeyManagerFactory.getDefaultAlgorithm());
localKeyManagerFactory.init(keyStore,
CERTFILE_PASSWORD.toCharArray());
KeyManager[] arrayOfKeyManager = localKeyManagerFactory