springboot配置https

目录

  1.背景介绍

  2.配置https

背景介绍

  要在本地环境中验证线上https的问题,需要搭建https的环境。

配置https

1、生成SSL证书

  自己通过keytool生成,这里作为演示,采用keytool生成,实际项目中大部分采用的都是购买的方式。

  Keytool是java提供的证书生成工具,如果配置了java_home的,直接就可以在控制台进行生成了,这里演示使用的是window的dos窗口:

  (1)打开dos窗口:在jdk的bin目录中打开dos窗口

  (2)输入如下命令:

keytool -genkey -alias tomcat -dname "CN=Andy,OU=kfit,O=kfit,L=HaiDian,ST=BeiJing,C=CN" -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 365

  这时候在目录中会生成keystore.p12文件,请将在上一步生成的证书放到src/main/resources目录下

2、Spring Boot中启用HTTPS

  默认情况下Spring Boot内嵌的Tomcat服务器会在8080端口启动HTTP服务,Spring Boot允许在application.properties中配置HTTP或HTTPS,但是不可同时配置,如果两个都启动,至少有一个要以编程的方式配置。

server:
  ssl:
    key-store: classpath:keystore.p12
    key-alias: tomcat
    key-store-type: PKCS12
    enabled: true
    key-store-password: test123456
  port: 443

 3、启动加载证书遇到的问题

  DerInputStream.getLength(): lengthTag=111, too big异常

  这是因为maven在打包文件的时候对证书做了处理,需要添加maven配置。

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.4.3</version>
    <configuration>
        <encoding>utf-8</encoding>
        <useDefaultDelimiters>true</useDefaultDelimiters>
        <nonFilteredFileExtensions>
          <nonFilteredFileExtension>p12</nonFilteredFileExtension>
       </nonFilteredFileExtensions>
    </configuration>
</plugin>

 

   参考文章:https://zhuanlan.zhihu.com/p/31385073

 

posted @ 2021-09-07 11:31  meow_world  阅读(861)  评论(0)    收藏  举报