SpringBoot:SSL证书部署+SpringBoot实现HTTPS安全访问

一、前言

  SSL协议介于TCP/IP协议栈的第四层(传输层)和第七层(应用层)之间,为基于TCP的应用层协议(如HTTP)提供安全连接。它通过在客户端和服务器之间建立一个加密的通道,确保数据在传输过程中的机密性、完整性和身份验证。

  HTTPS(Hypertext Transfer Protocol Secure)是一种安全的通信协议,它在HTTP的基础上加入了SSL(Secure Sockets Layer,安全套接层)或其继任者TLS(Transport Layer Security,传输层安全)协议层,以确保数据在客户端和服务器之间的传输过程中得到加密和保护。

二、SSL工作原理

握手阶段

  客户端发送Client Hello消息到服务器端,包括客户端支持的SSL版本、会话ID、随机数、密码算法列表和压缩方法等参数。

  服务器收到Client Hello后,发送Server Hello消息,包括选择的SSL版本、服务器产生的随机数、会话ID、从客户端建议的密码套件中挑出的密码算法和压缩算法等

  服务器向客户端发送自己的证书,客户端验证服务器的身份,并取出证书中的公钥。

  根据选择的密码套件,双方进行密钥交换和协商,生成用于加密和MAC的会话密钥。

安全数据传输阶段

  在已经建立的SSL数据通道里,双方使用协商好的加密算法和会话密钥,对传输的数据进行加密和MAC计算,确保数据的机密性和完整性。

三、模拟https请求

1.生成签名证书

在操作之前,先确保jdk环境都是没问题的。

在这里插入图片描述

使用keytool(Java开发工具包的一部分)来生成一个自签名证书和私钥,或者从受信任的证书颁发机构(CA)获取一个证书。

keytool -genkeypair -alias mysslkey -keyalg RSA -keystore D:/keystore.p12 -storetype PKCS12 -keysize 2048 -validity 180 -dname "CN=xiaoming, OU=weiwei, O=xiaowei, L=hai, ST=dai, C=CN" -storepass 123456 -keypass 123456

执行命令之后。生成如下的文件:
在这里插入图片描述

参数说明
-alias mysslkey:证书的别名。

-keyalg RSA:密钥算法。

-keystore keystore.p12:生成秘钥库的存储路径和名称。

-storetype PKCS12:指定密钥库类型为PKCS12。

-keysize 2048:密钥大小。

-validity 180:证书有效期(天)。

-dname:证书的信息。CN:姓名;OU:组织单位名称;O:组织名称;L:省/市/自治区名称;C:国家/地区代码。

-storepass 123456:密钥库的密码。

-keypass 123456:私钥的密码(可以与密钥库密码相同)。

springboot application.properties中配置

server.port=8443
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=123456
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=mysslkey
server.ssl.enabled=true

配置说明
server.port:HTTPS监听的端口。
server.ssl.key-store:密钥库文件的路径(相对于类路径)。
server.ssl.key-store-password:密钥库的密码。
server.ssl.keyStoreType:密钥库的类型(如PKCS12)。
server.ssl.keyAlias:证书的别名。
server.ssl.enabled:启用SSL

将keystore.p12文件导入到src/main/resources中
这样它就可以被classpath:前缀正确地引用。

在这里插入图片描述

访问本地地址结果如下
因为使用的是自签名证书,所以浏览器会显示安全警告
在这里插入图片描述

点击继续前往
在这里插入图片描述

四、总结

  SSL和HTTPS在网络安全领域发挥着重要作用。通过部署SSL证书并使用HTTPS协议,网站可以保护用户数据的安全性和机密性,增强用户信任感。

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

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

相关文章

嵌入式 lwip http server makefsdata

背景: 基于君正X2000 MCU Freertoslwip架构 实现HTTP server服务,MCU作为HTTP服务器通过网口进行数据包的传输,提供网页服务。其中设计到LWIP提供的工具makefsdata,常用于将文件或目录结构转换为适合嵌入到固件中的二进制格式。 …

论文笔记-WSDM2025-ColdLLM

论文笔记-WSDM2025-Large Language Model Simulator for Cold-Start Recommendation ColdLLM:用于冷启动推荐的大语言模型模拟器摘要1.引言2.前言3.方法3.1整体框架3.1.1行为模拟3.1.2嵌入优化 3.2耦合漏斗ColdLLM3.2.1过滤模拟3.2.2精炼模拟 3.3模拟器训练3.3.1LLM…

《DeepSeek-V3:人工智能大语言模型》

《DeepSeek-V3:人工智能大语言模型》 1. 引言 我们介绍了 DeepSeek-V3,这是一个强大的专家混合 (MoE) 语言模型,总共有 671B 个参数,每个令牌激活了 37B。 为了实现高效的推理和具有成本效益的训练,DeepSeek-V3 采用了多头潜在注意力 (MLA) 和 DeepSeekMoE 架构,这些…

手机控制电脑远程关机

远程看看软件兼容iOS和Android设备,该软件除了能通过电脑远程关闭另一台电脑外,您还可以通过它在手机上远程关闭公司的电脑。您可以按照以下步骤进行操作以实现电脑远程关机: 步骤1.在手机应用商店搜索“远程看看”进行软件安装,…

Aseprite绘画流程案例(1)——画相机图标

