HTTPS双向认证及密钥总结

公钥私钥:

1)公钥加密,私钥解密:加解密
  为什么不能私钥加密公钥解密? 私钥加密后,公钥是公开的都能解密,没有意义。
2)私钥签名,公钥验签:属于身份验证,防串改,防抵赖
  A私钥可以解密A公钥的加密内容,但是无法确认发送加密内容的人是不是B,所以,发送者B用B的私钥签名,A用B的公钥解密签名即可确认是B发送,再用A的私钥解密消息即可。
3)CA证书:
  就是CA机构(Certificate Authority)颁发的证书:其实public.cert就是证书。
  证书实际是由证书签证机关(CA)签发的对用户的公钥的认证。
  证书的内容包括:电子签证机关的信息、公钥用户信息、公钥、私钥、权威机构的签字和有效期等等。证书的格式和验证方法普遍遵循X.509 国际标准。
4)JKS专用格式
  Keystore包含:公钥私钥证书
  =>查看详情:keytool -v -list -keystore scb-api-banking.jks
5)PKCS12行业标准格式
  PKCS#12是公钥加密标准,它规定了可包含所有私钥、公钥和证书。
  其以二进制格式存储,也称为 PFX 文件,在windows中可以直接导入到密钥区。
  注意,PKCS#12的密钥库保护密码同时也用于保护Key。
6)HMAC:
  HMAC-SHA256需要SecretKey
  RSA-SHA256需要PrivateKey
  Hash-based Message Authentication Code:哈希运算消息认证码.
  MAC消息认证码:它是一个需要密钥的算法,可以对可变长度的消息进行认证,把输出的结果作为认证符。
  SHA散列函数:它是将任意长度的消息映射成为定长的散列值的函数,以该散列值消息摘要)作为认证符。
  HMAC散列消息认证码:是一种利用密码学中的散列函数来进行消息认证的一种机制,所能提供的消息认证包括两方面内容:①消息完整性认证 ②信源身份认证。
  虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以我们还是要用对称加密来传送消息,但对称加密所使用的密钥我们可以通过非对称加密的方式发送出去。
7)X509
   X.509 是密码学里公钥证书的格式标准。
   X.509证书里含有公钥、身份信息(比如网络主机名,组织的名称或个体名称等)和签名信息(可以是证书签发机构CA的签名,也可以是自签名)

Https双向认证:


8)HTTPS 即HTTP + SSL / TLS
  用户可以通过服务器证书验证他所访问的网站是否是真实可靠
  HTTPS优势:
    1)信息加密: 非对称加密算法和随机码,对称加密数据
    2)身份验证:数字证书(单向认证、双向认证)
    3)完整性校验:校验证书总公钥的完整性
9)Https单向认证、双向认证
  单向验证:一般指客户端校验服务端证书,服务端并不检查客户端证书
  双向认证:服务端也检查客户端证书
  客户端验证服务器证书:浏览器内置公钥,HttpClient使用JDK内置公钥:jdk1.8.0_261\jre\lib\security\cacerts
  服务器端验证客户端证书:服务端使用根证书公钥和hash验证客户端证书签名,通过后使用客户端公钥加密服务器选择的对称加密算法,客户端生成随机码
  注意:服务器选择的对称加密算法,客户端生成随机码,用对方公钥加密。
10)数字证书:
   证书签名:先hash再privatekey私钥加密,
   证书中有:证书内容,hash算法,签名
   证书使用:当客户端发起请求时,服务器将该数字证书发送给客户端,客户端通过CA机构提供的公钥对加密密文进行解密获得散列值(数字签名),
            同时将证书内容使用相同的散列算法进行Hash得到另一个散列值,比对两个散列值,如果两者相等则说明证书没问题。
11)CSR证书请求文件中内容:
   CSR是Certificate Signing Request的英文缩写,即证书请求文件,也就是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件,
   证书申请者只要把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。
12)OpenSSL 和 keytool:
   都是密钥,数字证书管理工具
   区别:keytool没办法签发证书,而openssl能够进行签发和证书链的管理

==>获取公钥Certificate cert = keyStore.getCertificate(signatureKeyAlias);PublicKey publicKey = cert.getPublicKey();
==>获取私钥PrivateKey privateKey = (PrivateKey) keyStore.getKey(signatureKeyAlias, keyPassword)


