软件编程
位置:首页>> 软件编程>> java编程>> springboot配置http跳转https的过程

springboot配置http跳转https的过程

作者:乐兰特  发布时间:2021-12-25 07:31:11 

标签:springboot,http,https

SSL是为网络通信提供安全以及保证数据完整性的的一种安全协议,SSL在网络传输层对网络连接进行加密。

例:cas 的单点登陆就用到了SSL

一、安全证书的生成

1、可以使用jdk自带的证书生成工具,jdk自带一个叫keytool的证书管理工具,可以用它来实现签名的证书。

2、先配置好基本的java环境,ctrl+r 输入cmd ,进入java 的目录

3、例:生成一个别名叫tomcat 的证书 先使用命令进入jdk的bin 这里的密码是123456

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

springboot配置http跳转https的过程

4、获取一个tomcat.keystore的文件,将这个文件放到项目的目录中

springboot配置http跳转https的过程

二、配置SSL

1、编辑application.properties这个文件

package com.example;

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;

@SpringBootApplication
public class SpringBootHttpsApplication {

public static void main(String[] args) {
       SpringApplication.run(SpringBootHttpsApplication.class, args);
   }
   @Bean
   public EmbeddedServletContainerFactory servletContainer() {
       TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
           @Override
           protected void postProcessContext(Context context) {
               SecurityConstraint constraint = new SecurityConstraint();
               constraint.setUserConstraint("CONFIDENTIAL");
               SecurityCollection collection = new SecurityCollection();
               collection.addPattern("/*");
               constraint.addCollection(collection);
               context.addConstraint(constraint);
           }
       };
       tomcat.addAdditionalTomcatConnectors(httpConnector());
       return tomcat;
   }

@Bean
   public Connector httpConnector() {
       Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
       connector.setScheme("http");
       //Connector监听的http的端口号
       connector.setPort(8080);
       connector.setSecure(false);
       //监听到http的端口号后转向到的https的端口号
       connector.setRedirectPort(8443);
       return connector;
   }

}

三、测试使用

1、查看启动信息

springboot配置http跳转https的过程

2、访问地址localhost:8080/AmazeUI-2.7.2/login.html 我自定义了一个html网页,它已经转向到了8443端口

springboot配置http跳转https的过程

3、浏览器的地址栏中显示不安全:因为这个证书是不收信任的,传统一般都企业都是需要购买此证书的

来源:https://www.cnblogs.com/happy1109/p/8444655.html

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com