为SpringBoot服务添加HTTPS证书的方法

作者:字母哥博客 时间:2023-10-11 03:03:22 

HTTPS是HTTP的安全版本,旨在提供数据传输层安全性(TLS)。当你的应用不使用HTTP协议的时候,浏览器地址栏就会出现一个不安全的提示。HTTPS加密每个数据包以安全方式进行传输,并保护敏感数据免受窃听者或黑客的攻击。

您可以通过在Web应用程序上安装SSL证书来实现HTTPS,互联网上受信任的证书通常是需要(CA)颁发的证书。为了学习目的,您也可以使用自签名证书,比如:使用Java Keytool生成自签名证书。

一、自签名证书

您可以使用位于JDK bin文件夹下的Keytool生成证书。例如,C:\Program Files\Java\jdk1.8.0_161\bin。可以使用两种自签名证书,如下所示。

  1. 通过您自己的Java应用程序可以轻松访问JKS(Java密钥库)。JKS仅限于Java,不能从Java外部访问。

  2. PKCS12:该证书使用的公钥加密标准与语言无关,用于存储加密的私钥和证书。

二、如何生成自签名证书

在Windows的搜索字段中键入cmd以找到命令提示符,然后以“以管理员身份运行”右键单击。使用如下的keytool命令。您可以提及所需的证书名称,如下所示。


C:\Program Files\Java\jdk1.8.0_161\bin>

keytool -genkeypair -alias selfsigned_localhost_sslserver -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore ebininfosoft-ssl-key.p12 -validity 3650

自签名证书受密码保护。命令回车之后,会提示输入密码(这个密码要记住,后面会用到)和其他详细信息,如以下屏幕截图所示。

为SpringBoot服务添加HTTPS证书的方法

完成上述步骤后,便会创建PKS密钥并将其存储在JDK Bin文件夹下。

三、将SSL应用于Spring Boot应用程序

从JDK bin文件夹复制ebininfosoft-ssl-key并将其放在Spring Boot Application的src / main / resources下。
如下所示,将SSL密钥信息添加到application.properties中。


#SSL Key Info
security.require-ssl=true
server.ssl.key-store-password=生成证书的密码
server.ssl.key-store=src/main/resources/ebininfosoft-ssl-key.p12
server.ssl.key-store-type=PKCS12

四、写一个Controller做简单的测试


@RestController
@RequestMapping("/home")
public class HomeController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String hello() {
return "welcome to spring boot application";
}
}

如果您在不使用HTTPS的情况下访问Rest Endpoint,则会在浏览器中收到“Bad Request”消息。如果您使用HTTPS来访问URL,则会得到如下响应:"welcome to spring boot application"

作者:字母哥博客

来源:https://www.cnblogs.com/zimug/p/12484437.html

标签:springboot,https,证书
0
投稿

猜你喜欢

  • Windows下搭建Flutter开发环境

    2023-11-06 01:32:52
  • C#实现JWT无状态验证的实战应用解析

    2022-07-28 09:20:26
  • 史上最全的java随机数生成算法分享

    2023-10-17 15:22:33
  • SpringCloud URL重定向及转发代码实例

    2023-11-19 11:43:18
  • Java基于Tcp协议的socket编程实例

    2022-03-08 00:04:13
  • Hadoop1.2中配置伪分布式的实例

    2023-01-26 12:20:56
  • 详解Android中提示对话框(ProgressDialog和DatePickerDialog和TimePickerDialog&PopupWindow)

    2023-05-10 19:27:43
  • 带你了解Java的类和对象

    2022-05-08 09:10:21
  • Android实例HandlerThread源码分析

    2022-03-05 13:35:33
  • 深入浅出讲解Java集合之Map接口

    2023-10-14 20:52:46
  • Android实现Path平滑的涂鸦效果实例

    2023-12-11 23:07:45
  • Spring Data JPA查询方式及方法名查询规则介绍

    2022-07-13 19:31:20
  • android 如何获取MCC/MNC控制小区广播的开启

    2023-02-02 21:00:00
  • Android实现ImageView阴影和图层效果

    2021-12-20 06:02:00
  • Spring Boot中操作使用Redis实现详解

    2023-11-24 02:39:29
  • 理解Android中的自定义属性

    2023-07-30 11:09:32
  • springboot-2.3.x最新版源码阅读环境搭建(基于gradle构建)

    2022-11-19 01:47:41
  • JavaWeb开发之【Tomcat 环境配置】MyEclipse+IDEA配置教程

    2022-05-04 12:50:18
  • Eclipse转Itellij IDEA导入Git/svn本地项目的详细步骤

    2021-11-06 12:57:10
  • Java 异步编程实践_动力节点Java学院整理

    2023-06-18 17:04:12
  • asp之家 软件编程 m.aspxhome.com