使用Spring Boot和mkcert解决本地及局域网HTTPS访问

在现代Web开发中,HTTPS已经成为保障数据传输安全的标准。然而,在开发和测试阶段,配置HTTPS可能会带来一些额外的复杂性。尤其是在本地开发环境和局域网内网环境中,获得和配置证书通常是一个挑战。本文将介绍如何使用Spring Boot和mkcert工具,快速简便地为本地及局域网应用配置HTTPS。

一、HTTPS的重要性

HTTPS(HyperText Transfer Protocol Secure)通过SSL/TLS协议提供加密的数据传输渠道,从而保证数据的机密性和完整性。在使用HTTPS的情况下,浏览器与服务器之间传输的数据是加密的,防止了中间人攻击和数据窃听。

二、mkcert简介

mkcert是一个用于生成本地自签名SSL证书的工具。它非常适合开发环境下的使用,因为它可以快速生成受信任的自签名证书,并在本地系统上自动安装这些证书,使浏览器不会显示不安全的警告。

2.1 mkcert的优势

  • 简便易用:mkcert通过简单的命令即可生成和安装证书。

  • 受信任的证书:生成的证书会被浏览器信任,不会显示不安全警告。

  • 支持多平台:mkcert支持Windows、macOS和Linux等多个操作系统。

三、Spring Boot简介

SpringBoot是Spring框架的子项目,旨在简化新Spring应用的初始搭建以及开发过程。通过SpringBoot,开发者可以快速创建独立运行、生产级的Spring应用。

3.1 Spring Boot的特点

  • 自动配置:Spring Boot自动配置大部分的Spring应用,只需很少的代码或配置。

  • 嵌入式服务器:内嵌Tomcat、Jetty等服务器,无需外部配置。

  • 生产级准备:提供生产级的应用监控和管理工具。

四、配置环境

在开始之前,请确保已安装以下软件:

  1. Java(JDK 8或更高版本)

  2. Spring Boot CLI(可选)

  3. mkcert

4.1 安装mkcert

在不同平台上安装mkcert的步骤如下:

macOS
brew install mkcert
brew install nss # 如果使用Firefox浏览器
mkcert -install

Windows

choco install mkcert
mkcert -instal
Linux

对于Linux用户,请参考mkcert的官方文档进行安装。

五、生成和配置自签名证书

5.1 生成证书

使用mkcert生成一个用于本地和局域网的自签名证书。假设你需要为localhost和192.168.0.100生成证书:

mkcert localhost 192.168.0.100

这将生成两个文件:localhost+1.pem(证书)和localhost+1-key.pem(私钥)。

5.2 配置Spring Boot

在Spring Boot项目中,使用这些证书配置HTTPS。首先,将生成的证书和私钥文件放在项目的src/main/resources目录下。

然后,在application.properties文件中添加以下配置:

server.port=8443
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=changeit
server.ssl.key-alias=localhost

接下来,我们需要将PEM格式的证书和私钥转换为PKCS12格式的keystore文件。可以使用以下命令:

openssl pkcs12 -export -in localhost+1.pem -inkey localhost+1-key.pem -out keystore.p12 -name localhost -CAfile $(mkcert -CAROOT)/rootCA.pem -caname root -password pass:changeit

这个命令会生成一个keystore.p12文件,密码为changeit。

六、运行和测试

启动Spring Boot应用:

mvn spring-boot:run

现在,你可以通过https://localhost:8443和https://192.168.0.100:8443访问你的应用。

七、局域网内网访问

在局域网内,其他设备需要信任你的自签名证书。你可以将mkcert生成的根证书安装到其他设备上,使它们信任你生成的证书。

7.1 在其他设备上安装根证书

将根证书文件$(mkcert -CAROOT)/rootCA.pem复制到其他设备,并按照设备的说明进行安装。以下是一些常见设备的安装方法:

Windows

双击rootCA.pem文件,选择“安装证书”,并将其安装到“受信任的根证书颁发机构”。

macOS

双击rootCA.pem文件,并使用Keychain Access将其添加到系统的信任列表中。

iOS

