Keytool生成keystore实战

Ubuntu版本:

cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=13.10
DISTRIB_CODENAME=saucy
DISTRIB_DESCRIPTION="Ubuntu 13.10"

java -version:

java version "1.6.0_45"

1. 生成Server端密钥

Keytool –genkey –alias serverkey –keystore kserver.keystore

1. 为client端生成密钥:

创建client key

keytool -genkey -alias clientkey -keystore bksclient.keystore -storetype  BKS 
keytool error: java.security.KeyStoreException: BKS not found

错误指示keytool试图实例化一个BKS密钥存储库,但没有加密服务提供程序(CSP)能够提供这样的BKSkeystore类型是一种由BouncyCastle的CSP。 因此,有2解决方案: 与Java安装此提供商。甲骨文发布以及与Java 传递给keytool将合适的选项来指示哪个CSP应该和它的位置:

-storetype BKS                                                                                    <- keystore type
-provider org.bouncycastle.jce.provider.BouncyCastleProvider                                      <- CSP implementation
-providerpath /path/to/bouncycastle.jar                                                           <- Path to the CSP jar file

找到JAVA_HOME路径

在http://www.bouncycastle.org/latest_releases.html中下载bcprov-jdk15on-152.jar 

15on表示jdk1.5以上

将/bcprov-jdk15on-152.jar 放入JAVA_HOME/jre/lib/ext下打开JAVA_HOME/jre/lib/security下的java.security文件,在下面加上security.provider.x=org.bouncycastle.jce.provider.BouncyCastleProvider

修改之后

keytool -genkey -alias clientkey -keystore rsaclient.keystore -storetype  BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider
keytool error: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvid

不知 道是否没有生效只能死办法了

keytool -genkey -alias clientkey -keystore bksclient.keystore -storetype  BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath ./bcprov-jdk15on-152.jar 
然后填充一堆信息,成功。

这里的bcprov-jdk15on-152.jar 只提供BKS类型,不能提供RSA


BKS jar下载地址

http://www.bouncycastle.org/latest_releases.html


2. 导出证书

keytool -exportcert -alias kserverkey -keystore kserver.keystore -storetype BKS -file bksserver.crt




你可能感兴趣的:(android,Java)