SpringBoot开发——整合SSL证书启用HTTPS协议

news2024/11/19 15:16:57

文章目录

  • 1、https协议
  • 2、SpringBoot项目启用HTTPS协议过程
    • 2.1 创建SpringBoot项目
    • 2.2 准备SSL证书
    • 2.3SpringBoot设置
    • 2.4启动项目

1、https协议

网站使用的协议包括:http协议https协议http协议就是网址以http://开头的,https协议就是网址以https://开头的。
http是超文本传输协议,信息是明文传输,是不安全的。
HTTPS协议是由SSL/TLS+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
https协议需要用到SSL证书

2、SpringBoot项目启用HTTPS协议过程

2.1 创建SpringBoot项目

创建Springboot项目,选择组件Spring Web
在这里插入图片描述
在这里插入图片描述

2.2 准备SSL证书

第一种方式:自签名证书
运行命令keytool生成证书文件:

keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650

输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
  [Unknown]:  aaa
您的组织单位名称是什么?
  [Unknown]:  bj
您的组织名称是什么?
  [Unknown]:  bj
您所在的城市或区域名称是什么?
  [Unknown]:  bj
您所在的省/市/自治区名称是什么?
  [Unknown]:  bj
该单位的双字母国家/地区代码是什么?
  [Unknown]:  cn
CN=zl, OU=bj, O=bj, L=bj, ST=bj, C=cn是否正确?
  []:  是

参数解释:
-genkey: 生成SSL证书
-alias: 证书别名
-storetype: 秘钥仓库类型
-keyalg: 生成证书算法
-keysize: 证书大小
-keystore: 生成证书保存路径
-validity: 证书有效期

口令简单的输入了123456,生成的文件名是:keystore.p12
将文件keystore.p12放在springboot项目中的resource
在这里插入图片描述
第二种方式:申请CA证书
baidu搜索一下免费的ssl证书,这里就不讲述了

2.3SpringBoot设置

设置application.yml文件 :

server:
  port: 443
  ssl:
  	enabled: true 
    key-store: classpath:keystore.p12
    key-store-password: 123456
    keyStoreType: PKCS12
    keyAlias: tomcat

参数解释如下
enable:true表示开启https请求协议。false代表关闭https协议(当前协议就是http协议)
key-store:生成的证书文件地址。
key-store-password:执行证书的密码,刚下载的.txt文件中的密码。
key-store-type:执行证书的类型,需要与证书后缀所属类型相符。

2.4启动项目

启动SpringBoot项目,查看日志是否出现以下结果,项目的端口变成了https的了,然后就可以写个接口测试一下,要使用https://才可以访问接口,说明SSL证书SpringBoot项目中配置成功了。
在这里插入图片描述

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

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

相关文章

http连接github远程仓库密码问题解决办法

目录 一、问题:使用http连接失败 二、解决办法:使用个人访问令牌。 1、生成访问令牌: 步骤 1: 登录 GitHub 步骤 2: 进入设置页面 步骤 3: 生成新的访问令牌 步骤 4: 配置访问令牌 步骤 5: 复制令牌 2. 使用访问令牌 一、问题&#…

从卷积的物理意义出发的第二种卷积计算方法

禹晶、肖创柏、廖庆敏《数字图像处理(电子信息前沿技术丛书)》P78 第一,从物理意义理解卷积,为什么要卷,为什么要积。全名卷积和,先卷,再积,后和。 第二,这种方式计算节…

类加载机制和双亲委派

