springboot本地生成ssl证书使用https访问(亲测可用)

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同时访问,文档后续更新

猜你喜欢

转载自blog.csdn.net/weixin_43401380/article/details/110695667