主体角色又三个:客户端、服务端、以及CA机构。
如下图所示:
CA机构根证书
生成CA机构私钥
openssl genrsa -out ca.key 2048
生成CA证书(注意:生成过程中需要输入一些CA机构的信息)
openssl req -x509 -new -key ca.key -out ca.crt
生成Server端证书
生成Server端的key私钥
openssl genrsa -out server.key 2048
生成Server端的csr证书请求文件(注意:生成过程中需要你输入一些服务端信息)
openssl req -new -key server.key -out server.csr #注意到这一步时的意思 Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: ##加密CA证书的密码,也要记住,可不输入 An optional company name []: ##可以不输入
使用CA证书生成Server端的crt证书
openssl x509 -req -sha256 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -out server.crt
转换成用于SpringBoot的P12证书
使用Server端的key和crt转换p12(注意:-name 后面的参数对应的是证书的alias别名)
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name "server"
把ca证书放到keystore中(非必要)
keytool -importcert -keystore server.p12 -file ca.crt
将p12证书转换成jks证书(例如jboss用到的)
keytool -importkeystore -srckeystore server.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore server.jks
将crt证书转换成cer证书
双击打开*.crt证书文件:
在证书导出向导窗口点击【下一步】,选择Base-64编码的X.509(.CER),点击【下一步】:
然后按提示操作,即可完成转换。