美文网首页
Springboot配置Https中遇到的一个小坑

Springboot配置Https中遇到的一个小坑

作者: 运维开发笔记 | 来源:发表于2020-05-23 17:32 被阅读0次

Springboot配置Https

主要说下我在配置中踩到的一个坑。

我这里有一个老的应用,之前部署在tomcat下,现在用springboot进行了重构。现在直接使用jar包部署,所以需要把之前配置在tomcat中的ssl配置一直到springboot的配置文件下。

1,找到ssl文件

之前的tomcat中的配置ssl是在server.xml中,找到对应的配置代码

 <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeystoreFile="conf/xxx.com.jks"
                         certificateKeystorePassword="我的密码"
                         certificateKeyAlias="xxx.com"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

顺藤摸瓜的找到jks文件,下载下来

2,springboot中的配置

springboot中的配置也很简单

server:
  ssl:
    key-store-type: JKS
    key-store: classpath:xxx.com.jks
    key-store-password: 我的密码

key-store指的是jks文件的放置路径,我这里是直接放在resources下面

image.png

3,启动

这样就算配置完了,简单吧,然后启动。华丽丽的报错了。棒棒的。

我们看下报错:

Caused by: java.lang.IllegalArgumentException: Invalid keystore format

说我们的文件格式不对。

但是我的这个文件在旧的网站用的好好的,经过比对,我确定文件是没问题的。

后来发现,我的原始jks文件是没有问题,但是经过maven打包之后的jks文件被改动了。


image.png

这是原始文件


image.png
这是打包中的文件,

可以看到,变成了10k。大小都变了。看来maven真的做了什么操作

4,找到原因

我的项目里,使用了maven打包时,进行多环境配置。

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <!-- 处理文件时替换文件中的变量 -->
        <filtering>true</filtering>
        <excludes>
            <!-- 打包时排除文件,可自行添加test.yml -->
            <exclude>application.yml</exclude>
            <exclude>application-dev.yml</exclude>
            <exclude>application-prod.yml</exclude>
        </excludes>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <!-- 打包时所包含得文件 -->
        <includes>
            <include>application.yml</include>
            <include>application-${profileActive}.yml</include>
        </includes>
    </resource>
</resources>

我这里设置的目录是src/main/resources。所以resources下面的所有文件会被maven打开,并按照规则做一些改动。导致了我的jks文件被破坏。

5,解决

改一下maven配置:

<resources>
    <resource>
        <directory>src/main/resources</directory>
        <!-- 处理文件时替换文件中的变量 -->
        <filtering>true</filtering>
        <excludes>
            <!-- 打包时排除文件,可自行添加test.yml -->
            <exclude>application.yml</exclude>
            <exclude>application-dev.yml</exclude>
            <exclude>application-prod.yml</exclude>
            <exclude>*.jks</exclude>
        </excludes>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <!-- 打包时所包含得文件 -->
        <includes>
            <include>application.yml</include>
            <include>application-${profileActive}.yml</include>
        </includes>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>false</filtering>
        <includes>
            <include>*.jks</include>
        </includes>
    </resource>
</resources>

加上一个,打包时不要处理jks文件的配置

解决。

总结

回头想想,这个坑应该可以很快被识别出。因为maven打包后会修改我的yml配置文件。那么按照之前的配置,也会修改我的其他文件。还是对maven打包的理解不深,那么以后要注意,如果加入其他文件到resources下也可能出现这个问题。

原文:https://mp.weixin.qq.com/s?__biz=Mzg2NTAyNTc5NQ==&mid=2247484029&idx=1&sn=d009216e9107044d9ab9ece99b80fb91&chksm=ce612811f916a1070f78873f596544c7de7e9765672f3e23d683735b0fff927af2ec73e8ffb0&token=1984938069&lang=zh_CN#rd

相关文章

  • Springboot配置Https中遇到的一个小坑

    Springboot配置Https 主要说下我在配置中踩到的一个坑。 我这里有一个老的应用,之前部署在tomcat...

  • springboot2.0集成ShardingSphere-jd

    在springboot 2.5.3中配置使用ShardingSphere 5.0-alpha遇到了不少的坑,现在总...

  • SpringBoot配置HTTPS,并实现HTTP访问自动转HT

    这里说一下为什么写这篇文章,因为我也是一个SpringBoot初学者,在配置https的时候遇到了一些坑,根据网上...

  • 2019-04-12 springboot 2.x 拦截器 过滤

    遇到个坑 在此记录 springboot 默认配置给了我们快速开发极大的便利,但是也导致配置方案几乎不可见 在自定...

  • 2019-08-17 第一周工作总结

    目录: 配置环境遇到的坑 开发规范—基础规范 工作成果 配置环境遇到的坑 配置Android Studio中需要翻...

  • 配置https ssl连接遇到的坑

    网上博客文章生成ssl证书都有两个文件 一个证书文件 一个.keystore文件 但是配了.keystore的文件...

  • SpringBoot HTTPS配置

    1、获取SSL证书 正式项目可以购买或者申请免费ssl证书,测试项目可以使用cmd自行生成ssl证书。 输入密码和...

  • springboot配置https

    1、首先需要申请ssl证书,这里选择腾讯云的 2、需要在域名进行sdn解析,这里选择了阿里云的 稍等十分钟就能搞定...

  • SpringBoot配置https

    准备证书 可以去某云服务厂商申请一个免费的。 可以利用Java自带的JDK管理工具keytool生成一个免费的ht...

  • Springboot配置https

    生成自签名证书 生成成功后将证书放到项目根目录 配置项目 配置application.properties 创建h...

网友评论

      本文标题:Springboot配置Https中遇到的一个小坑

      本文链接:https://www.haomeiwen.com/subject/xijlahtx.html