1:JDK生成自签证书SSL,首先以管理员身份运行CMD窗口,执行命令
keytool -genkey -alias testhttps -keyalg RSA -keysize 2048 -validity 36500 -keystore "F:/ssl/testhttps.keystore"
F:\ ssl> keytool -genkey -alias testhttps -keyalg RSA -keysize 2048 -validity 36500 -keystore "F:/ssl/testhttps.keystore"
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
[ Unknown] : hdx
您的组织单位名称是什么?
[ Unknown] : hdx
您的组织名称是什么?
[ Unknown] : hdx
您所在的城市或区域名称是什么?
[ Unknown] : gz
您所在的省/市/自治区名称是什么?
[ Unknown] : gd
该单位的双字母国家/地区代码是什么?
[ Unknown] : CN
CN = hdx, OU = hdx, O = hdx, L = gz, ST = gd, C = CN是否正确?
[ 否] : 是
输入 < testhttps> 的密钥口令
( 如果和密钥库口令相同, 按回车) :
再次输入新口令:
F:\ ssl>
2:在相应的目录生成testhttps.keystore文件
3:springboot 中项目配置证书,将 testhttps.keystore 文件放入 /resource 目录下
4:application.yml 配置文件中添加ssl 相关配置
server :
port : 8989
servlet :
context-path : /test
ssl :
key-store : classpath: testhttps.keystore
key-alias : testhttps
key-store-password : 123456
key-store-type : JKS
enabled : true
5:访问路径https://localhost:8989/test
注意:jeecgboot项目的ssl证书testhttps.keystore 放在resource目录下不生效,放在resource下,启动报如下错误,特别坑,跟着源码根本找不出来,也不提示找不到testhttps.keystore文件
解决方法,将testhttps.keystore放在和执行jar报同目录,类似项目根目录下,根据具体情况定,修改yml配置如下,如果放的证书位置不对,会有提示
server :
port : 8989
servlet :
context-path : /test
ssl :
key-store : testhttps.keystore
key-alias : testhttps
key-store-password : 123456
key-store-type : JKS
enabled : true