• Spring Boot中启动HTTPS


    本项目使用springboot框架,并使用内嵌tomcat服务器,使用java -jar命令打包部署。

    现需求是配置HTTPS

    1、证书获取,这里现是测试研究阶段,采用工具自己生成。浏览器会提示不安全。

      1)使用keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650命令,并按照提示输入相关信息。

      

      2)在C盘的用户目录下,会自动生成证书

      

       3)复制项目中,resources目录下

    2、springboot中配置properties

      在properties中添加如下配置

      

    server.port=443
    server.ssl.key-store=classpath:keystore.p12
    server.ssl.key-store-password=password
    server.ssl.keyStoreType=PKCS12
    server.ssl.keyAlias=tomcat

    3、http重定向到https

    配置两个bean, 

    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.web.embedded.tomcat.TomcatServletWebServerFactory;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    /**
     * create by CP 
     */
    @Configuration
    public class HttpsConfig {
    
        @Bean
        public Connector connector(){
            Connector connector=new Connector("org.apache.coyote.http11.Http11NioProtocol");
            connector.setScheme("http");
            connector.setPort(80);
            connector.setSecure(false);
            connector.setRedirectPort(443);
            return connector;
        }
    
        @Bean
        public TomcatServletWebServerFactory tomcatServletWebServerFactory(Connector connector){
            TomcatServletWebServerFactory tomcat=new TomcatServletWebServerFactory(){
                @Override
                protected void postProcessContext(Context context) {
                    SecurityConstraint securityConstraint=new SecurityConstraint();
                    securityConstraint.setUserConstraint("CONFIDENTIAL");
                    SecurityCollection collection=new SecurityCollection();
                    collection.addPattern("/*");
                    securityConstraint.addCollection(collection);
                    context.addConstraint(securityConstraint);
                }
            };
            tomcat.addAdditionalTomcatConnectors(connector);
            return tomcat;
        }
    }

    4、测试

      启动项目

      通过浏览器访问 https://localhost ,即可转到

      

      因为配置了http重定向,通过浏览器访问http://localhost亦可转到

  • 相关阅读:
    struct page*
    ARM平台linux内核Notes 1
    CTDIY1字符设备驱动的使用
    深入理解linux内核读书笔记1
    在linux下设置pl2303串口
    struct per_cpu_pageset
    ARM平台linux内核Notes 2
    CTDIY2字符设备驱动的注册
    深入理解linux内核读书笔记2
    How to rollback a transaction in TSQL
  • 原文地址:https://www.cnblogs.com/cpyeah/p/12658336.html
Copyright © 2020-2023  润新知