99)openssl 生成证书_使用证书和私钥导出P12格式个人证书
    1, 产生CA证书
        1.1, 生成ca的私钥
        openssl genrsa -out cakey.pem 2048
        1.2, 生成ca的自签名证书请求
        openssl req -new -key cakey.pem -subj "/CN=Example Root CA" -out cacsr.pem
        1.3, 自签名ca的证书
        openssl x509 -req -in cacsr.pem -signkey cakey.pem -days 999 -out cacert.pem
    2, 产生个人证书
        2.1, 生成个人证书的私钥
        openssl genrsa -out alicekey.pem 2048
        2.2, 生成个人证书请求
        openssl req -new -key alicekey.pem -subj "/emailAddress=alice@example.com" -out alicecsr.pem
        2.3, 签发个人证书
        openssl x509 -req -in alicecsr.pem -CA cacert.pem -CAkey cakey.pem -days 999 -set_serial 01 -out alicecert.pem
    3, 合并证书和私钥得到p12格式的个人证书
        openssl pkcs12 -export -in alicecert.pem -inkey alicekey.pem -certfile cacert.pem -out alice.p12
    4, 提取个人证书
        openssl pkcs12 -in alice.p12 -nokeys -clcerts -out alicecert.pem
    5, 提取个人证书的私钥
        openssl pkcs12 -in alice.p12 -nocerts -out alicekey.pem
    6, 提取ca证书
        openssl pkcs12 -in alice.p12 -nokeys -cacerts -out cacert.pem
        
        
        
        
        

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

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

相关文章

ElementUI编辑表格单元格与查看模式切换的应用

需求:有时候在填写表单的时候,想要在输入的时候是input输入框的状态,但是当鼠标移出输入框失去焦点时,希望是查看的状态,这种场景可以通过 v-if实现 vue2ElementUi里面使用如下: 1.el-table标签注册 cell-…

GitLab(1)——GitLab安装

目录 一、使用设备 二、使用rpm包安装 Gitlab国内清华源下载地址: ①下载命令如下: ②安装命令如下: ③删除rpm包 ④配置 ⑤重载 ⑥重启 ⑦配置自启动 ⑧打开8989端口并重启防火墙 三、GitLab登录 ①访问GitLab的URL ②输入用户…

如何实现 Es 全文检索、高亮文本略缩处理(封装工具接口极致解耦)

如何实现 Es 全文检索、高亮文本略缩处理 前言技术选型JAVA 常用语法说明全文检索开发高亮开发Es Map 转对象使用核心代码 Trans 接口(支持父类属性的复杂映射)Trans 接口可优化的点高亮全局配置类如下真实项目落地效果为什么不用 numOfFragments、fragm…

203、RabbitMQ 之 使用 direct 类型的 Exchange 实现 消息路由 (RoutingKey)

目录 ★ 使用direct实现消息路由代码演示这个情况二ConstantUtil 常量工具类ConnectionUtil 连接RabbitMQ的工具类Publisher 消息生产者测试消息生产者 Consumer01 消息消费者01测试消费者结果: Consumer02 消息消费者02测试消费者结果: 完整代码&#x…

ES6中flat(),flatMap()使用方法

实际应用: 1.代替filtermap的连用 例:现有一组数据,只展示days>30的数据,且work为1设置color:“#ffffff”,work:0设置color:“#ff0000”: const dataList [{days: 31,name: "占位文字31",work: 0 }, {days: 30,n…

android 13.0 添加系统字体并且设置为默认字体

1.概述 在13.0系统定制化开发中,在产品定制中,有产品需求对于系统字体风格不太满意,所以想要更换系统的默认字体,对于系统字体的修改也是常有的功能,而系统默认也支持增加字体,所以就来添加楷体字体为系统字体,并替换为系统默认字体, 接下来就来分析下替换默认字体的方…

微信小程序框架---详细教程

🎬 艳艳耶✌️:个人主页 🔥 个人专栏 :《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 越努力 ,越幸运。 目录 1.框架 1.1响应的数据绑定 1.2.页面管理 1.3.基础组件 1.4.丰富的 API 2.视图层 View 2.1.介绍 …

Jmeter脚本参数化和正则匹配

我们在做接口测试过程中,往往会遇到以下几种情况 每次发送请求,都需要更改参数值为未使用的参数值,比如手机号注册、动态时间等 上一个接口的请求体参数用于下一个接口的请求体参数 上一个接口的响应体参数用于下一个接口的请求体参数&#…

【09】基础知识:React组件的生命周期

组件从创建到死亡它会经历一些特定的阶段。 React 组件中包含一系列勾子函数&#xff08;生命周期回调函数 <> 生命周期钩子函数 <> 生命周期函数 <> 生命周期钩子&#xff09;&#xff0c;会在特定的时刻调用。 我们在定义组件时&#xff0c;会在特定的生…

一文理解登录鉴权(Cookie、Session、Jwt、CAS、SSO)

