1.本地使用jdk生成ssl证书:
jdk安装目录bin下面执行:keytool -genkey -alias tomcat -keyalg RSA -keystore testserver.keystore
testserver.keystore为自定义生成的ssl证书.
证书生成中需要填写的校验:
将生成的证书放到springboot根目录.
2.springboot项目中配置:
# ssl证书设置
server:
ssl:
enabled: true
key-store: classpath:证书所在的项目路径
key-store-password: 输入自己设置的密码
keyAlias: tomcat
keyStoreType: JKS
启动项目可能会报错:
Invalid keystore format
解决方案:
pom.xml中添加配置
<resource>
<directory>src/main/resources/config</directory>
<filtering>false</filtering>
</resource>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration><encoding>UTF-8</encoding>
<!-- 过滤后缀为pem、pfx、keystore的证书文件 -->
<nonFilteredFileExtensions>
<nonFilteredFileExtension>cer</nonFilteredFileExtension>
<nonFilteredFileExtension>pem</nonFilteredFileExtension>
<nonFilteredFileExtension>pfx</nonFilteredFileExtension>
<nonFilteredFileExtension>keystore</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
2.使用阿里云下发的ssl证书
本地生成的ssl证书是不受客户端信任的,仅做测试用,可以使用第三方下发的证书,下面说一下使用阿里云下发的证书配置.阿里云生成免费证书案例有很多不在此重述.只说一下配置问题.配置和上面配置过程基本相同,需要注意一下证书配置,注意修改keyStoreType类型以及证书所在路径以及密码.
# ssl证书设置
server:
ssl:
enabled: true
key-store: classpath:下发证书所在的路径
key-store-password: 证书所在的项目路径
keyStoreType: PKCS12
配置之后访问:https://项目域名:端口/接口 即可.
3.暂不支持同时https与http同时访问,文档后续更新