springboot tls证书申请

22 阅读2分钟
1.创建根证书私钥:

openssl genrsa -out root.key 1024

2.创建根证书请求文件:

openssl req -new -out root.csr -key root.key

3.创建根证书:

openssl x509 -req -in root.csr -out root.crt -signkey root.key -CAcreateserial -days 3650

这个步骤会生成3个文件:

root.key

root.csr

root.crt

字段解读

C字段:Country,单位所在国家,为两位数的国家缩写,如:CN 表示中国;

ST 字段:State/Province,单位所在州或省;

L 字段:Locality,单位所在城市/或县区;

O 字段:Organization,此网站的单位名称;

OU 字段:Organization Unit,下属部门名称,也常常用于显示其他证书相关信息,如证书类型,证书产品名称或身份验证类型或验证内容等;

CN 字段:Common Name,网站的域名;

二、生成自签名服务器端证书

1.生成服务器端证书私钥:

openssl genrsa -out server.key 1024

2.生成服务器证书请求文件

openssl req -new -out server.csr -key server.key

3.生成服务器端公钥证书

--v1版本

openssl x509 -req -in server.csr -out server.crt -signkey server.key -CA root.crt -CAkey root.key -CAcreateserial -days 3650

--v3版本

openssl x509 -req -days 3650 -in server.csr -CA root.crt -CAkey root.key -CAcreateserial -out server.crt -extensions v3_req -extensions v3_ca -extfile /usr/local/ssl/openssl.conf

-extensions v3_req 指定 X.509 v3版本

-extensions v3_ca 生成CA扩展名

-extfile ./openssl.conf 指定特殊的配置文件

这个步骤会生成这2个文件:

server.key:服务器端的秘钥文件

server.crt:有效期十年的服务器端公钥证书,使用根证书和服务器端私钥文件一起生成(这个要发给对方)

三.转Java可用格式

1.转换为pkcs12格式(因为在Java中使用证书,需要转换一下格式)

openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.p12

或者

openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.pkcs12

2.pkcs12格式转JKS格式

keytool -importkeystore -srckeystore server.p12 -srcstoretype PKCS12 -deststoretype JKS -destkeystore server.jks

四、导入对方公钥证书(.crt)到密钥库

keytool -import -alias clcert -file clcert.crt -keystore server.jks

查看密钥库命令:

keytool -list -v -keystore server.jks

五、配置Spirngboot

1.把.jks文件放到resources目录下

server:

port: 5577

ssl:

enabled: true

key-store: classpath:server.jks

key-store-type: JKS

key-store-password: changeit

trust-store: classpath:server.jks

trust-store-password: changeit

trust-store-type: JKS

client-auth: need