首先使用keytool 生成 private key (JKS, BKS 等格式):client.bks server.jks
keytool -genkey .......
然后使用keytool生成证书(cer等格式): client.bks -----> client.cer
server.jks -----> server.cer
keytool -export ......
将证书添加到信任列表:
server.cer ------> client.bks
client.cer --------> server.jks
keytool -import ......
分别使用client.bks , server.jks 即可完成 JAVA server与 Android client 的 SSL socket 连接。
KeyStore ks = KeyStore.getInstance(secureType);
ks.load(new FileInputStream(FileAddr), psw.toCharArray());
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
tmf.init(ks);
kmf.init(ks, psw.toCharArray());
ctx = SSLContext.getInstance("TLS");
ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);