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文件复制到项目的根目录下
在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


猜你喜欢
- 很早以前为了快速达到效果,使用轮询实现了在线聊天功能,后来无意接触了socket,关于socket我的理解是进程间通信,首先要有服务器跟客户
- 本文演示android中图片加载到内存首先设计界面:代码如下:<LinearLayout xmlns:android="ht
- 今天弄了一个多小时,写了一个GPS获取地理位置代码的小例子,包括参考了网上的一些代码,并且对代码进行了一些修改,希望对大家的帮助。具体代码如
- 引言什么是Parser CombinatorParser Combinator是函数式语言中的概念,它是一种通过组合小型解析器来构建复杂解析
- http无状态协议的解决:HTTP 是一种无状态协议。 无状态协议不要求服务器在多次请求期间保留有关每个用户的信息或状态。但是某些 Web
- 前言在springboot项目中只需一句代码即可实现多个数据源之间的切换:// 切换sqlserver数据源:DataSourceConte
- 本文实例讲述了C#设计模式之ChainOfResponsibility职责链模式解决真假美猴王问题。分享给大家供大家参考,具体如下:一、理论
- 1. Collection是集合类的一个顶级接口,其直接继承接口有List与Set。Collection
- 本文实例为大家分享了Android使用AIDL方式实现播放音乐的具体代码,供大家参考,具体内容如下思路:① 新建两个APP项目或者Modul
- Android 实现全屏显示的几种方法整理A、设置主题实现全屏直接在AndroidManifest.xml文件中设定Activity主题为全
- 效果图一、绘制圆环圆环故名思意,第一个首先绘制是圆环1:圆环绘制函数圆环APIpublic void drawArc (RectF oval
- 因为公司业务需求,需要在Windows系统下调用摄像头识别二维码需求,就有了这个功能。我根据网上网友提供的一些资料,自己整合应用到项目中,效
- 大家真正在工作中开发 java 应用都会使用eclipse,myeclipse, IntelliJ等等不过依然值得花10分钟学习如何使用最原
- 字符串的操作是C#程序设计中十分重要的一个组成部分,本文就以实例形式展现了C#实现移除字符串末尾指定字符的方法。相信对大家学习C#程序设计有
- Android UI中TextView的使用方法一、TextView不同区域设置颜色,大小、点击事件String msg = getReso
- 写在前面项目中直接引用或者直接编译源码得到的ijkplayer在播放mkv文件时出现(-10000)的错误,去项目github查看了才知道,
- 1、结合字节码指令理解Java虚拟机栈和栈帧栈帧:每个栈帧对应一个被调用的方法,可以理解为一个方法的运行空间。每个栈帧中包括局部变量表(Lo
- 前言Genymotion 来自于 AndroVM 这个开源项目,基于 x86 和 VirtualBox,支持 OpenGL 加速,可以用于
- 作为java中的一个重要理念,说起面向对象也是老生常谈了。在找资料的时候多是很专业的术语,又或者很多框架的知识点合集,其实大部分人刚看资料的
- 题目一??解法/** * Definition for singly-linked list. * public class ListNod