打印一个类加载器的示例。 import java.net.URL; import sun.misc.Launcher;public class TestJDKClassLoader {public static void main(String[] args) {System.out.println(String.class.getClassLoader());System.out.println(com.sun.crypto.provider.DESKeyFactory.clas…

Mysql 搭建主从复制

Docker Mysql 镜像启动命令(主库) docker run --name mysql-master -ti -d --privileged"true" -p 3306:3306 alibaba-cloud-linux-3-registry.cn-hangzhou.cr.aliyuncs.com/alinux3/mysql_optimized:20240221-8.0.32-2.3.0 mysql_keentune.sh 修改临时密码 如果您…

OpenCV 4.10 windows 上编译并上传conan

目录 一. 上传opencv 预编译包 二. 自己手动写一个测试包并上传 三. 自己写一个app, 引用包 一. 上传opencv 预编译包 1. 下载Opencv, 并用cmake 打开 打开工程之后,编译,install, 目录如下 2. 准备conan 包 把Debug 和 Release 分开放 3…

CTFHub技能树-密码口令-弱口令

目录 前提知识 BrupSuite爆破的四种模式详解 解题过程 通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。 前提知识 BrupSuite爆破的四种模式详解 四种模式分别为:Sniper、Battering ram、Pitchfork、…

Visual Studio 2022从外部引入dll导致的问题

这里以我学MapGIS二次开发的一个小demo为例 一、如何引入dll 1、在解决方案资源管理器中,有个引用的选项 2、然后右键点击添加引用 点击之后会出现如下: 3、点击浏览选项,选择想要引入dll的路径,这里我选择下载MapGIS 10的路径 …

[LitCTF 2024]SAS - Serializing Authentication

题目提示反序列化 源码 <?phpclass User {public $username;public $password;function __construct($username, $password) {$this->username $username;$this->password $password;}function isValid() { return $this->username admin && $this-&g…

《JavaEE进阶》----17.<Mybatis基本操作【注解XML】>

本篇博客详细讲解了&#xff1a;编写SQL语句 1.使用注释 2.使用XML 3.多表查询 前言&#xff1a; Mybatis规范中方法名不能重复&#xff0c;即便参数不同。因为每一个方法名都是有一个唯一的ID标识的。因此不能重复。 我们会将数据库相关的接口放在Mapper包下面。 对&#xff0…

Latex输入数学期望E及花体符号方法

一、数学期望 E \mathbb{E} E 使用Latex写论文时&#xff0c;我们希望输入如下图所示的数学期望&#xff1a; 方法如下&#xff1a; 首先需要导入\usepackage{amssymb}包&#xff0c;然后正文使用描述为\mathbb{E} 二、花体 B \mathcal{B} B 此外&#xff0c;当我们希望…

外贸获客:主动开发有用吗?

今天主要和大家聊聊&#xff0c;做外贸几个常用的获客渠道。 开发客户的渠道大体上分两种&#xff1a;1、主动开发&#xff1b;2、被动询盘 我们一一进行解析。1、社交媒体开发 即利用社交媒体&#xff0c;如Youtube、LinkedIn、Instagram、TikTok、Facebook等平台进行客户开发…

30道软件测试基础面试题!(含答案)

1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前 3 年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自己&a…

JS Reflect 对象 — 深度解析

JS Reflect 对象 — 深度解析 在JavaScript的广阔天地里&#xff0c;Reflect对象如同一面明镜&#xff0c;映射出底层语言操作的精髓。作为前端开发者&#xff0c;掌握Reflect对象及其相关API&#xff0c;无疑能够提升我们的编程技艺&#xff0c;让代码更加简洁、高效。接下来&…

AV1 Bitstream Decoding Process Specification--[1]:术语和定义

原文地址&#xff1a;https://aomediacodec.github.io/av1-spec/av1-spec.pdf没有梯子的下载地址&#xff1a;AV1 Bitstream & Decoding Process Specification摘要&#xff1a;这份文档定义了开放媒体联盟&#xff08;Alliance for Open Media&#xff09;AV1视频编解码器…

浅谈C++入门(1)

​ &#x1f339;个人主页&#x1f339;&#xff1a;喜欢草莓熊的bear &#x1f339;专栏&#x1f339;&#xff1a;C入门 目录 前言 一、C的第一个程序 二、 命名空间 2.1 namespace的价值 2.2 namesapce的定义&#xff08;这里一些东西以记住加理解为主&#xff09; 2.…

国产服务器CPU发展分析

CPU行业概览&#xff1a;信创带动服务器CPU国产化 目前CPU行业由两大生态体系主导&#xff1a;一是基于X86指令系统和Windows操作系统的Wintel体系&#xff0c;主要用于服务器与电脑等&#xff1b;二是基于ARM指令系统和Android操作系统的AA体系&#xff0c;主要用于移动设备…

数据结构加餐:三路划分、自省排序、文件归并排序

数据结构加餐1 1.快排之三路划分2.快排之自省排序3.文件归并排序3.1外排序3.2归并排序的实现3.2.1归并排序思想3.2.2文件归并排序代码实现 1.快排之三路划分 在之前完成的快排仍然存在这一些问题&#xff0c;当重复数据较多时&#xff0c;快速排序选择的基值也会较不恰当&#…

SaaS化多租户实现的两种方法

SaaS化多租户实现的两种方法 SaaS系统的定义 SaaS&#xff0c;全称为Software-as-a-Service&#xff08;软件即服务&#xff09;&#xff0c;是一种基于云计算的软件交付模式。而SaaS系统&#xff0c;即是通过这种模式提供给用户的软件系统。即多租户系统&#xff0c;每个租户…

MySQL 日志篇:Redo 文件和自适应检查点

MySQL 的 InnoDB 存储引擎使用 Redo Log 记录事务对数据的更改&#xff0c;以便在系统崩溃恢复时能够重做这些更改&#xff0c;从而保证事务的持久性。对于产生的 Redo Log&#xff0c;InnoDB 存储引擎首先将其写入内存中的 Log Buffer&#xff0c;随后再将 Log Buffer 中的 Re…

力扣337-打家劫舍 III(Java详细题解)

题目链接&#xff1a;337. 打家劫舍 III - 力扣&#xff08;LeetCode&#xff09; 前情提要&#xff1a; 本体是打家劫舍的一个变形题&#xff0c;希望大家能先做198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09;&#xff0c;并看一下我上题的讲解力扣198-打家劫舍&…