主体角色又三个:客户端、服务端、以及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),点击【下一步】:

然后按提示操作,即可完成转换。