Https证书生成步骤

2018-07-10  本文已影响111人  9dfaf364d57f

目录:
1、生成密钥
2、签发证书
3、生成安卓使用的证书集bks(cer转bks)
4、jks转bks(双向校验需要)
5、cer转jks(tls服务器需要)

1、生成密钥

生成密钥(即jks文件),此处的代码是为了生成一个“zinc_server.jks”的密钥。

keytool -genkey -alias zinc_server -keyalg RSA -keystore zinc_server.jks -validity 3600 -storepass 123456

参数说明:

在没有指定生成位置的情况下,keystore会存在用户系统默认目录,如:对于window xp系统,会生成在系统的C:/Documents and Settings/UserName/文件名为“.keystore”

更多的参数:

例如: "CN=名字与姓氏,OU=组织单位名称,O=组织名称,L=城市或区域名称,ST=州或省份名称,C=单位的两字母国家代码"

keytool -list -keystore 指定keystore -storepass 密码
keytool -list -v -keystore 指定keystore -storepass 密码
keytool -export -alias 需要导出的别名 -keystore 指定keystore -file 指定导出的证书位置及证书名称 -storepass 密码
keytool -delete -alias 指定需删除的别  -keystore 指定keystore  -storepass 密码
keytool -printcert -file zinc_server.cer(换成你的证书)
keytool -keypasswd -alias 需修改的别名 -keypass 旧密码 -new  新密码  -storepass keystore密码  -keystore sage
keytool -storepasswd -keystore 需修改口令的keystore -storepass 原始密码 -new 新密码
keytool -import -alias 指定导入条目的别名 -keystore 指定keystore -file 需导入的证书

2、签发证书

这里使用了第1小节的zinc_server.jks密钥进行签发zinc_server.cer证书

keytool -export -alias zinc_server -file zinc_server.cer  -keystore zinc_server.jks  -storepass 123456 

3、生成安卓使用的证书集bks

在安卓中需要使用bks格式的证书集,所以在安卓中使用的话还需要将第2小节生成的证书进行转换。使用的如下命令

keytool -importcert -file zinc_server.cer -keystore zinc_server.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider

敲黑板啦!!!使用了如上命令,有可能你会遇到找不到BouncyCastleProvider这个类的异常,这个时候你需要稍微配置下环境(不难哦,千万不要放弃!)。

进入到bouncycastle官网下载自己对应的jdk的版本。将下载好的jar包放到你的jdk安装的路径下/Contents/Home/jre/lib/ext,重新再试一次即可。

4、jks转bks

这一小节的内容,是因为有些app需要进行双向校验,需要将客户端的密钥放在app中。
需要借助一个工具进行

上一篇下一篇

猜你喜欢

热点阅读