美文网首页
Https证书生成步骤

Https证书生成步骤

作者: 9dfaf364d57f | 来源:发表于2018-07-10 13:25 被阅读111次

    目录:
    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
    

    参数说明:

    • genkey 在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书

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

    • alias:产生别名
    • keystore:指定密钥库的名称
    • validity:指定创建的证书有效期多少天
    • storepass:指定密钥库的密码(获取keystore信息所需的密码)
    • keyalg:指定密钥的算法(如:RSA 、DSA;如果不指定默认采用DSA)
    更多的参数:
    • keysize:指定密钥长度
    • keypass:指定别名条目的密码(私钥的密码)
    • dname:指定证书拥有者信息

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

    • list :显示密钥库中的证书信息
    keytool -list -keystore 指定keystore -storepass 密码
    
    • v:显示密钥库中的证书详细信息
    keytool -list -v -keystore 指定keystore -storepass 密码
    
    • export:将别名指定的证书导出到文件
    keytool -export -alias 需要导出的别名 -keystore 指定keystore -file 指定导出的证书位置及证书名称 -storepass 密码
    
    • file 参数指定导出到文件的文件名
    • delete 删除密钥库中某条目
    keytool -delete -alias 指定需删除的别  -keystore 指定keystore  -storepass 密码
    
    • printcert 查看导出的证书信息
    keytool -printcert -file zinc_server.cer(换成你的证书)
    
    • keypasswd 修改密钥库中指定条目口令
    keytool -keypasswd -alias 需修改的别名 -keypass 旧密码 -new  新密码  -storepass keystore密码  -keystore sage
    
    • storepasswd 修改keystore口令
    keytool -storepasswd -keystore 需修改口令的keystore -storepass 原始密码 -new 新密码
    
    • import 将已签名数字证书导入密钥库
    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中。
    需要借助一个工具进行

    相关文章

      网友评论

          本文标题:Https证书生成步骤

          本文链接:https://www.haomeiwen.com/subject/etdfpftx.html