创建秘钥库(keystore),秘钥库是存储一个或多个密钥条目的文件,每个密钥条目应该以一个别名标识,它包含密钥和证书相关信息。
keytool -genkey -alias server -keyalg RSA -keypass 123456 -keystore ~/ssl/tomcat.jks [-storetype JKS] -storepass 123456 -validity 3650 -dname "CN=localhost" -ext SAN=ip:127.0.0.1
keytool -genkey -alias client -keyalg RSA -keypass 123456 -keystore ~/ssl/client.p12 -storetype PKCS12 -storepass 123456 -validity 3650 -dname "CN=client"
此证书文件不包含私钥;分为自签名证书和认证证书,下面分别介绍了两中证书的生成方式
自签名证书没有经过证书认证机构进行认证,但并不影响使用,我们可以使用相应的命令对证书进行导出;
keytool -export -alias server -keystore ~/ssl/tomcat.jks -storepass 123456 -file ~/ssl/server.cer
keytool -export -alias client -keystore ~/ssl/client.p12 -storepass 123456 -file ~/ssl/client.cer -rfc
如果想得到证书认证机构的认证,则不使用上述的自签名证书,需要使用步骤导出数字证书并签发申请(Cerificate Signing Request),经证书认证机构认证并颁发后,再将认证后的证书导入本地密钥库与信任库。
keytool -certreq -alias server -keystore ~/ssl/tomcat.jks -storepass 123456 -file ~/ssl/certreq.csr
keytool -printcertreq -file certreq.csr
双向认证: 将各自的公钥证书分别导入对方的信任库,使客户端和服务端相互信任。
keytool -import -alias clientCert -keystore ~/ssl/truststore.jks -storepass 123456 -file ~/ssl/client.cer此步骤会生成信任证书 truststore.jks文件, 文件存放需要信任的公钥证书,如客户端证书(也可以将 keystore值改为服务器密钥库,即tomcat.jks。此时的tomcat.jks 就同时是服务的密钥库和信任库)
keytool -printcert -file ~/ssl/client.cer [-v|-rfc]
keytool -list -keystore ~/ssl/tomcat.jks -storepass 123456 -v
keytool -list -keystore ~/ssl/tomcat.jks -storepass 123456 -rfc
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |