1.Android的bks
1.1.bksFile是将1~多个如 .crt 格式的CA根证存入bks库中,当与服务器https通信时,会自动匹配、使用bks库中合适的某个证书。如果bks中内置了a、b两个根证,服务器默认使用a进行通信,当a快过期时,服务器SSL配置切换成与b根证对应的未过期的服务器证书,这时候app不用做任何调整,也不用升级的,同时支持新旧证书,无缝支持后台https证书升级。
2.bks操作步骤
2.1.下载 bcprov-ext-jdk15on-158.jar,将 jar 文件拷贝到 %JAVA_HOME%\jre\lib\ext;
2.2.要导入的根证类型一般是 .cer 或者 .crt。如果要导入多个根证,执行多次下面的命令即可。
keytool -importcert -v -trustcacerts -alias myalas1 -file VeriSign.cer -keystore mytrustcerts.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass 'xxxxxx'
命令字段说明:
alias xxx:请修改成自己的别名
file xxx.cer:指要导入的根证文件,请修改成自己的根证文件名称
keystore xxx.bks:本地bks证书库文件,修改成自己的证书库文件名称,如果文件不存在,会自动创建
storepass <pwd>:证书库密码
例如:
keytool -importcert -v -trustcacerts -alias jianshu1 -file jianshu_https.cer -keystore mytrustcerts.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass 'xxxxxx'
keytool -importcert -v -trustcacerts -alias jianshu2 -file jianshu_https.cer -keystore mytrustcerts.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -storepass 'xxxxxx'
2.3.查看bks证书库列表
keytool -list -rfc -keystore ./mytrustcerts.bks -storepass 'xxxxxx' -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider
2.4.从bks证书库中导出证书
keytool -exportcert -alias myalas1 -file myalas1.cer -keystore ./mytrustcerts.bks -storepass 'xxxxxx' -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider
2.5.从bks证书库中删除指定别名证书
keytool -delete -alias jianshu1 -keystore ./mytrustcerts.bks -storepass 'xxxxxx' -storepass 'xxxxxx' -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider
网友评论