springboot使用jdk生成自签名证书

1.背景

许多生产中服务端应用系统需要ssl认证,走https访问,以满足等保要求。

有些前后端一体的项目工程,完全可以用jdk生成证书(本章节介绍此);

若是前后端分离,使用nginx代理部署的,得配置响应的证书;

生成证书的jdk版本和运行java程序的版本最好保持一致,以免出现兼容问题程序启不来:Caused by: java.io.IOException: parseAlgParameters failed: ObjectIdentifier() -- data isn't an object ID (tag = 48),我使用的是1.8.0_181

2.ssl证书三种

一般前2种比较好,但是也要花¥,还可能涉及到域名,所以客户或者业主不会购买,那么第三种就是多数选择,页面显示如下

3.证书生成

使用jdk自带的keytool工具完全可以生成p12证书,参考连接:https://www.cnblogs.com/yejiajian/p/14566455.html

1).JDK的bin自带的工具

  keytool -genkeypair -alias tomcat -keyalg RSA -keysize 2048 -validity 3650 -keystore tomcat.keystore

参数说明:alias 实体别名(包括证书私钥)

                 keyalt 采用公钥算法,默认是DSA,DSA算法对应的默认算法是sha1withDSA,不支持2048长度,故指定RSA

                 keysize 密钥长度

                 validity 有效期

                 keystore 指定keystore文件

可以看到已生成tomcat.keystore文件

2).查看keystore文件详情

  keytool -v -list -keystore tomcat.keystore

3).证书导入密钥库

  keytool -exportcert -keystore tomcat.keystore -file tomcat.cer -alias tomcat

  导入密钥库命令

  keytool -importcert -keystore client_trust.keystore -file tomcat.cer -alias tomcat -noprompt

4).导出p12证书

  keytool -importkeystore -srckeystore tomcat.keystore -destkeystore tomcat.p12 -srcalias tomcat -destalias tomcat -srcstoretype jks -deststoretype pkcs12 -noprompt

4.应用

springboot应用,配置文件application.yml

server:

  port: 8080

  ssl:

    key-store: D:\work\MIT\PIS安全\SSL\tomcat\tomcat.p12

    key-store-password: mission

    key-store-type: PKCS12

    key-alias: tomcat

配置截图:

访问http://localhost:8080会出现如下提示

使用https://localhost:8080访问,完成。

5.工程代码

GitHub - genghongsheng0/ghs_one: store my interesting code

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值