使用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.pswp.cn/diannao/40591.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/40591.shtml
英文地址,請注明出處:http://en.pswp.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、實驗目的 了解垃圾分…