原图: 步骤一:打开需要参照的图标 步骤二:将参照的图片拖放到右边,作为参考 步骤三:新建24x24的画布,背景为白色的画布 步骤四:点击菜单栏——视图——显示——像素网格(如果画布已经…

The Heliosphere 日球层

转自 The Heliosphere - NASA This is an artists concept of our Heliosphere as it travels through our galaxy with the major features labeled. Termination Shock: Blowing outward billions of kilometers from the Sun is the solar wind, a thin stream of electrica…

使用API有效率地管理Dynadot域名,为域名部署DNS安全拓展(DNSSEC)

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

vsan数据恢复—vsan缓存盘故障导致虚拟磁盘文件丢失的数据恢复案例

vsan数据恢复环境&故障: VMware vsan架构采用21模式。每台设备只有一个磁盘组(71),缓存盘的大小为240GB,容量盘的大小为1.2TB。 由于其中一台主机(0号组设备)的缓存盘出现故障,导…

匹配算法:向下就近原则,向下没有就向上

匹配算法&#xff1a;向下就近原则&#xff0c;向下没有就向上 实现方式一实现方式二总结 实现方式一 private static List<Integer> findMatches(List<Integer> sourceList, List<Integer> searchValues) {List<Integer> sortedList sourceList.stre…

AI客服-接入deepseek大模型到微信(本地部署deepseek集成微信自动收发消息)

1.本地部署 1.1 ollama Ollama软件通过其高度优化的推理引擎和先进的内存管理机制&#xff0c;显著提升了大型语言模型在本地设备上的运行效率。其核心采用了量化技术&#xff08;Quantization&#xff09;以降低模型的计算复杂度和存储需求&#xff0c;同时结合张量并行计算&…

Python VsCode DeepSeek接入

Python VsCode DeepSeek接入 创建API key 首先进入DeepSeek官网&#xff0c;https://www.deepseek.com/ 点击左侧“API Keys”&#xff0c;创建API key&#xff0c;输出名称为“AI” 点击“创建"&#xff0c;将API key保存&#xff0c;复制在其它地方。 在VsCode中下载…

【python】网页批量转PDF

安装wkhtmltopdf 网站&#xff1a;wkhtmltopdf wkhtmltopdf http://www.baidu.com/ D:website1.pdf 安装pdfkit库 pip install pdfkit 批量转换代码 import os import pdfkit path_wkthmltopdf rE:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe config pdfkit.configu…

架构师面试(三):订阅模型

问题 对【注册中心】【配置中心】【消息队列】和【IM】进行分析和抽象&#xff0c;可归纳出一个完整的业务模型单元&#xff0c;即【订阅系统】&#xff0c;下面关于实现订阅系统的几种模型的相关描述中&#xff0c;说法正确的有哪几项&#xff1f; A. 信箱模型&#xff0c;即…

数据结构:算法的时间复杂度和空间复杂度

1.算法效率 1.1 如何衡量一个算法的好坏 如何衡量一个算法的好坏呢&#xff1f; 比如对于以下斐波那契数列&#xff1a; long long Fib(int N) {if(N < 3)return 1;return Fib(N-1) Fib(N-2); }斐波那契数列的递归实现方式非常简洁&#xff0c;但简洁一定好吗&#xff…

linux下pip下载项目失败

想下载CLIP的项目复现代码的时候&#xff0c;出现问题如下&#xff1a; 于是手动使用 Git 克隆仓库&#xff0c; git clone https://github.com/openai/CLIP.git cd CLIP pip install .ls查看文件如下&#xff1a;(手动克隆git项目成功)

Redis文档总结

文档&#xff1a;https://redis.com.cn/topics/why-use-redis.html 1.我们为什么一定要用 Redis 呢&#xff1f; 速度快&#xff0c;完全基于内存&#xff0c;使用 C 语言实现&#xff0c;网络层使用 epoll 解决高并发问题&#xff0c;单线程模型避免了不必要的上下文切换及竞争…

【前端框架】Vue3 面试题深度解析

本文详细讲解了VUE3相关的面试题&#xff0c;从基础到进阶到高级&#xff0c;分别都有涉及&#xff0c;希望对你有所帮助&#xff01; 基础题目 1. 简述 Vue3 与 Vue2 相比有哪些主要变化&#xff1f; 答案&#xff1a; 响应式系统&#xff1a;Vue2 使用 Object.definePrope…

Django+Vue3全栈开发实战:从零搭建博客系统

文章目录 1. 开发环境准备2. 创建Django项目与配置3. 设计数据模型与API4. 使用DRF创建RESTful API5. 创建Vue3项目与配置6. 前端页面开发与组件设计7. 前后端交互与Axios集成8. 项目优化与调试9. 部署上线10. 总结与扩展10.1 项目总结10.1.1 技术栈回顾10.1.2 项目亮点 10.2 扩…

【论文笔记】MambaGlue: Fast and Robust Local Feature Matching With Mamba

【引用格式】&#xff1a;Ryoo K, Lim H, Myung H. MambaGlue: Fast and Robust Local Feature Matching With Mamba[J]. arXiv preprint arXiv:2502.00462, 2025. 【网址】&#xff1a;https://arxiv.org/pdf/2502.00462 【开源代码】&#xff1a;https://github.com/uri-Ka…

Office word打开加载比较慢处理方法

1.添加safe参数 ,找到word启动项,右击word,选择属性 , 添加/safe , 应用并确定 2.取消加载项,点击文件,点击选项 ,点击加载项,点击转到,取消所有勾选,确定。