springBoot2.x启用https和兼容http

Posted 甲乙丙丁少

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了springBoot2.x启用https和兼容http相关的知识,希望对你有一定的参考价值。

前言
之前我嫌弃tomcat(spring)项目,开启https麻烦,所以一直都是nginx代理为https。
今儿突然不想了。
在springBoot2.x的情况下,直接开启https,并兼容http方式(ws~wss)。废话不说上代码

第一步
先到运营上申请ssl证书。
一般情况下,都会提供一年免费的。

 

 

第二步
将证书复制到spring项目下
具体如: 项目>src>main>resources>dshvv.com.jks

 

第三步
增加tomcat配置文件TomcatConfig.java

package com.dshvv.myblogserver.utils;

import org.apache.catalina.connector.Connector;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class TomcatConfig {
  // 这是spring boot 2.0.X版本的 
  @Bean
  public ServletWebServerFactory servletContainer() {
    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
    tomcat.addAdditionalTomcatConnectors(createStandardConnector()); // 添加http
    return tomcat;
  }

  // 配置http
  private Connector createStandardConnector() {
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setPort(80);
    return connector;
  }
}

 

配置文件 application.yml

server:
  port: 443
  ssl:
    enabled: true
    key-store: classpath:dshvv.com.jks
    key-store-password: 9ijmnoID
    key-store-type: JKS

 

效果
因为80和443端口我另有它用
所以我的http我设成了 7777,https则为8888。而不是默认的80和443
这个端口号随意,大家不要在意

 

以上是关于springBoot2.x启用https和兼容http的主要内容,如果未能解决你的问题,请参考以下文章

springboot2.X集成HttpClient 发送HTTPS 请求

SpringBoot2.x 整合Redis和使用Redis缓存

SpringBoot2.x集成分布式搜索引擎Elasticsearch

springboot2.x——thymeleaf引擎模板

SpringBoot2.x 集成 Spring Security

零基础快速入门SpringBoot2.0