收藏夹吃灰系列:实现springboot使用JDK自带的keytool生成SSL证书并配置HTTPS | 超级详细,建议收藏!
Posted bug菌√
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了收藏夹吃灰系列:实现springboot使用JDK自带的keytool生成SSL证书并配置HTTPS | 超级详细,建议收藏!相关的知识,希望对你有一定的参考价值。
大家好,我是bug菌~~
Hi ,小伙伴们,我们又见面啦,本来由于身体不适不太想写文,一直流鼻涕脑袋都快傻掉了,可谁让bug菌这么宠你们呢,游戏可以不玩,病假可以不休息,但是文章必须更!
群声呵斥:"bug菌,振作起来~你的小伙伴们都等着急了,还不赶紧开始"。
bug菌(眉头紧皱):"好的好的,这就来啦~"。
不知你们对https有过多少了解,今天,我就来给大家聊聊,如何使用jdk自带的keytool工具生成一个SSL证书并配置到项目上,并使用https访问swagger ui页;具有很好的教学价值,希望小伙伴们根据这篇文章可以有所收获,建议小伙伴们先收藏后阅读哦。
小伙伴们如果觉得文章不错,点赞、收藏、评论,分享走一起呀,记得给bug菌来个一键三连~~
首先,我先来考考大家
一、http是什么?
http想必大家都再熟悉不过,大部分网站网址都是http://开头,对吧,那么,http究竟是啥?
http:超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收html页面的方法。
二、那是https 又是什么?
HTTPS:是一种通过计算机网络进行安全通信的传输协议,经由HTTP进行通信,利用SSL/TLS建立全信道,加密数据包。HTTPS使用的主要目的是提供对网站服务器的身份认证,同时保护交换数据的隐私与完整性。
PS:TLS是传输层加密协议,前身是SSL协议,由网景公司1995年发布,有时候两者不区分。
好啦,如果要了解更多相关概念,我改天再单独更一起关于http协议与https协议相关的文章,这里就不一一赘述啦;bug菌要开始今天的正题啦。
HTTPS是HTTP的安全版本,旨在提供数据传输层安全性(TLS)。当你的应用不使用HTTP协议的时候,浏览器地址栏就会出现一个不安全的提示。HTTPS加密每个数据包以安全方式进行传输,并保护敏感数据免受窃听者或黑客的攻击。
说了这么多,那到底该如何实现https协议呢?
你可以通过在Web应用程序上安装SSL证书来实现HTTPS,互联网上受信任的证书通常是需要(CA)颁发的证书。为了学习目的,你也可以使用自签名证书,比如:使用jdk自带的 Keytool 来生成自签名证书。
那什么是ksytool呢?
Keytool 是一个Java 数据证书的管理工具 ,Keytool 将密钥(key)和证书(certificates)存在一个称为keystore的文件中 在keystore里,包含两种数据:
密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥(采用非对称加密)
可信任的证书实体(trusted certificate entries)——只包含公钥
ailas(别名)每个keystore都关联这一个独一无二的alias,这个alias通常不区分大小写。
如下我就来演示一下:
三、如何通过jdk自带的Keytool 生成SSL证书?
#1、先cd到你jdk的bin目录下:
生成ssl证书命令如下:
./keytool -genkey -alias xiaoma -dname "CN=xiaoma,OU=xiaoma,O=xiaoma,L=FengXian,ST=ShangHai,C=CN" -ext san=ip:192.168.0.110 -keypass "xiaoma" -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore xiaoma.keystore -validity 3650
命令介绍:分阶段生成:
keytool -genkey
-alias xiaoma(别名)
-dname "CN=xiaoma(名字与姓氏),OU=xiaoma(组织单位名称),O=xiaoma(组织名称),L=FengXian(城市或区域名称),ST=ShangHai(州或省份名称),C=CN(单位的两字母国家代码)"
-ext san=ip:192.168.0.110(本机ip配置)
-keypass "xiaoma"(别名密码)
-storetype PKCS12(证书类型)
-keyalg RSA(算法)
-keysize 2048(密钥长度)
-keystore xiaoma.keystore(指定生成证书的位置和证书名称)
-validity 3650(有效期,天单位)
#2、完成上述步骤后,便会创建PKS密钥并将其存储在JDK Bin文件夹下。
然后把生成的xiaoma.keystore复制到你项目根目录下;
cp xiaoma.keystore /e/luoyong/xiaoma/code/xm-system/
如下是我的项目结构:
#3、配置证书配置
# server相关配置
server:
ssl:
# 证书的路径
key-store: xiaoma.keystore
# 证书密码,请修改为您自己证书的密码.
key-store-password: xiaoma
# 秘钥库类型
keyStoreType: PKCS12
# 证书别名
keyAlias: xiaoma
#4、启动项目,测试一波
打开浏览器通过https访问swagger路径试试:
https://192.168.0.110:8081/doc.html
然后会跳出一个授信界面;点解【接受风险并继续】就好了
以火狐浏览器为例:
ok,成功使用https 访问
Chrome浏览器也是一样,授信一遍即可;
四、keystore信息查看:
keytool -list -v -keystore 指定keystore -storepass 密码
如:
/usr/lib/jvm/jdk1.8.0_60/bin/keytool -list -v -keystore
/usr/lib/jvm/jdk1.8.0_60/bin/xiaoma.keystore -storepass xiaoma
如果你不太记得你jdk安装路径,没关系,你可以用$JAVA_HOME 变量来代替,顺便代替绝对路径;前提是你配置了jdk。
拓展:
$是取环境变量的值
JAVA_HOME是环境变量。 echo $JAVA_HOME打印java安装目录的环境变量值
$JAVA_HOME/bin/keytool -list -v -keystore $JAVA_HOME/bin/xiaoma.keystore -storepass xiaoma
OK,以上就是本期的所有干货内容啦!听完我的课,是不是该有所表示呢,要是我,果断就给它pia的一下点亮!
再不行,就当支持bug菌熬夜爆肝码了两万多字的份上,给个鼓励啦。
原创不易
请鼓励支持一下咯
点赞三连
走起
各位兄弟姐妹萌
bug菌不胜感激
~
~~~
若是还不够吃,bug菌还有!要不再投点?
五、往期热文推荐:
- 在Ubuntu上使用IDEA搞开发是种什么体验?没想到竟是...最后有惊喜!
- 520夜我花了288大洋就得到了小师妹青睐,原因竟是...一定要看到最后!
- 你一定没用过的代码生成工具,好不好用你们说了算
- 如何实现Springboot项目保存本地系统日志文件,超详细,你值得拥有!
- 使用MultipartFile实现图片指定路径上传下载并使用postman测试教程 | 附完整源码,强烈建议收藏!
- 一篇文带你零基础玩转mysql触发器 | 超级干货,建议收藏
- ...
若想解锁更多高阶隐藏玩法,请关注bug菌的专栏《收藏夹吃灰系列》。bug菌会持续更新哒,只因你的特别关注,我定不负所望~
❤如果文章对您有所帮助,就请在文章末尾的左下角把大拇指点亮吧!(#^.^#);
❤如果喜欢bug菌分享的文章,就请给bug菌点个关注吧!(๑′ᴗ‵๑)づ╭❤~;
❤对文章有任何问题欢迎小伙伴们下方留言或者入群探讨【群号:708072830】;
❤鉴于个人经验有限,所有观点及技术研点,如有异议,请直接回复参与讨论(请勿发表攻击言论,谢谢);
❤版权声明:本文为博主原创文章,转载请附上原文出处链接和本文声明,版权所有,盗版必究!(*^▽^*).
以上是关于收藏夹吃灰系列:实现springboot使用JDK自带的keytool生成SSL证书并配置HTTPS | 超级详细,建议收藏!的主要内容,如果未能解决你的问题,请参考以下文章
收藏夹吃灰系列:Springboot配置Thymeleaf实现静态页面访问 | 超级详细,建议收藏!
收藏夹吃灰系列(十三):Springboot项目配置多数据源,实例演示 | 开箱即用,超级详细。
收藏夹吃灰系列(十三):Springboot项目配置多数据源,实例演示 | 开箱即用,超级详细。
收藏夹吃灰系列:使用MultipartFile实现图片指定路径上传下载并使用postman测试教程 | 附完整源码,强烈建议收藏!