jks bks 等的定义 如何将jks转化为bks的
2016-04-19 13:16
387 查看
接着上一篇,文中提到的android不和java一样识别jks,所以我们要将其转化成bks这里面我们就系统的介绍下到底该如何去生成jks,bks等等
常用的证书密钥库格式:
BKS来自BouncyCastleProvider,它使用的也是TripleDES来保护密钥库中的Key,它能够防止证书库被不小心修改(Keystore的keyentry改掉1个bit都会产生错误),BKS能够跟JKS互操作。
JKS和JCEKS是Java密钥库(KeyStore)的两种比较常见类型,JKS的Provider是SUN,在每个版本的JDK中都有,JCEKS的Provider是SUNJCE,1.4后我们都能够直接使用它。
JCEKS在安全级别上要比JKS强,使用的Provider是JCEKS(推荐),尤其在保护KeyStore中的私钥上(使用TripleDES)
PFX(PKCS#12)是公钥加密标准,它规定了可包含所有私钥、公钥和证书。其以二进制格式存储,在windows中可以直接导入到密钥区,注意,PKCS#12的密钥库保护密码同时也用于保护Key。
UBER
比较特别,当密码是通过命令行提供的时候,它只能跟keytool交互。整个keystore是通过PBE/SHA1/Twofish加密,因此 keystore能够防止被误改、察看以及校验。SunJDK允许你在不提供密码的情况下直接加载一个Keystore,类似cacerts,UBER不 允许这种情况。
[java] view
plain copy
keytool -genkey -alias test -keystore test.jks
plain copy
keytool -exportcert -alias test -file test.cer -keystore test.jks
3.1 下载 bcprov-ext-jdk15on-146.jar
可以选择到官网,注意,用最新的149版本的会有证书版本号不对的异常,改用146的则没有这个问题
3.2 配置bcprov
在 jdk_home\jre\lib\security\目录中找到 java.security 在内容增加一行(数字可以自己定义)
[java] view
plain copy
security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider
3.3 如是JDK1.6则下载bcprov-jdk16-141.jar,且将该文件放到jdk1.6.0_03\jre\lib\ext目录下
3.4 生成android平台的证书
[java] view
plain copy
keytool -importcert -keystore test.bks -file test.cert -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider
keytool -genkey -alias <别名> -keypass <密钥口令> -keyalg RSA -keysize 1024 -validity 365 -keystore <库文件名>
例如:keytool -genkey -alias test -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore test.bks
会在c盘的portecle-1.9文件夹下生成一个test.bks 的文件
常用的证书密钥库格式:
BKS来自BouncyCastleProvider,它使用的也是TripleDES来保护密钥库中的Key,它能够防止证书库被不小心修改(Keystore的keyentry改掉1个bit都会产生错误),BKS能够跟JKS互操作。
JKS和JCEKS是Java密钥库(KeyStore)的两种比较常见类型,JKS的Provider是SUN,在每个版本的JDK中都有,JCEKS的Provider是SUNJCE,1.4后我们都能够直接使用它。
JCEKS在安全级别上要比JKS强,使用的Provider是JCEKS(推荐),尤其在保护KeyStore中的私钥上(使用TripleDES)
PFX(PKCS#12)是公钥加密标准,它规定了可包含所有私钥、公钥和证书。其以二进制格式存储,在windows中可以直接导入到密钥区,注意,PKCS#12的密钥库保护密码同时也用于保护Key。
UBER
比较特别,当密码是通过命令行提供的时候,它只能跟keytool交互。整个keystore是通过PBE/SHA1/Twofish加密,因此 keystore能够防止被误改、察看以及校验。SunJDK允许你在不提供密码的情况下直接加载一个Keystore,类似cacerts,UBER不 允许这种情况。
方法一
1生成服务器端的证书jks证书
[java] viewplain copy
keytool -genkey -alias test -keystore test.jks
2用来生成客户端的验证cer证书
[java] viewplain copy
keytool -exportcert -alias test -file test.cer -keystore test.jks
3生成android端的.bks证书
因为Android 要求要BC证书,而Java的keytool本身不提供BKS格式,因此要自己手动配置。个人在配置的过程到了文件正在使用中,保存失败的情况,我的做法是将文件备份一下,用unlocker删除后将修改好备份放到原位置就好了。3.1 下载 bcprov-ext-jdk15on-146.jar
可以选择到官网,注意,用最新的149版本的会有证书版本号不对的异常,改用146的则没有这个问题
3.2 配置bcprov
在 jdk_home\jre\lib\security\目录中找到 java.security 在内容增加一行(数字可以自己定义)
[java] view
plain copy
security.provider.11=org.bouncycastle.jce.provider.BouncyCastleProvider
3.3 如是JDK1.6则下载bcprov-jdk16-141.jar,且将该文件放到jdk1.6.0_03\jre\lib\ext目录下
3.4 生成android平台的证书
[java] view
plain copy
keytool -importcert -keystore test.bks -file test.cert -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider
方法二:直接生成android的bks证书:
生成BKS的则需要下载BC库,如:是JDK1.6则下载bcprov-jdk16-141.jar,且将该文件放到jdk1.6.0_03\jre\lib\ext目录下,然后运行以下命令即可以生成BKS的证书库和相应的证书。keytool -genkey -alias <别名> -keypass <密钥口令> -keyalg RSA -keysize 1024 -validity 365 -keystore <库文件名>
例如:keytool -genkey -alias test -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore test.bks
会在c盘的portecle-1.9文件夹下生成一个test.bks 的文件
相关文章推荐
- 操作系统overview
- poj-2342 Anniversary party(树形DP入门)
- Spring中的设计模式-适配器模式
- iOS测试工具和调试技巧以及内测发布平台总结
- 两段代码告诉你xml中 @+id 与 @id 的区别
- MySQL—SQL优化
- Java实现:数据结构之排序
- web开发-服务器Controller到前端中的数据传递
- c3p0、dbcp、tomcat jdbc pool 连接池区别(推荐使用jdbc pool)
- Spearman's rank correlation coefficient 和 Pearson correlation coefficient详细
- PopupWindow的使用方法
- ThinkPad T440p如何默认F1~F12键
- Android数据库框架-Archiver(LiteOrm)的使用
- 1013&&1014 A strange lift
- DeviceIOControl详解-各个击破
- Oracle Hint的用法
- 让PS可以保存为ICO格式
- 仙剑三-诉衷情.旖旎情
- LeetCode 305. Number of Islands II(小岛)
- 在Ubuntu的系统中怎样将应用程序加入到開始菜单中