Springboot设置Https

1、修改配置文件application.yml,并将*.jks放到resource目录下。

bash 复制代码
server:
  port: 8080
  ssl:
    key-store: classpath:*.jks
    key-store-password: *
    key-store-type: JKS
    enabled: true
    key-alias: boe.com.cn

2、添加http转https的配置

java 复制代码
@Configuration
public class TomcatConfig {
    @Bean
    public TomcatServletWebServerFactory servletContainer() {
        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint constraint = new SecurityConstraint();
                constraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                constraint.addCollection(collection);
                context.addConstraint(constraint);
            }
        };
        tomcat.addAdditionalTomcatConnectors(httpConnector());
        return tomcat;
    }

    @Bean
    public Connector httpConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        //Connector监听的http的端口号
        connector.setPort(8082);
        connector.setSecure(false);
        //监听到http的端口号后转向到的https的端口号
        connector.setRedirectPort(8080);
        return connector;
    }
}

3、修改pom.xml文件

一般到上一步,本地运行没有什么问题,但是打包会有问题。

xml 复制代码
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.1.0</version>
    <configuration>
        <nonFilteredFileExtensions>
            <!-- 过滤后缀为jks的证书文件 -->
            <nonFilteredFileExtension>jks</nonFilteredFileExtension>
        </nonFilteredFileExtensions>
    </configuration>
</plugin>

此时打包应该没有问题,但是部署时可能会出现端口问题,如果出现就添加一下代码

xml 复制代码
<resource>
  <directory>src/main/resources</directory>
  <filtering>true</filtering>
  <excludes>
      <!-- 替换成自己的证书文件 -->
      <exclude>*.jks</exclude>
  </excludes>
</resource>
<resource>
  <directory>src/main/resources</directory>
  <filtering>false</filtering>
  <includes>
      <!-- 替换成自己的证书文件 -->
      <include>*.jks</include>
  </includes>
</resource>

另外,如果还有问题,就很可能是端口问题,8090这个端口配置一直不成功,换成8080就好了。

相关推荐
万物智能36 分钟前
SARADC模数转换—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
前端·后端
花间相见44 分钟前
【后端开发|网络编程】—— 五种实时通信方案全解析:短轮询、长轮询、SSE、MQTT、WebSocket
后端·网络协议
VXbishe1 小时前
【课程设计】基于SpringBoot的乡村政务服务系统的设计与实现-计算机毕设77011
javascript·vue.js·spring boot·python·php·课程设计·政务
坤岭1 小时前
LLM应用安全护栏实战
后端
程序猿阿越1 小时前
containerd如何创建Pod
后端·kubernetes·源码阅读
名字还没想好☜1 小时前
Python sqlite3 实战:事务提交、参数化防注入、WAL 并发与 row_factory 取字典
后端·python·编程语言
花间相见1 小时前
【AI应用开发|Agent记忆】—— Codex 与 Claude Code 持久化记忆对比:两条不用向量库的路线
后端·agent
葡萄城技术团队1 小时前
GcExcel V9.2 新特性揭秘:公式对象的无损往返
后端
蜗牛互联网1 小时前
Claude放宽生命科学限制:代价是验证、分级和30天留存
java·人工智能·后端
上进小菜猪1 小时前
被 32 位整数卡了 30 年脖子:PostgreSQL 事务号困局与 V9 的 64 位解法
后端