Springboot工程配置https访问

news/2024/9/17 3:36:37/ 标签: spring boot, https, 后端

背景

因为前端工程使用nginx配置了https访问,在https直接请求我们Springboot后端的http接口会报错。那么我们就需要配置使得我们后端的springboot服务支持https访问。

证书生成

在配置springboot工程https之前,我们需要生成自签名证书以及Spring Boot通常使用的PKCS#12格式的密钥库。

  • 生成自签名证书
openssl req -x509 -newkey rsa:4096 -keyout keystore.key -out keystore.crt -days 365

其中-days 365:证书有效期为365天。

执行此命令后,系统将提示你输入一些证书信息,如国家、州/省、城市、组织等。这些信息将被嵌入到证书中。

  • 创建PKCS#12文件
openssl pkcs12 -export -in keystore.crt -inkey keystore.key -out keystore.p12 -name myalias -CAfile keystore.crt -caname root -chain

这条命令将执行以下操作:

-export:导出PKCS#12文件。
-in:指定证书文件的路径。
-inkey:指定私钥文件的路径。
-out:指定PKCS#12文件的输出路径(这里是keystore.p12)。
-name:指定密钥库中的别名(这里是myalias)。
-CAfile:指定证书文件(这里是keystore.crt)。
-caname:指定CA的名称(这里是root)。
-chain:包含整个证书链。

系统将提示你输入密码以保护PKCS#12文件,我们同样设置为myalias。现在,我们已经生成了一个自签名证书和一个keystore.p12文件的密钥库。

工程配置

