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