springboot 同时启用http/https的配置方法

作者:路过君_P 时间:2023-06-22 12:04:12 

1. 启用HTTPS

修改配置

application.yml


server:
# port: 80
 port: 443
 ssl:
   enabled: true
   key-store: /key_store.jks
   key-store-password: key_store_pwd

2. 添加http协议连接器

增加JAVA配置


@Bean
public ServletWebServerFactory servletWebServerFactory() {
   TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
   Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL);
   connector.setPort(80);
   tomcat.addAdditionalTomcatConnectors(connector);
   return tomcat;
}

扩展知识点:springboot如何配置,同时支持https和http

使用jdk自带的keytools创建证书


keytool -genkey -alias tomcat -keyalg RSA -keystore ./server.keystore

按照提示完成操作

输入密钥库口令:123456
再次输入新口令:123456
您的名字与姓氏是什么?
  [Unknown]:  kaibowang
您的组织单位名称是什么?
  [Unknown]:  yuxuelian
您的组织名称是什么?
  [Unknown]:  yuxuelian
您所在的城市或区域名称是什么?
  [Unknown]:  chengdu
您所在的省/市/自治区名称是什么?
  [Unknown]:  chengdushi
该单位的双字母国家/地区代码是什么?
  [Unknown]:  china
CN=kaibowang, OU=yuxuelian, O=yuxuelian, L=chengdu, ST=chengdushi, C=china是否正确?
  [否]:  y

输入 <tomcat> 的密钥口令
        (如果和密钥库口令相同, 按回车):
再次输入新口令:

Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore C:\Users\Administrator\.keystore -destkeystore C:\Users\Administrator\.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。

创建完成后,可在用户根目录查看生成的keystore文件

将生成的keystore文件复制到项目的根目录下

springboot 同时启用http/https的配置方法

在application.yml中添加配置


server:
 port: 443
 ssl:
   key-store: server.keystore
   key-store-password: 生成server.keystore时输入的密码
   key-alias: tomcat
   key-store-type: JKS

在application启动文件中添加配置


package com.cisdi.info.simple;

import org.apache.catalina.connector.Connector;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Bean;

/**
*
* @author CISDI
* @date 2018/04/27
*/
@SpringBootApplication(scanBasePackages = {"com.cisdi.info.simple.*"}, exclude = {SecurityAutoConfiguration.class})
@EntityScan("com.cisdi.info.simple.*")
@EnableDiscoveryClient(autoRegister = false)
public class Application {

public static void main(String[] args) {
       SpringApplication.run(Application.class, args);
   }

//配置http
   @Bean
   public ServletWebServerFactory servletContainer() {
       TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
       tomcat.addAdditionalTomcatConnectors(createStandardConnector()); // 添加http
        return tomcat;
   }

private Connector createStandardConnector() {
       Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
       connector.setPort(8080);
       return connector;
   }

}

完成配置

来源:https://blog.csdn.net/zhoudingding/article/details/116708737

标签:springboot,http,https
0
投稿

猜你喜欢

  • Spark Streaming算子开发实例

    2023-03-17 02:28:41
  • Android studio报错:The emulator process for AVD (xxx) was killed

    2023-09-19 02:33:23
  • Maven项目部署到服务器设置访问路径以及配置虚拟目录的方法

    2023-12-04 02:12:12
  • Java超详细讲解设计模式中的命令模式

    2023-07-26 15:23:11
  • C#基于时间轮调度实现延迟任务详解

    2023-07-06 08:00:49
  • 基于JavaMail实现邮件发送

    2022-06-21 02:28:06
  • C#单例模式与多线程用法介绍

    2023-03-25 09:36:07
  • Java C++题解leetcode字符串轮转KMP算法详解

    2023-05-30 11:28:49
  • Redis原子计数器incr,防止并发请求操作

    2021-07-03 13:35:15
  • 当Mybatis遇上目录树超全完美解决方案

    2021-09-28 16:21:13
  • 在IDEA里gradle配置和使用的方法步骤

    2023-11-23 16:07:58
  • Android 将网络的Url资源转换为Drawable资源方式

    2023-06-23 03:06:19
  • java Springboot实现教务管理系统

    2023-01-18 00:28:12
  • Android虚拟机与类加载机制详情

    2022-12-16 20:09:03
  • C语言 奇偶排序算法详解及实例代码

    2023-04-17 04:47:39
  • C#中线程同步对象的方法分析

    2021-06-06 05:43:46
  • SpringBoot集成Swagger2的方法

    2023-11-26 13:15:42
  • C++ 中二分查找递归非递归实现并分析

    2023-06-19 06:51:31
  • 基于Java编写串口通信工具

    2022-11-30 09:25:34
  • java使用jaxb操作xml示例

    2023-11-05 15:02:18
  • asp之家 软件编程 m.aspxhome.com