Spring Boot同时开启HTTP和HTTPS服务

由于Spring Boot中通过编码开启HTTPS服务比较复杂,所以官方推荐通过编码开启HTTP服务,而通过配置开启HTTPS服务。

Spring Boot的application.yml中添加如下配置,开启HTTPS服务

server:
port: 16062
ssl:
key-store: classpath:config/test.jks
key-store-password: 123456
key-password: 123456

其中的jks证书文件可以利用JDK工具keytool.exe(JDK bin目录下)生成:

keytool -genkeypair -alias test -keyalg RSA -validity 3650 -keystore test.jks

验证上一步生成的证书:

keytool -list -v -keystore test.jks

导出公钥证书(可选):

keytool -export -alias test -keystore test.jks -rfc -file test.cer

客户操作系统上配置该公钥证书为可信证书后,可消除浏览器由于无法验证私自颁发的证书真实性而产生的HTTPS警告。

Application.java中编写如下代码,开启HTTP服务

@SpringBootApplication
public class SampleTomcatTwoConnectorsApplication {

    @Bean
    public Integer port() {
        return SocketUtils.findAvailableTcpPort();
    }

    @Bean
    public EmbeddedServletContainerFactory servletContainer() {
        TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
        tomcat.addAdditionalTomcatConnectors(createStandardConnector());
        return tomcat;
    }

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

    public static void main(String[] args) throws Exception {
        SpringApplication.run(SampleTomcatTwoConnectorsApplication.class, args);
    }
}
时间: 2024-08-06 18:45:00

Spring Boot同时开启HTTP和HTTPS服务的相关文章

微服务:整合 Spring Boot Admin - 开启Security安全认证

一.前言 监控类的数据 Web 管理端最好不要设置成直接通过输入访问地址就可以访问,必须得进行用户认证才行,以保证数据的安全性.Spring Boot Admin 开启认证也可以借助于 spring-boot-starter-security. 二.代码演示 1.microservice-monitor-server -> pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmln

spring boot: @EnableScheduling开启计划任务支持,@Scheduled计划任务声明

spring boot: @EnableScheduling开启计划任务支持, @Scheduled计划任务声明 1 package ch2.scheduler2; 2 3 //日期转换方式 4 import java.text.SimpleDateFormat; 5 import java.util.Date; 6 7 //计划任务声明 8 import org.springframework.scheduling.annotation.Scheduled; 9 //spring组件注解 10

使用Ratpack和Spring Boot打造高性能的JVM微服务应用

使用Ratpack和Spring Boot打造高性能的JVM微服务应用 这是我为InfoQ翻译的文章,原文地址:Build High Performance JVM Microservices with Ratpack & Spring Boot,InfoQ上的中文地址:使用Ratpack与Spring Boot构建高性能JVM微服务. 在微服务天堂中Ratpack和Spring Boot是天造地设的一对.它们都是以开发者为中心的运行于JVM之上的web框架,侧重于生产率.效率以及轻量级部署.他

Spring boot构建基于rest的Web服务

一.介绍:使用Spring Boot我们可以很容易的创建一个可独立运行的Rest web服务,其中内嵌tomact,我们只需“run”就可以查看效果了. Spring Boot利用Gradle或Maven构建引入第三方库的方式,所以我么不需要去担心我们改引入哪些库,而且使用Spring Boot省去了很多繁琐的配置. 接下来,我们将用Spring Boot实现和c# mvc一样的Rest Web服务. 二.效果:经典的Hello World. 这将是我么最终的效果,毋须配置部署tomact,我们

Spring Boot工程支持HTTP和HTTPS,HTTP重定向HTTPS

本文试图以通俗易通的方式介绍Https的工作原理,不纠结具体的术语,不考证严格的流程.我相信弄懂了原理之后,到了具体操作和实现的时候,方向就不会错,然后条条大路通罗马.阅读文本需要提前大致了解对称加密.非对称加密.信息认证等密码学知识.如果你不太了解,可以阅读Erlang发明人Joe Armstrong最近写的Cryptography Tutorial.大牛出品,通俗易懂,强力推荐. Https涉及到的主体 客户端.通常是浏览器(Chrome.IE.FireFox等),也可以自己编写的各种语言的

Spring Boot 入门(四)微服务之 Config Server 统一配置中心

一.目录结构 二.pom文件 <!-- 配置服务依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency> <!-- Eureka 客户端依赖--> <dependency> <groupId&

spring boot 集成 Apache CXF 调用 .NET 服务端 WebService

1. pom.xml加入 cxf 的依赖 <!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-frontend-jaxws --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>2.7.18&l

spring boot之支持http和https并行(http不跳转)

首先需要去做个证书 yml配置文件中设置的是https监听端口 server: port: 10007 tomcat: basedir: /data/apps/temp #配置SSL ssl: key-store: classpath:bdcourtyard.com.jks key-store-password: 4a98pp121wv keyStoreType: JKS 以下是启动类添加的代码 /** * it's for set http url auto change to https *

spring boot 1.x nginx前置https配置及注意点

首先参考nginx配置https并强制http自动跳转到https配置nginx的https证书. 然后在application.properties中加上属性如下: server.tomcat.remote_ip_header=x-forwarded-for server.tomcat.protocol_header=x-forwarded-proto server.tomcat.port-header=X-Forwarded-Port server.use-forward-headers=t