https证书生成步骤:
1、生成密钥
生成密钥(即jks文件),此处的代码是为了生成一个“zinc_server.jks”的密钥。
-alias zinc_server -keyalg RSA -keystore zinc_server.jks -validity 3600 -storepass 123456
参数说明:
genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
alias:产生别名
keystore:指定密钥库的名称
validity:指定创建的证书有效期多少天
storepass:指定密钥库的密码(获取keystore信息所需的密码)
keyalg:指定密钥的算法(如:RSA 、DSA;如果不指定默认采用DSA)
更多的参数:
keysize:指定密钥长度
keypass:指定别名条目的密码(私钥的密码)
dname:指定证书拥有者信息
list :显示密钥库中的证书信息
keytool -list -keystore 指定keystore -storepass 密码
v:显示密钥库中的证书详细信息
keytool -list -v -keystore 指定keystore -storepass 密码
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中。
以上是https证书生成步骤的详细内容。更多信息请关注PHP中文网其他相关文章!