基于mkcert工具实现Spring Boot 项目服务通过Https方式访问

mkcert(Windows环境)

2.选择版本

基于mkcert工具实现Spring Boot 项目服务通过Https方式访问

3.以管理员身份运行`命令提示符

1) cd C:/ #进入工具存放的目录下
2) mkcert-v1.4.4-windows-amd64.exe -install #命令进行安装
3) mkcert-v1.4.3-windows-amd64.exe #查询是否安装成功
4) mkcert-v1.4.3-windows-amd64.exe -pkcs12 [本地ip] #为本地ip创建p12证书,生成的证书在当前目录

Spring Boot项目配置证书

1.将p12证书存放在项目resources目录下

基于mkcert工具实现Spring Boot 项目服务通过Https方式访问

2.在pom.xml文件中增加配置


    src/main/webapp
    META-INF/resources

        **/*.*

    true

3.配置application.yml

server:
  port: 9002
  ssl:
    key-store: classpath:172.20.10.4.p12
    key-password: changeit # mkcert工具生成时默认密码
    key-store-password: changeit # mkcert工具生成时默认密码
    key-store-type: PKCS12

4.在启动类中增加如下代码

@Bean
public ServletWebServerFactory servletContainer() {

    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(initiateHttpConnector());
    return tomcat;
}

/**
     * 让我们的应用支持HTTP是个好想法,但是需要重定向到HTTPS,
     * 但是不能同时在application.yml中同时配置两个connector,
     * 所以要以编程的方式配置HTTP connector,然后重定向到HTTPS connector
     * @return Connector
     */
private Connector initiateHttpConnector() {
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setScheme("http");
    connector.setPort(80); // http端口
    connector.setSecure(false);
    connector.setRedirectPort(9002); // application.yml中配置的https端口
    return connector;
}

配置至此结束

启动项目访问地址为:https://ip:port/

或者使用: http://ip:80自动会跳转上条地址

基于mkcert工具实现Spring Boot 项目服务通过Https方式访问

带上小锁是不是很有安全感呢~~~~

感谢阅读!

Original: https://www.cnblogs.com/zklymm/p/16356119.html
Author: zklymm
Title: 基于mkcert工具实现Spring Boot 项目服务通过Https方式访问

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/589495/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Netty源码研究笔记(3)——Channel系列

    依旧是通过先纵向再横向的研究方法,在开篇中,我们发现不管是Sever还是Client,最终的启动是通过调用channel的对应方法来完成的,而这个动作实际在channel绑定的ev…

    Java 2023年6月10日
    084
  • 如何高效地写 Form

    工作少不了写”增删改查”,”增删改查”中的”增”和”改”都与 Form 有关,可以说…

    Java 2023年6月16日
    058
  • Ehcache计算Java对象内存大小

    在EHCache中,可以设置maxBytesLocalHeap、maxBytesLocalOffHeap、maxBytesLocalDisk值,以控制Cache占用的内存、磁盘的大…

    Java 2023年5月29日
    077
  • 基于django+python+mysql的进销存管理系统的设计与实现(附源码)

    论文 1.1 课题研究背景及意义在科技时代迅猛发展的推动之下,在信息化技术的催化之下,世界经济的变革已经进入新的时代。世界经济互相关联,企业经营全球化,以及激烈的竞争造成的高度个性…

    Java 2023年6月7日
    087
  • Mybatis-Plus的使用

    1.什么是Mybatis-Plus 2.为什么要学习Mybatis-Plus 3.入门示例 3.1 说明 3.2 准备工作 3.3 配置步骤 4.常用配置 4.1 实体类全局配置 …

    Java 2023年6月7日
    082
  • 三大WEB服务器对比分析(apache ,lighttpd,nginx)

    原文地址:http://www.bbtang.info/linux/web/821.html lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特…

    Java 2023年5月30日
    068
  • Fork-join框架

    Fork-join框架 forkjoin特点:工作密取,平衡可用线程的工作负载。 分支并行每…

    Java 2023年6月5日
    079
  • 诶,我的动态数据源怎么失效了

    背景 模拟现场 原因 入口 找不同 什么时候放入到 conHolder的 结论 背景 项目中是有用到多数据源的,是用AbstractRoutingDataSource这个类来实现数…

    Java 2023年6月8日
    086
  • 类加载(四):spring-boot-loader 模块

    spring-boot jar包结构 2、 正常情况下,java -jar的类加载器是AppClassLoader 但是spring 使用自定义的URLClassLoader加载我…

    Java 2023年5月30日
    079
  • Spring StateMachine状态机

    一、状态机 有限状态机是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在电商场景(订单、物流、售后)、社交(…

    Java 2023年5月30日
    085
  • 关于 base64 编码

    一、什么是Base64编码 Base64是一种用64个字符来表示任意二进制数据的方法。它是一种编码方式,而非加密方式。它通过将二进制数据转变为64个”可打印字符&#82…

    Java 2023年6月7日
    079
  • 深入理解Apollo核心机制之配置读取——前言

    前言 Apollo是当下较为火热的配置中心,顾名思义自然是管理配置的,那么它是如何获取配置的呢?本文会简单介绍相关机制,很多东西自然解释得不到位,后续会有单独章节深追源码看具体实现…

    Java 2023年6月6日
    077
  • 20年5月面试汇总

    redis: 数据结构 redis的五种基本数据结构: string、hash、set、zset、list、HyperLogLog…. 补充:BloomFilter等 …

    Java 2023年6月8日
    077
  • rocketmq事务 go 采用rocketmq-client-go的实现

    我想用rocketMq大家主要是用它的事务,所以拿着官方的代码体验一下 环境 用docker安装rocketMq #需要创建文件夹 /docker/namesrv/logs /do…

    Java 2023年5月30日
    086
  • Java 学习大纲

    1.java基础 1.1 Collection和Map(1)掌握Collection和Map的继承体系(2)掌握ArrayList,LinkedList,Vector,Stack,…

    Java 2023年5月29日
    065
  • nginx:[emerg]unknown directive “ssl”

    在centos中,配置nginx的https时,出现如下错误。 nginx: [emerg] unknown directive “ssl” in /usr…

    Java 2023年5月30日
    087
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球