可参考以下密钥生成脚本,根据实际情况做必要的修改,其中需要注意的是:服务端的密钥库参数“CN”必须与服务端的IP地址相同,否则会报错,客户端的任意。
1、生成服务器证书库
keytool -validity 365 -genkey -v -alias server -keyalg RSA -keystore E:\zddssl\server.keystore -dname "CN=192.168.0.7,OU=icesoft,O=icesoft,L=Haidian,ST=Beijing,c=cn" -storepass 123456 -keypass 123456
2、生成客户端证书库
keytool -validity 365 -genkeypair -v -alias client -keyalg RSA -storetype PKCS12 -keystore E:\zddssl\zddclient.p12 -dname "CN=client,OU=icesoft,O=icesoft,L=Haidian,ST=Beijing,c=cn" -storepass 123456 -keypass 123456
3、从客户端证书库中导出客户端证书
keytool -export -v -alias client -keystore E:\zddssl\zddclient.p12 -storetype PKCS12 -storepass 123456 -rfc -file E:\zddssl\client.cer
4、从服务器证书库中导出服务器证书
keytool -export -v -alias server -keystore E:\zddssl\server.keystore -storepass 123456 -rfc -file E:\zddssl\server.cer
5、生成客户端信任证书库(由服务端证书生成的证书库)
keytool -import -v -alias server -file E:\zddssl\server.cer -keystore E:\zddssl\client.truststore -storepass 123456
注意:Android客户端得生成.bks格式
keytool -import -v -alias server -file E:\zddssl\server.cer -keystore E:\zddssl\clientbks.bks -storetype BKS -providerclass org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath E:\zddssl\bcprov-jdk16-141.jar -storepass 123456
6、将客户端证书导入到服务器证书库(使得服务器信任客户端证书)
keytool -import -v -alias client -file E:\zddssl\client.cer -keystore E:\zddssl\server.keystore -storepass 123456
7、查看证书库中的全部证书
keytool -list -keystore E:\zddssl\server.keystore -storepass 123456