得到keystore.p12密钥库文件之后,我们只需要完成以下两步就可以完成springboot工程的https访问。

  • 添加ssl配置类
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.Ssl;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class SslConfig {@Beanpublic WebServerFactoryCustomizer<TomcatServletWebServerFactory> servletContainer() {return factory -> {Ssl ssl = new Ssl();// 配置SSL属性ssl.setKeyStore("classpath:keystore.p12");// 上面配置密钥库的密码ssl.setKeyStorePassword("myalias");ssl.setKeyStoreType("PKCS12");// 密钥库的别名ssl.setKeyAlias("myalias");factory.setSsl(ssl);};}
}

注意上面配置类的配置改成自己的。

  • 导入密钥库文件

把上面生成的keystore.p12密钥库文件放到springboot工程的resources文件夹下。

到现在就完成了springboot服务的https改造。如果你之前的服务端口是8080,那么现在你可以使用https://127.0.0.1:8080访问你的服务!


http://www.ppmy.cn/news/1522282.html

相关文章

中职院校智能物联网应用专业群建设方案

一、引言 随着信息技术的飞速发展&#xff0c;智能物联网&#xff08;IoT&#xff09;作为新一代信息技术的重要组成部分&#xff0c;正深刻改变着人们的生活方式、生产模式和社会形态。为积极响应国家“中国制造2025”和“智慧城市”等战略部署&#xff0c;培养适应未来社会需…

linux使用samba共享目录,其他虚拟机和windows都可以访问

一、192.168.137.12主机作为源目录主机&#xff0c;将/samba/shared_dir目录分享出去 #192.168.137.12主机&#xff1a; rpm -q samba #查看是否安装 yum -y install samba #创建共享目录 mkdir /samba/shared_dir -p #给共享目录赋权 chown -R samba.samba /samba #提示用户不…

CAS与原子操作

什么是原子操作&#xff1f; 原子操作是一种在执行过程中不会被中断的操作。它要么完全执行成功&#xff0c;要么完全不执行&#xff0c;确保在操作完成之前其他线程不会看到操作的中间状态。 原子操作的实现 CAS CAS是由 CPU 提供的原子指令。在硬件级别上确保操作的原子性。…

linux 查看java 进程

在 Linux 中&#xff0c;可以使用以下几种常用方法来查看运行中的 Java 进程&#xff1a; 1. ps 命令 ps 是最常用的查看进程的命令。你可以使用以下命令查看 Java 进程的 PID&#xff1a; ps -ef | grep java-e&#xff1a;显示所有进程。-f&#xff1a;显示完整格式的信息…

斗破C++编程入门系列之二十一:数组、指针和字符串:数组的存储与初始化、对象数组、数组作为函数参数(一星斗师)

斗破C目录&#xff1a; 斗破C编程入门系列之前言&#xff08;斗之气三段&#xff09; 斗破C编程入门系列之二&#xff1a;Qt的使用介绍&#xff08;斗之气三段&#xff09; 斗破C编程入门系列之三&#xff1a;数据结构&#xff08;斗之气三段&#xff09; 斗破C编程入门系列之…

产业生态构建,产业运营服务如何促进上下游协同?

在当今竞争激烈的市场环境中&#xff0c;产业生态的构建成为了企业发展的关键。而产业运营服务作为推动产业生态发展的重要力量&#xff0c;在促进上下游协同方面发挥着至关重要的作用。 首先&#xff0c;产业运营服务通过搭建交流合作平台&#xff0c;促进上下游企业之间的沟通…

2024自动化测试面试真题(附答案)!

一、编程语法题 1 、 python 有哪些数据类型 python 数据类型有很多&#xff0c;基本数据类型有整型&#xff08;数字&#xff09;、字符串、元组、列表、字典和布尔类型等 2 、怎么将两个字典合并 调用字典的 update 方法&#xff0c;合并 2 个字典。 3 、 json.l python 如…

uboot:配置编译

了解BSP 在嵌入式系统中&#xff0c;BSP&#xff08;Board Support Package&#xff09;被称为板级支持包或板级支持软件。它是一组针对特定硬件平台的软件支持包&#xff0c;为开发人员提供了一个统一的接口层&#xff0c;简化了硬件和软件之间的交互。BSP的主要功能和特点如…

HarmonyOS开发实战( Beta5版)不要使用函数/方法作为复用组件的入参规范实践

概述 在滑动场景下&#xff0c;常常会对同一类自定义组件的实例进行频繁的创建与销毁。此时可以考虑通过组件复用减少频繁创建与销毁的能耗。组件复用时&#xff0c;可能存在许多影响组件复用效率的操作&#xff0c;本篇文章将重点介绍如何通过组件复用四板斧提升复用性能。 组…

Cozer必备!一站式解锁扣子全网最全插件集锦(五)

俗话说&#xff0c;工欲善其事必先利其器&#xff01; 用过Coze的朋友都知道&#xff0c;插件在Coze里的重要性。插件库就相当于武器库&#xff0c;一个好的插件&#xff0c;就相当于一件趁手的兵器&#xff0c;可以让你事半功倍&#xff01; 程哥精心整理了Coze最常用和好用…

Vue 3.5 新特性解析

在Vue 3.5中&#xff0c;几个新特性值得关注&#xff0c;它们将极大简化和增强你的开发体验。让我们逐一深入了解这些特性。 1. defineProps支持解构 在Vue 3.5中&#xff0c;defineProps现在支持解构。你可以直接从defineProps中解构出需要的属性&#xff0c;而不必像以前一…

【牛站 / USACO2007】

题目 思路 离散化&#xff08;降低空间复杂度&#xff09; 点的编号 ∈ [ 1 , 1000 ] &#xff0c;但是点的个数最多为 2 ⋅ T ∈ [ 4 , 200 ] 点的编号 \in [1, 1000]&#xff0c;但是点的个数最多为 2 \cdot T \in[4, 200] 点的编号∈[1,1000]&#xff0c;但是点的个数最多为…

手机扬声器音量总是不够大?试试“扬声器助推器”吧

手机的扬声器音量总是不够大&#xff0c;尤其是在嘈杂的环境中&#xff0c;音乐和视频的声音总是不太清晰。直到我发现了这款“扬声器助推器”&#xff0c;我的手机音质瞬间提升了好几个档次。 软件简介&#xff1a; “扬声器助推器”利用先进的音频处理技术&#xff0c;能够…

扑捉一只耿鬼(HTML文件)

图例&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>耿鬼</title><style>body {background: #fff;font-family: Comfortaa, sans-serif;}* {box-sizing:…

微信小程序请求数据接口封装

文章目录 前言一、方法参考站二、使用步骤1.首先需要创建api文件夹&#xff0c;在文件夹里创建api.js文件2.修改app.js3.页面里使用 总结 前言 最近在写小程序项目&#xff0c;为了节约代码量&#xff0c;以及为了防止后期多处修改地址容易出问题或者遗漏&#xff0c;所以对数…

Maven:简化Java项目管理的利器

Maven&#xff1a;简化Java项目管理的利器 在现代Java开发中&#xff0c;项目管理和构建工具扮演着至关重要的角色。其中&#xff0c;Maven无疑是最受欢迎和广泛使用的工具之一。本文将深入探讨Maven的核心概念、配置方法以及在实际开发中的应用&#xff0c;帮助您更好地理解和…

html css网页制作

​ 大家好&#xff0c;我是程序员小羊&#xff01; 前言&#xff1a; HTML 和 CSS 是制作网页的基础。HTML 用于定义网页的结构和内容&#xff0c;CSS 用于设计网页的样式和布局。以下是一个详细的网页制作成品教程&#xff0c;包括 HTML 和 CSS 的基础知识&#xff0c;及如何…

如何在算家云搭建OpenSora 1.2(文本生成视频)

一. OpenSora 1.2简介 1. 技术特点 高清视频生成 &#xff1a; OpenSora 1.2 在 720p 高清文生视频质量和生成时长上取得了突破性进展&#xff0c;支持无缝产出任意风格的高质量短片。通过引入视频压缩网络&#xff08;VAE&#xff09;和更优的扩散模型算法&#xff0c;显著…

数据传输安全——混合加解密

使用Hutool实现AES与RSA混合加密解密——构建安全的数据传输通道 在当今数字化社会中&#xff0c;信息安全已经成为企业和个人不可忽视的重要议题。加密技术作为保障数据安全的重要手段&#xff0c;其作用愈发突出。本文将深入探讨如何利用Hutool库实现AES与RSA混合加密解密方…

跨平台RTSP播放器之VLC Media Player还是SmartPlayer?

好多开发者纠结&#xff0c;RTSP流播放&#xff0c;到底是用开源的VLC Media Player还是大牛直播SDK的SmartPlayer&#xff1f;针对此&#xff0c;本文做个简单的技术探讨&#xff0c;方便开发者根据实际需要&#xff0c;做适合自己场景的选择&#xff1a; VLC Media Player …