使用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。

  • 14
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

missterzy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值