通过AirDrop或其他方式将rootCA.pem文件发送到设备,然后在设备上打开并安装。

Android

将rootCA.pem文件复制到设备,进入“设置” -> “安全” -> “从存储设备安装”,选择证书文件进行安装。

八、结论

通过结合使用Spring Boot和mkcert,可以轻松地在本地和局域网环境中配置HTTPS,从而提升开发和测试过程中的安全性。mkcert的便捷性和Spring Boot的强大功能,使得这一过程变得简单高效。希望本文能为你提供有用的指导,帮助你在开发过程中顺利配置HTTPS。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/40591.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于在自己的生活里面,增加喝咖啡的这道手续

前言:我总在告诉我自己,我自己应该如何?我的未来应该如何?到那时实际上,自己没有办法能够理解的确实我的现在,我应该依靠咖啡度过我自己剩下的岁月,接下来,让自己用自己的方式来不断…

华为5288 V5服务器安装BCLinux8U4手记

本文记录了华为5288 V5服务器安装BCLinux8U4操作系统的过程。 一、系统环境 1、服务器 华为FusionServer Pro 5288 V5服务器 2、操作系统 BCLinux-R8-U4-Server-x86_64-220725.iso 官网下载地址 sha256sum:1d31d3b8e02279e89965bd3bea61f14c65b9d32ad2ab6d4eb…

DTP 抽取出错:data target is locked by process***

怎么会显示被几年前的一个process lock住了呢? 搞不明白。 不管怎样,去RSPM_MONITOR改,data target填上ADSO名,选时间,Process status选Y。 找到这条,双击,发现是active的状态。可能是因为前后…

springboot城市菜园共享系统-计算机毕业设计源码00524

目 录 摘要 1 绪论 1.1 研究背景与意义 1.2 国内外研究现状和发展趋势 1.3论文结构与章节安排 2 城市菜园共享系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 数据增加流程 2.2.2 数据修改流程 2.2.3 数据删除流程 2.3 系统功能分析 2.3.1 功能性分析 2.3.…

Apache Kylin与Impala:深入比较与应用场景分析

Apache Kylin与Impala:深入比较与应用场景分析 在大数据处理领域,Apache Kylin和Impala都是Apache软件基金会下的项目,它们各自提供了独特的解决方案来处理大规模数据集。了解它们的不同之处对于选择合适的数据处理工具至关重要。本文将深入…

[Linux安全运维] rsyslog

rsyslog 1. 什么是 rsyslog rsyslog 是一个高性能的日志处理程序,能够接收、处理并转发日志消息。它被广泛应用于 UNIX 和 Linux 系统中,用于系统日志记录和管理。 2. rsyslog 的主要功能 高性能:能够处理大量日志消息,适用于…

C++那些事之小项目实战-进程间通信

小项目实战之进程间通信 进程间通信是一个非常重要的话题,特别是像一些大型项目都有它的影子,例如:PostgreSQL使用了管道完成copy的进程间通信,那么本节也将基于这个主题,使用C去搭建一个进程间通过管道通信的demo出来…

聚变反应堆设计的一些关键方面和最新进展

聚变反应堆设计是一个复杂且高度专业化的领域,旨在实现核聚变反应以产生清洁能源。以下是对聚变反应堆设计的一些关键方面和最新进展的概述: ### 一、聚变反应堆的基本原理 核聚变是两个较轻的原子核结合成一个较重的原子核,并在此过程中释…

消除笔怎么用?教你消除笔的正确用法

消除笔,也称为橡皮擦工具或克隆笔工具,是图像处理软件中的一种常用工具。它的主要作用是通过取样图像中的某一部分,然后覆盖掉不想要的图像内容,从而实现修复、去除瑕疵等效果。那么有哪些软件具有消除笔功能,又是怎么…

网络安全入门教程(非常详细)从零基础入门到精通,看完这一篇就够了。

学前感言: 1.这是一条坚持的道路,三分钟的热情可以放弃往下看了.2.多练多想,不要离开了教程什么都不会了.最好看完教程自己独立完成技术方面的开发.3.有时多google,baidu,我们往往都遇不到好心的大神,谁会无聊天天给你做解答.4.遇到实在搞不懂的,可以先放放,以后再来解决. 基…

