SpringBoot之利用Keytool开启HTTPS

版权声明:本文为 小异常 原创文章,非商用自由转载-保持署名-注明出处,谢谢!
本文网址:https://blog.csdn.net/sun8112133/article/details/104257243







前言

最近在看书的时候,看到一个陌生的小工具 —— Keytool 。经过研究,得知它原来是一个密钥和证书的管理工具,在我们的 JDK 中也自带了这个小工具,而本篇博客主要来介绍如何用 JDK 自带的 Keytool 工具生成 SSL证书,然后将其导入到 Spring Boot 项目中。
 
按我的理解,其实就是将原来的 HTTP 协议升级成了 HTTPS 协议。
 
在此之前我们还需要了解一下什么是 SSL证书HTTPS

说到 SSL,它其实是一种安全协议,它的专业名词是 安全套接层,它是一种保障数据在网络上可以安全进行传输的协议。它的好处有很多,不仅可以加密用户的敏感信息,还能提升用户对网站的信任。而 SSH证书 就是遵守着 SSL协议,由受信任的机构颁发的数字证书。

HTTPS 是以安全为目标的 HTTP 通道,简单的说它是 HTTP 的安全版,在 HTTP 基础上加入了 SSL 层(安全套接层),使得传输数据更加安全。现在它也被广泛的用于网络上的敏感通讯,比如交易支付方面等。



一、生成证书

获取证书有两种方式:

  1. 购买证书;
  2. 使用 JDKKeytool 工具生成证书。

本篇博客将使用第二种方式来生成证书。

1、打开 CMD 命令窗口

keytool -genkey -alias tomcat -keypass 12345678 -storepass 87654321 -validity 360 -keyalg RSA -keystore tomcat.keystore

CMD命令

  • 各参数详解
    • -genkey :生成指定的密钥文件,若不指定位置,默认会在用户的家目录下(默认文件名是 .keystore);
    • -alias tomcat :产生别名;
    • -keypass 12345678 :密钥口令;
    • -storepass 87654321 :密钥库口令;
    • -validity 360 :有效期,单位是天;
    • -keyalg RSA :指定密钥的算法,如:RSA、DSA(默认是DSA);
    • -keystore tomcat.keystore :指定生成证书的位置和证书名称。

还有个命令是输出 cer 格式的文件,这个文件后续可用于安装证书等,在此只是简单记录一下,与本篇博客的内容无关:

keytool -keystore tomcat.keystore -export -alias tomcat -file tomcat.cer

其中:-export 参数代表输出,-file 参数代表输出的文件名。



2、填写信息并回车继续

回车后,它会提示你输入一系列信息,这些信息是选填的,不想填写直接回车即可。

填写信息

直到出现 “是否正确” 的相关信息后,输入 y 回车即可。这时候它会在当前路径(我的路径:C:\)下生成证书。



二、构建 Spring Boot 项目

构建一个 Spring Boot 的 Web 项目,可以参考: 《SpringBoot入门学习笔记三(HelloWorld)》

构建好 Spring Boot 项目后,我们要找到生成的证书,并将证书放到 Spring Boot 项目中的 src/main/resources 目录下。

证书位置

1、配置信息

server.ssl.key-store=classpath:tomcat.keystore
server.ssl.key-store-password=87654321
server.ssl.key-password=12345678
server.ssl.key-alias=tomcat

配置信息必须与证书的信息相对应,否则就会报错。


2、启动项目

到此,所有的配置就都搞定了,这个时候 HTTPS 已经开启,我们启动项目。先在 浏览器 访问 http://localhost:8080/demo

HTTP访问

大家会发现访问不到了,我们再用 https://localhost:8080/demo 访问,会出现以下页面,我们点击 “继续浏览此网站” 就能正常看到我们的页面了。

HTTPS访问1

HTTPS访问2



博客中若有不恰当的地方,请您一定要告诉我。前路崎岖,望我们可以互相帮助,并肩前行!



发布了166 篇原创文章 · 获赞 169 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/sun8112133/article/details/104257243
今日推荐