一个秘钥库生成多个证书.
- 创建CA证书,用于生成客户端服务端证书.
keytool -genkey -alias root -keyalg RSA -keystore root.jks
- 生成客户端证书
keytool -export -alias -file client.cer -keystore root.jks
- 生成服务端证书.
keytool -export -alias -file server.cer -keystore root.jks
秘钥库,彼此签发证书给对方.
- 新建两个秘钥库
keytool -genkey -alias clientStore -keyalg RSA -keystore clientStore.jks
keytool -genkey -alias serverStore -keyalg RSA -keystore serverStore.jks
2.两个秘钥库分别生成证书请求文件
keytool -certreq -file client.csr -alias clientStore -keystore clientStore.jks
keytool -certreq -file server.csr -alias serverStore -keystore serverStore.jks
3.签发证书
keytool -gencert -infile server.csr -outfile server.cer -alias clientStore -keystore clientStore.jks
keytool -gencert -infile client.csr -outfile client.cer -alias serverStore -keystore serverStore.jks
4.将签发好的证书加入自己的秘钥库
keytool -import -keystore clientStore.jks -file client.cer -alias client
keytool -import -keystore clientStore.jks -file server.cer -alias server
keytool -import -keystore serverStore.jks -file client.cer -alias client
keytool -import -keystore serverStore.jks -file server.cer -alias server
- (额外),如果需要导入整个秘钥库
//将clinet密钥库导入到服务秘钥库
keytool -importkeystore -srckeystore clientStore.jks -destkeystore serverStore.jks
keytool -importkeystore -srckeystore serverStore.jks -destkeystore clientStore.jks
两个秘钥库,彼此授信对面的证书.
- 如果是服务端秘钥库要与客户端秘钥库不一致.则分别生成客户端服务端证书.
keytool -genkey -alias client -keyalg RSA -keystore client.jks
keytool -genkey -alias server -keyalg RSA -keystore server.jks
- 分别生成证书文件
keytool -export -alias -file client.cer -keystore client.jks
keytool -export -alias -file server.cer -keystore server.jks
3.秘钥库相互授信
keytool -import -v -trustcacerts -alias client -file client.cer -keystore server.jks
keytool -import -v -trustcacerts -alias server-file server.cer -keystore client.jks
第三方认证证书
- 本地的秘钥库生成请求认证的.csr文件,将该文件提交给第三方.第三方会给一个.cer的证书.
//生成秘钥库
keytool -genkey -alias clientkeystore -keyalg RSA -keystore root.jks
//生成csr
keytool -keystore clientkeystore -certreq -alias client -keyalg rsa -file client.csr
- 将第三方给的cer文件加入自己的秘钥库
keytool -import -keystore clientkeystore -file client.cer -alias client