一 Java keytool生成双向认证证书的命令
1 生成服务端证书(该证书包含了私钥)--加密方使用
keytool -validity 3650 -genkey -v -alias server -keyalg RSA -keystore D:\project\cert\sslserver.keystore -dname "CN=silu,OU=silu,O=silu,L=Haidian,ST=Beijing,c=cn" -storepass 123456 -keypass 123456
说明:-genkey 命令可以指定keystore的类型 如 -storetype PKCS12,如果不指定storetype的类型,则生成文件的类型为JKS.
2 生成客户端证书(该证书包含了私钥)--加密方使用
keytool -validity 3650 -genkey -v -alias client -keyalg RSA -storetype PKCS12 -keystore D:\project\cert\sslclient.keystore -dname "CN=silu,OU=silu,O=silu,L=Haidian,ST=Beijing,c=cn" -storepass 123456 -keypass 123456
3 导出客户端证书对应的公钥—含有明文的证书
keytool -export -v -alias client -keystore D:\project\cert\sslclient.keystore -storetype PKCS12 -storepass 123456 -rfc -file D:\project\cert\sslclient.cer
4 导出服务端证书对应的公钥—含有明文的证书
keytool -export -v -alias server -keystore D:\project\cert\sslserver.keystore -storepass 123456 -rfc -file D:\project\cert\sslserver.cer
5 生成客户端使用的服务端信任库(由服务端的明文证书导出)
keytool -import -v -alias server -file D:\project\cert\sslserver.cer -keystore D:\project\cert\sslserver_trust.keystore -storepass 123456
6 生成服务端使用的客户端证书(由客户端的明文证书导出)
keytool -import -v -alias client -file D:\project\cert\sslclient.cer -keystore D:\project\cert\sslclient_trust.keystore -storepass 123456
说明,采用keytool生成的类型为JKS