【前言】这里介绍在spring boot中配置真正的ssl证书,而不是自己随便玩玩的那种证书。
【申请证书】以COMODO申请证书为例:
- 首先在服务上用openssl生成公钥和私钥
openssl req -new -key myPrivateKey.key -out server.csr
myPrivateKey.key自己保存,server.csr提交给代理商进行签名,代理商签名完成后会给出 yourDomain.crt文件
- 注意我们是在Java环境中,常用的证书形式有p12格式的,jks格式的,所以需要做转换,以p12为例:
openssl pkcs12 -export -clcerts -in yourDomain.crt -inkey myPrivateKey.key -out server.p12
这样生成了spring boot上可以用的私钥格式文件 server.p12
在这个转换的过程中要求输入一个密码,请记住这个密码
【配置spring boot】
- 首先用命令查询一下别名
keytool -list -keystore server.p12
运行该命令会提示你输入密码,就是上面设置的密码,输入密码后会显示:
您的密钥库包含 1 个条目
1, 2017-1-7, PrivateKeyEntry
注意这个1这是我们运行这个命令的目的
- 把server.p12复制到spring boot的 src/main/resources/ 目录下,和application.properties平级
- 在application.properties中添加如下内容
server.port=8443
server.ssl.key-store:classpath:server.p12
server.ssl.key-store-password: 密码
server.ssl.keyStoreType: PKCS12
server.ssl.keyAlias: 1
8443是端口号
classpath就是指目录 src/main/resources/ ,注意冒号,跟上秘钥文件名
密码就是上面输入过的密码内容
我们用的p12是PKCS12
别名,1,privateKey都是1
【结语】直接在springboot里面配置是为了应对简单的服务,真正的系统会在nginx上配置证书。