欧洲杯:高精度定位技术,重塑体育赛事新体验

随着科技的飞速发展,体育赛事的观赏体验与竞技水平正被不断推向新的高度。在即将到来的2024年欧洲杯赛场上,一项革命性的技术——高精度定位,正悄然改变着比赛的每一个细节,为球迷们带来前所未有的观赛享受,同时也为运…

昇思25天学习打卡营第7天|保存与加载

Python语言 AI框架:Mindspore 1.模型构建 class Network(nn.Cell):def __init__(self):super().__init__()self.flatten nn.Flatten()self.dense_relu_sequential nn.SequentialCell(nn.Dense(28*28, 512, weight_init"normal", bias_init"zeros…

力扣双指针算法题目:移动零

1.题目 . - 力扣&#xff08;LeetCode&#xff09; 2.思路解析 这个题目的思路和“使用递归排序快速排序解决数组的排序问题”相同 class solution { public:void QuickSort(vector<int>& nums, int left, int right){if (left > right) return;int key left…

VSCode常用的一些插件

Chinese (Simplified) 汉语&#xff08;简体&#xff09;拓展包。 Auto Close Tag 可以自动增加xml/html的闭合标签。 CodeSnap 截图神器。截图效果在下面。 Dracula Official vscode一个很好看的主题。 Git Graph git管理工具。 GitHub Repositories 有了它&#xff0c;不…

AI一键音频转文字工具 速度超快,支持实时转换,无需联网,本地整合包下载

这是 CapsWriter-Offline &#xff0c;一个 PC 端的语音输入、字幕转录工具。可用实现简单一键将音频文件转换成文字的懒人工具。 两个功能&#xff1a; 1、实时转换&#xff0c;按下键盘上的 大写锁定键&#xff0c;录音开始&#xff0c;当松开 大写锁定键 时&#xff0c;就会…

TaskDisplayArea、ActivityStack、Task以及ActivityRecord之间的关系

目录 一、TaskDisplayArea、ActivityStack、TaskRecord以及ActivityRecord关系图 二、TaskDisplayArea、ActivityStack、Task以及ActivityRecord相关代码 1、ActivityRecord 2、Task 3、ActivityStack 4、TaskDisplayArea 前言&#xff1a;对TaskDisplayArea、ActivitySt…

go语言day08 泛型 自定义错误处理 go:协程

泛型&#xff1a; 抛错误异常 实现error接口类型 用java语言解释的话&#xff0c;实现类需要重写error类型的抽象方法Error().这样就可以自定义异常处理。 回到go语言&#xff0c;在Error()方法中用*argError 这样一个指针类来充当error接口的实现类。 在f2()方法中定义返回值…

CONFIG_FEATURE_MOUNT_NFS

CONFIG_FEATURE_MOUNT_NFS是一个Linux内核配置选项&#xff0c;它允许系统支持挂载NFS文件系统。如果您在编译内核或构建根文件系统时遇到关于NFS支持的问题&#xff0c;您可能需要检查这个配置选项是否被启用。在某些情况下&#xff0c;例如使用BusyBox作为工具集时&#xff0…

漏洞分析|OpenSSH漏洞(CVE-2024-6387)

一、网传漏洞POC信息 漏洞编号&#xff1a;CVE-2024-6387 漏洞名称&#xff1a;OpenSSH regreSSHion 漏洞 POC上传者&#xff08;作者不确定&#xff09;&#xff1a;7etsuo 发布日期&#xff1a;2024-07-01 漏洞类型&#xff1a;远程代码执行&#xff08;RCE&#xff09;…

昇思MindSpore学习笔记3-03热门LLM及其他AI应用--基于MobileNetv2的垃圾分类

摘要&#xff1a; MindSpore AI框架使用MobileNetv2模型开发垃圾分检代码。检测本地图像中的垃圾物体&#xff0c;保存检测结果到文件。记录了开发过程和步骤&#xff0c;包括环境准备、数据下载、加载和预处理、模型搭建、训练、测试、推理应用等。 1、实验目的 了解垃圾分…