作者:bug菌
✏️博客:CSDN、、infoQ、51CTO等
简介:CSDN博客专家,历届博客之星Top30,年度人气作者No.40,/InfoQ/51CTO等社区优质创造者,全网粉丝算计10w+;硬核公众号「 猿圈美妙屋」,欢迎小伙伴们的加入,一起秃头,一起变强。
..
✍️温馨提醒:本文字数:4999字, 阅读完需:约 5 分钟
一、前言
嗨,家人们,我是bug菌呀,今天,我要为自己代言,噔噔噔《Ubuntu零根底入门教育》开篇啦,希望能协助更多的初学者们快速入门Ubuntu宝塔!
小伙伴们在批阅文章的过程中假如觉得文章对您有一丝丝协助,还请别小气您手里的赞呀,斗胆的把文章点亮吧,您的点赞三连(收藏⭐+重视+留言)便是对bug菌我创造道路上最好的鼓舞与支撑。时光不弃♀️,创造不断,加油☘️
二、正文
环境说明: Ubuntu20.04 + idea2019.3 +jdk1.8 +SpringBoot 2.3.1RELEASE
1️⃣http &&https
不知你们对超文本传输协议https有过多少了解,今天,我就来给咱们聊聊它,传统的都是经过http协议来发布HTML页面和拜访,正如所知,http默许用的port是80,而https用的是443端口,但https比http安全,为什么?接下来我会给咱们比照一下,你们就清楚了。
HTTP 由于是明文传输,所以安全上存在以下三个危险:
- 窃听危险,比方链路追踪上能够获取通讯内容,用户号简略被盗取。
- 篡改危险,比方强制植入垃圾广告。
- 假充危险,比方假充淘宝网站。
而HTTPS在 HTTP 与 TCP 层之间加入了SSL/TLS
协议,就能够很好的处理上述的危险,比方:
- 信息加密:交互信息无法被盗取,但你的号会因为「本身忘记」账号而没。
- 校验机制:无法篡改通讯内容,篡改了就不能正常显现。
- 身份证书:无法假充网站。
可见,只要本身不做「恶」,SSL/TLS 协议是能确保通讯是安全的。
总归,HTTPS是HTTP的安全版别,旨在提供数据传输层安全性(TLS)。当你的运用不运用HTTP协议的时分,浏览器地址栏就会呈现一个不安全的提示。HTTPS加密每个数据包以安全方法进行传输,并保护敏感数据免受窃听者或黑客的攻击。
那今天,咱们亲自来实现怎么生成一个SSL证书并装备到项目中去运用https来拜访项目,比方https://127.0.0.1:8080/api/doc.html
2️⃣生成HTTPS方法
咱们能够经过在Web运用程序上装置SSL证书来实现HTTPS,互联网上受信任的证书通常是需求(CA)颁发的证书。为了学习目的,咱们能够运用自签名证书,比方:运用Java Keytool生成自签名证书或许使用Openssl东西生成证书,两种方法,假如多金,也能够从SSL证书授权中心购买证书。
如下咱们就经过第一种方法,使用JDK东西来生成证书。
3️⃣Keytool概念
Keytool是一个java数据证书的管理东西 ,Keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里,包含两种数据:
- 密钥实体(Key entity)——密钥(secret key)又或许是私钥和配对公钥(选用非对称加密)
- 可信任的证书实体(trusted certificate entries)—— 只包含公钥
ailas(别号)每个keystore都相关这一个独一无二的alias,这个alias通常不区别大小写
JDK中keytool常用命令:
-genkey 在用户主目录中创立一个默许文件".keystore",还会发生一个mykey的别号,mykey中包含用户的公钥、私钥和证书
(在没有指定生成方位的情况下,keystore会存在用户系统默许目录,如:对于window xp系统,会生成在系统的C:/Documents and Settings/UserName/文件名为“.keystore”)
-alias 发生别号
-keystore 指定密钥库的称号(发生的各类信息将不在.keystore文件中)
-keyalg 指定密钥的算法(如 RSA DSA(假如不指定默许选用DSA))
-validity 指定创立的证书有效期多少天
-keysize 指定密钥长度
-storepass 指定密钥库的暗码(获取keystore信息所需的暗码)
-keypass 指定别号条目的暗码(私钥的暗码)
-dname 指定证书拥有者信息 例如: "CN=姓名与姓氏,OU=安排单位称号,O=安排称号,L=城市或区域称号,ST=州或省份称号,C=单位的两字母国家代码"
-list 显现密钥库中的证书信息keytool-list -v -keystore 指定keystore -storepass 暗码
-v 显现密钥库中的证书具体信息
-export 将别号指定的证书导出到文件keytool-export -alias 需求导出的别号 -keystore 指定keystore -file 指定导出的证书方位及证书称号 -storepass 暗码
-file 参数指定导出到文件的文件名
-delete 删去密钥库中某条目keytool-delete -alias 指定需删去的别 -keystore 指定keystore -storepass 暗码
-printcert 查看导出的证书信息keytool-printcert -file yushan.crt
-keypasswd 修正密钥库中指定条目口令keytool-keypasswd -alias 需修正的别号 -keypass 旧暗码 -new 新暗码 -storepass keystore暗码 -keystore sage
-storepasswd 修正keystore口令keytool-storepasswd -keystore e:/yushan.keystore(需修正口令的keystore) -storepass 123456(原始暗码) -new yushan(新暗码)
-import 将已签名数字证书导入密钥库keytool-import -alias 指定导入条目的别号 -keystore 指定keystore -file 需导入的证书
下面是各选项的缺省值。
-alias"mykey"
-keyalg"DSA"
-keysize1024
-validity90
-keystore用户宿主目录中名为.keystore的文件
-file读时为规范输入,写时为规范输出
4️⃣keystore怎么证书
keytool能够分为【分阶段生成】和【一次性生成】,分别如下:
【分阶段生成】
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(有效期,天单位)
【一次性生成】
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
5️⃣生成SSL证书
先cd到你jdk装置目录的bin目录下,输入如下命令:
./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
具体截图演示:
6️⃣证书引进项目
完结上述步骤后,便会创立PKS密钥并将其存储在JDK Bin文件夹下。然后把生成的xiaoma.keystore复制到你项目根目录下。
拷贝命令如下:仅供参考
cp xiaoma.keystore /e/luoyong/xiaoma/code/xm-system/
项目截图如下:
7️⃣项目装备SSL证书特点
在你的项目装备文件中装备SSL证书,例如application.properties或application.yaml装备文件中装备各种server.ssl.*特点来声明性运用SSL(https),比方如下设置application.properties装备文件来设置SSL特点,仅供参考:
或application.yaml装备文件装备:
# server相关装备
server:
ssl:
# 证书的途径
key-store: xiaoma.keystore
# 证书暗码,请修正为您自己证书的暗码.
key-store-password: xiaoma
# 秘钥库类型
keyStoreType: PKCS12
# 证书别号
keyAlias: xiaoma
8️⃣在线测验
重启项目,咱们来测验验证一波,翻开浏览器运用https协议来拜访swagger途径试试:https://127.0.0.1:8080/api/doc.html
浏览器会提示验证危险,咱们直接点击高档并挑选 [ 承受危险并持续 ]
ok,咱们看到https协议,能正常拜访swagger在线文档。
换Chrome浏览器拜访也是一样,授信一遍即可;
提示: 在springboot项目中装备证书仅仅为了简略的测验,真正的出产环境会在nginx上装备证书。
往期热文引荐
- 史上最全教育Windows本地环境搭建Ubuntu20.04
- Ubuntu20.04中装置IntelliJ IDEA开发东西及Springboot项目运转?超级具体教程
- 简易五步教你设置北京时区
- 怎么设置中文界面及装置搜狗输入法?
- Ubuntu装置Maven构建东西
- Ubuntu怎么装置Git代码管理东西
- 无法联网?教你轻松搞定
- 搭建Redis非关系型数据库,傻瓜式教育
- Ubuntu20.04装置Rosbridge并进行小乌龟测验
- 一键教你怎么Ubuntu磁盘分区及GParted磁盘分区东西运用
- 手把手教育怎么创立txt记事本
- jdk1.8轻松装置搭建
- Ubuntu常用命令大全(长期更新)
- 怎么处理ubuntu20.04终端显现内容颜色问题?我来教你
- 怎么设置Ubuntu20.04默许以root权限登录?我来教你
- 轻松处理Ubuntu装置ros报错E: Unable to locate package ros-kinetic-desktop-full问题
ok,以上便是我这期的全部内容啦,假如还想学习更多,能够看看我的专栏Ubuntu零根底入门教育,不积跬步,无以至千里; 不积小流,无以成江海,一口吃不成一个大胖子,加油!咱们下期拜拜~~
文末
我是bug菌,一名想走出大山改变命运的程序猿。接下来的路还很长,都等待着咱们去突破、去挑战。来吧,小伙伴们,咱们一起加油!未来皆可期,fighting!
感谢仔细读完我博客的铁子萌,在这里呢送给咱们一句话,不管你是在职仍是在读,绝对终身受用。
时间警醒自己:
抱怨没有用,全部靠自己;
想要过更好的日子,那就要逼着自己变的更强,日子加油!!!
本文正在参加「金石方案」