SpringBoot开启HTTPS(九)

springboot 默认只开启 http请求,若是要开启https 需要生成证书和配置

1.首先打开CMD命令行工具,在JDK/bin目录下 生成证书.keystore

keytool -genkey -alias tomcat -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore F:/tomcat.keystore -storepass 123456

相关参数:

keytool
-genkey
-alias tomcat(别名)
-keypass 123456(别名密码)
-keyalg RSA(生证书的算法名称,RSA是一种非对称加密算法)
-keysize 1024(密钥长度,证书大小)
-validity 365(证书有效期,天单位)
-keystore F:/tomcat.keystore(指定生成证书的位置和证书名称)
-storepass 123456(获取keystore信息的密码)
- storetype (指定密钥仓库类型) 

springboot配置ssl(证书为.keystore文件)

1.将tomcat.keystore拷贝到项目根目录下(跟pom文件同级目录)

2.配置application.properties

#端口号
server.port=8443
#你生成的证书名字
server.ssl.key-store=tomcat.keystore
#密钥库密码
server.ssl.key-store-password=123456
server.ssl.keyStoreType=JKS
server.ssl.keyAlias:tomcat

3.修改springboot运行主类:实现http自动跳转https

package com.mingtong.demo_client;

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoClientApplication {

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

     @GetMapping("/login")
    public String login() {
       return "login";
    }

     /**
         * it‘s for set http url auto change to https
         */
        @Bean
        public EmbeddedServletContainerFactory servletContainer() {
            TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
                @Override
                protected void postProcessContext(Context context) {
                    SecurityConstraint securityConstraint = new SecurityConstraint();
                    securityConstraint.setUserConstraint("CONFIDENTIAL");// confidential
                    SecurityCollection collection = new SecurityCollection();
                    collection.addPattern("/*");
                    securityConstraint.addCollection(collection);
                    context.addConstraint(securityConstraint);
                }
            };
            tomcat.addAdditionalTomcatConnectors(httpConnector());
            return tomcat;
        }

        @Bean
        public Connector httpConnector() {
            Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
            connector.setScheme("http");
            connector.setPort(8080);
            connector.setSecure(false);
            connector.setRedirectPort(8443);
            return connector;
        }
}

测试:访问http://localhost:8080/login,会自动跳转到https://localhost:8443/login

原文地址:https://www.cnblogs.com/wookong/p/9272215.html

时间: 2024-07-29 16:08:44

SpringBoot开启HTTPS(九)的相关文章

(转)SpringBoot非官方教程 | 第七篇:springboot开启声明式事务

springboot开启事务很简单,只需要一个注解@Transactional 就可以了.因为在springboot中已经默认对jpa.jdbc.mybatis开启了事事务,引入它们依赖的时候,事物就默认开启.当然,如果你需要用其他的orm,比如beatlsql,就需要自己配置相关的事物管理器. 准备阶段 以上一篇文章的代码为例子,即springboot整合mybatis,上一篇文章是基于注解来实现mybatis的数据访问层,这篇文章基于xml的来实现,并开启声明式事务. 环境依赖 在pom文件

springBoot开启热部署

springBoot开启热部署 这里使用devtools工具开启热部署 〇.搭建springbboot基础环境 一.添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <scope>true<

Spring boot 入门五:springboot 开启声明式事务

springboot开启事务很简单,只需要一个注解@Transactional 就可以了.因为在springboot中已经默认对jpa.jdbc.mybatis开启了事务.这里以spring整合mybatis为例讲解声明式事务 数据源配置 这里的配置都基于前几讲的配置,之前spring整合mybatis 是基于注解实现CRUD操作,这次基于xml的配置文件.spring.datasource.driver-class-name=com.mysql.jdbc.Driverspring.dataso

企业级 SpringBoot 教程 (七)springboot开启声明式事务

springboot开启事务很简单,只需要一个注解@Transactional 就可以了.因为在springboot中已经默认对jpa.jdbc.mybatis开启了事事务,引入它们依赖的时候,事物就默认开启.当然,如果你需要用其他的orm,比如beatlsql,就需要自己配置相关的事物管理器. 准备阶段 以上一篇文章的代码为例子,即springboot整合mybatis,上一篇文章是基于注解来实现mybatis的数据访问层,这篇文章基于xml的来实现,并开启声明式事务. 环境依赖 在pom文件

springboot开启事务处理

1.springboot开启事务,启动类里面增加 @EnableTransactionManagement2.需要事务的方法上加 @Transactional(propagation = Propagation.REQUIRED)3.aop的管理事务的好处和选择             增,删,改  开启事务 注意: 1.开启事务会降低一些性能,最哈在需要的方法前加 2.一般多个sql增,删,改  开启事务,单个sql自行判断需不需要开启 原文地址:https://www.cnblogs.com

Java B2B2C多用户商城 springboot架构 (七)springboot开启声明式事务

springboot开启事务很简单,只需要一个注解@Transactional 就可以了.因为在springboot中已经默认对jpa.jdbc.mybatis开启了事事务,引入它们依赖的时候,事物就默认开启.当然,如果你需要用其他的orm,比如beatlsql,就需要自己配置相关的事物管理器. 准备阶段 以上一篇文章的代码为例子,即springboot整合mybatis,上一篇文章是基于注解来实现mybatis的数据访问层,这篇文章基于xml的来实现,并开启声明式事务. 环境依赖 在pom文件

WordPress整站轻松开启HTTPS

近两年来HTTPS取代HTTP已经成为大势所趋.早在2014年google Chromium安全团队提议将所有的HTTP协议网站标注为不安全.现在,Chrome浏览器已经开始执行这一标准了.从 Chrome 56 开始,任何网页,如果有输入密码或者信用卡资料的,却没有使用 HTTPS,将被 Chrome 浏览器标识为不安全:逐步的,任何没有使用 HTTPS 协议的网页chrome浏览器都会被标识为”不安全”,或者 “Not Secure”. 从chrome 56 版本开始,查看网站的SSL证书的

Ubuntu下配置apache开启https

一.HTTPS简述随着网络的日常,信息安全越来越重要,传统的网站都是http协议明文传输,而HTTPS协议是由SSL+HTTP协议构建的可进行加密传输.身份认证的网络协议,比http协议安全. 那https到底是怎么开启的,随着疑问自己也了解https配置原理并在Ubuntu服务器上开启了https. 二.配置证书 配置https一个很重要的步骤就是配置证书. 1.创建证书 sudo apt-get install ssl-cert make-ssl-cert生成证书的方法有两种,一种是根据生成

为什么有必要对网站开启https?

-- 互联网HTTPS时代,开启HTTPS迫在眉睫!-- 2014年Google将未启用HTTPS传输的网站标记为不信任!2015年国内最大的搜索引擎百度率先实现了全站HTTPS加密!2016年淘宝天猫全站启用HTTPS!2016年360.搜狗等各大浏览器纷纷开启HTTPS加密!2016年微信小程序必须使用HTTPS!2017年苹果APP必须强制使用HTTPS传输!2018年...?HTTPS必将取代HTTP,成为互联网主流! 你还在等什么,赶紧开始部署吧. --互联网HTTPS时代,https