1 前言 登录鉴权是任何一个网站都无法绕开的部分&#xff0c;当系统要正式上线前都会要求接入统一登陆系统&#xff0c;一方面能够让网站只允许合法的用户访问&#xff0c;另一方面&#xff0c;当用户在网站上进行操作时也需要识别操作的用户&#xff0c;用作后期的操作审计。…

社区团购:优势、模式与未来发展趋势

随着互联网的普及和电子商务的快速发展&#xff0c;社区团购作为一种新兴的商业模式&#xff0c;正逐渐在各大城市流行起来。本文将详细阐述社区团购的基本概念、优势、模式以及未来发展趋势。 一、社区团购的基本概念和现状 社区团购是一种基于社区网络的电子商务模式&#…

docker jenkins

mkdir jenkins_home chown -R 1000:1000 /root/jenkins_home/docker run -d --name myjenkins -v /root/jenkins_home:/var/jenkins_home -p 8080:8080 -p 50000:50000 --restarton-failure jenkins/jenkins:lts-jdk17参考 Official Jenkins Docker imageDocker 搭建 Jenkins …

灾害与环境遥感团队本科生在IEEE TGRS 发表高水平论文

2023年9月27日&#xff0c;地球科学和遥感领域顶级期刊《IEEE Transactions on Geoscience and Remote Sensing》&#xff08;IEEE TGRS&#xff09;在线预刊发了灾害与环境遥感团队的最新研究成果“A novel spectral index for rapid dust-proof net mapping based on Sentine…

想做WMS仓库管理系统,找了好久才找到云表

公司内部仓库管理原方式均基于人工电子表格管理方式来实现收发存管理&#xff0c;没有流程化管理&#xff0c;无法保证数据的准确性和及时性&#xff0c;同时现场操作和数据核对会出现不同步的情况&#xff0c;无法提高仓库的运作效率&#xff0c;因此&#xff0c;我们基于云表…

【设计模式】单例模式、“多例模式”的实现以及对单例的一些思考

文章目录 1.概述2.单例模式实现代码2.1.饿汉式单例2.2.懒汉式单例2.3.双检锁单例2.4.静态内部类单例2.5.枚举单例 3.对单例的一些思考3.1.是否需要严格的禁止单例被破坏&#xff1f;3.2.懒汉式真的比饿汉式更佳吗&#xff1f;3.3.单例存在的问题 4.其他作用范围的单例模式4.1.线…

关闭VS Code中的鼠标悬停时的提示框(MDN Reference)

在使用VS Code编辑器写html文件时&#xff0c;鼠标悬停在写的某些内容时会弹出一个提示框&#xff0c;如下图&#xff1a; 这个提示是比较烦人的&#xff0c;接下来分享关闭它的教程&#xff1a; 这里是以Win10版的Visual Studio Code为例 1.打开VS Code 的设置界面 2.在扩展…

js构造函数

构造函数 通过 new 函数名 来实例化对象的函数叫构造函数。 任何的函数都可以作为构造函数存在。之所以有构造函数与普通函数之分&#xff0c;主要从功能上进行区别的&#xff0c;构造函数的主要 功能为 初始化对象&#xff0c;特点是和new 一起使用。new就是在创建对象&#x…

《开箱元宇宙》:《福布斯》如何通过 Web3 改进讲故事的方式

你们是否想知道 The Sandbox 如何融入世界上最具标志性的品牌和名人的战略&#xff1f;在本期《开箱元宇宙》系列中&#xff0c;我们与《福布斯》一起探讨了他们为何决定在 The Sandbox 中尝试 Web3&#xff0c;以及他们如何改变讲故事的方式&#xff0c;以便在一次体验中吸引超…

字节跳动2023测试开发岗 3+1 面经+经验分享(收到offer,入职月薪27K)

现在&#xff0c;招聘黄金时间已经来临&#xff0c;在网上看了很多大佬的面经&#xff0c;也加了很多交流群&#xff0c;受到了很多朋友的提点&#xff0c;今天终于轮到我来分享面经啦&#xff0c;之前面试了几家公司&#xff0c;最后在十月初拿到了字节跳动测试岗的 offer&…

口袋参谋:如何写出高权重标题?用对这招很重要!

​如何写出高权重标题&#xff1f;这是99.99%的卖家都存在的疑虑&#xff01; 以前写高权重标题&#xff0c;很多卖家往往会复制同行竞品爆款标题到淘宝首页搜索框&#xff0c;然后在全标题后面加上几个字母&#xff0c;就可以拆分爆款标题。 这个问题我之前也说过&#xff0…