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

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;
    }

}

完成配置

以上就是springboot 同时启用http/https的配置方法的详细内容,更多关于springboot启用http/https的资料请关注我们其它相关文章!

(0)

相关推荐

  • SpringBoot2.0如何启用https协议

    SpringBoot2.0之后,启用https协议的方式与1.*时有点儿不同,贴一下代码. 我的代码能够根据配置参数中的condition.http2https,确定是否启用https协议,如果启用https协议时,会将所有http协议的访问,自动转到https协议上. 一.启动程序  package com.wallimn.iteye.sp.asset; import org.apache.catalina.Context; import org.apache.catalina.connect

  • Springboot单体架构http请求转换https请求来支持微信小程序调用接口

    http请求转换https请求 1.话不多说,直接上代码! application.properties配置文件 #(密钥文件路径,也可以配置绝对路径) server.ssl.key-store= classpath:证书文件名.pfx #(密钥生成时输入的密钥库口令) server.ssl.key-store-password:123456 #(密钥类型,与密钥生成命令一致) server.ssl.key-store-type:PKCS12 证书一般最好放在resources目录下 接下来配置

  • 详解SpringBoot初始教程之Tomcat、Https配置以及Jetty优化

    1.介绍 在SpringBoot的Web项目中,默认采用的是内置Tomcat,当然也可以配置支持内置的jetty,内置有什么好处呢? 1. 方便微服务部署. 2. 方便项目启动,不需要下载Tomcat或者Jetty 在目前的公司已经把内置的Jetty部署到了线上项目中,目前来说并无太大问题,内置就算有一些性能损失,但是通过部署多台机器, 其实也能够很轻松的解决这样的问题,内置容器之后其实是方便部署和迁移的. 1.1 优化策略 针对目前的容器优化,目前来说没有太多地方,需要考虑如下几个点 线程数

  • 为SpringBoot服务添加HTTPS证书的方法

    HTTPS是HTTP的安全版本,旨在提供数据传输层安全性(TLS).当你的应用不使用HTTP协议的时候,浏览器地址栏就会出现一个不安全的提示.HTTPS加密每个数据包以安全方式进行传输,并保护敏感数据免受窃听者或黑客的攻击. 您可以通过在Web应用程序上安装SSL证书来实现HTTPS,互联网上受信任的证书通常是需要(CA)颁发的证书.为了学习目的,您也可以使用自签名证书,比如:使用Java Keytool生成自签名证书. 一.自签名证书 您可以使用位于JDK bin文件夹下的Keytool生成证

  • springboot添加https服务器的方法

    什么是https 要说https我们得先说SSL(Secure Sockets Layer,安全套接层),这是一种为网络通信提供安全及数据完整性的一种安全协议,SSL在网络传输层对网络连接进行加密.SSL协议可以分为两层:SSL记录协议(SSL Record Protocol),它建立在可靠的传输协议如TCP之上,为高层协议提供数据封装.压缩.加密等基本功能支持:SSL握手协议(SSL Handshake Protocol),它建立在SSL记录协议之上,用于在实际数据传输开始之前,通信双方进行身

  • springboot配置https访问的方法

    1.购买或本地生成ssl证书 要使用https,首先需要证书,获取证书的两种方式: 1.自己通过keytool生成 2.通过证书授权机构购买 ###### 作为演示,我们使用keytool生成: C:\Users\xxx>keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650 输入密钥库口令: 再次输入新口令: 您的名字与姓氏是什

  • SpringBoot配置https实操方法

    升级 https 记录 1.去阿里云购买证书(免费版),并提交审核资料 购买的证书 2.下载证书 下载证书 3.查看上图页面的第三步 JKS证书安装 4.在证书目录下执行阿里云提供的命令,密码都填 pfx-password.txt 中的内容(三次),会生成 your-name.jks 文件. 生成 jks 证书 此处我已改名为 any.jks 5.将 any.jks 复制到 spring boot 应用的 resources 目录下 移动证书 6.在 application.yml 中配置证书及

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

    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() { TomcatServletWebServe

  • Springboot在IDEA热部署的配置方法

    1 pom.xml文件 注:热部署功能spring-boot-1.3开始有的 <!--添加依赖--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <!-- optional=true,依赖不会传递,该项目依赖devtools:之后依赖myboot项目的项目如果想要使用d

  • SpringBoot使用Mybatis&Mybatis-plus文件映射配置方法

    简介: Springboot使用Mybatis&Mybatis-plus 两者文件映射配置略有不同,之前我用的是Mybatis,但公司用Mybatis-plus:自己新建了一个Springboot项目,代码运行时一直报错not found not found,明明配置了mybatis相关信息的扫描路径,但是就是not found:检查修改了很多地方但都是无用功,最终发现是Plus惹的祸. 1.使用Mybatis <dependency> <groupId>org.mybat

  • Linux apache实现https的配置方法

    目录 http协议: ssl(安全套接层)协议: https协议: http协议:   应用层协议,传输层使用TCP协议,默认使用80端口.http协议主要是用来是实现万维网站点资源的访问. ssl(安全套接层)协议:   全称为Secure Sockets Layer.工作与传输层和应用层之间,实现对应用层协议的网络连接进行加密. https协议:   http协议+ssl协议.默认使用tcp的443端口. https协议的工作过程: 客户端发起HTTPS请求  用户在浏览器里输入一个http

  • http自动跳转https的配置方法

    IIs中实现Http自动转换到Https方法介绍 (403跳转对SEO有一定影响) 1.根据IIS版本备份以下文件: IIS6.0 路径:C:\WINDOWS\Help\iisHelp\common\403-4.htm IIS7.0以上 路径:C:\inetpub\custerr\zh-CN\403.htm 2.把以下内容全部拷贝替换(403-4或403)里面所有内容,保存即可 <HTML><HEAD><TITLE>该页必须通过安全通道查看</TITLE>

  • windows apache环境下部署SSL证书让网站支持https的配置方法

    关于SSL证书的用处就不讲啦,需要部署的朋友应该已经了解过了,直接进入正题 安装Apache, 下载安装Apache时请下载带有SSL版本的Apache安装程序. 第一步当然是获取证书啦 我是在腾讯云上申请的,很快几分钟就搞定了. 域名验证通过后下载证书就行了 1_root_bundle.crt (证书链文件) 2_www.domain.com_cert.crt(证书文件) 3_www.domain.com.key(私钥文件) 把证书放到环境下  我是放在apache/cert下的  cert这

  • Nginx(Tengine)启用 SPDY 支持的配置方法

    关于SPDY是什么,可以查看极客公园的这篇文章 SPDY 是什么?如何部署 SPDY 虽然SPDY当前还并不是一个标准协议,但是Google Chrome,Chromium,Mozilla Firefox,Opera,IE11均已支持SPDY协议.SPDY可以缩短网页的加载时间,让你们网页更快的展现在用户面前,仅从这个方面来说,就有部署SPDY的必要. SPDY强制使用 SSL 传输协议,就这要求我们必须拥有SSL证书.互联网不乏免费的午餐,我们可以使用StartSSL免费一年的SSL证书. 然

  • springboot实现yml里的自定义配置方法

    主要介绍三种,字符串配置,数组配置和带默认值的配置 ◆字符串配置 //yml setString: hello /** * 字符串. */ @Value("${setString}") String setString; ◆数组配置 //yml setArray: -http://www.taobao.com -http://www.tmall.com /** * 数组. */ @Value("${setArray}") String[] setArray; ◆带默

随机推荐