安全-加密与证书

news2024/9/27 19:25:24

对称加密

在对称加密中,加密和解密使用的是同一个密钥,即:使用相同的密钥对密文进行加密和解密
比如:A和B,A和B保存同一个密钥,A使用这个密钥对明文进行加密,发送给B,B再使用这个密钥对密文进行解密
缺点是:如果第三个人知道了这个密钥,就能对密文进行解密
常用的对称加密算法是:
DES,3DES,IDEA等

非对称加密

举例说明:
比如Alice 要与Bob直接进行非对称加密的通信
首先Alice根据非对称加密算法,由一个庞大的随机数来生成一对密钥,为公钥public key和私钥private key,这个public key可以让任何人知道,包括Bob
在这里插入图片描述
然后Bob也由一个庞大的随机数,根据非对称加密算法来生成一对密钥:公钥public key, 私钥private key,同样这个public key可以让任何人知道,包括Alice
在这里插入图片描述
Alice和Bob使用的随机数不同,生成的公钥和私钥也不一样
在这里插入图片描述
一般来说私钥放在服务器里,数据经过公钥加密就只能被私钥解密
如果应用到客户端和服务器端,就是服务端自己有成对的私钥和公钥,然后公布自己的公钥让客户端知道,客户端用公钥把自己的数据进行加密,加密后要用服务端的私钥才能解密

证书

非对称加密可以对数据进行加密,但是客户端不知道沟通的服务器是否是自己想要沟通的对象
HTPPS解决这个问题,因为服务器端需要申请SSL证书,来证明自己
SSL证书其实就是保存在源服务器的数据文件,要让SSL证书生效,就需要向CA(第三方证书颁发机构)申请,证书里除了包含域名,日期等,还包括了特定的公钥和私钥,简单来说服务器端安装了SSL证书,客户端就可以使用HTTPS访问了,端口号为443
CA机构会生成一个根证书包括public key,根证书是提前安装在客户端,客户端信任这个根证书,如果服务器端安装了由这个CA机构颁发的证书,CA会对SSL证书进行签名,客户端有CA的public key,就能对CA颁发的SSL证书进行签名认证,客户端就会信任服务器

SSL证书申请流程

在这里插入图片描述

  1. 制作CSR文件
    CSR:certificate signning request证书请求文件,这个文件是由申请人制作,制作这个文件时会生成两个密钥:
    公钥:就是这个CSR文件
    私钥:存放在服务器上
    制作CSR文件的方法:1. 使用openssl 2.使用keytool
  2. CA认证
    将CSR提交给CA,
  3. 证书安装
    收到证书后,可以将证书部署在服务器上
    APACHE是将key(密钥)和CER(证书)直接复制到服务器上,然后修改httpd.conf文件
    TOMCAT是将CER文件(CA签发的证书)导入到JKS(密钥)中,然后修改server.xml
    文件
自签名证书

自己生成的SSL证书,不是由CA机构颁发的证书,就叫做自签名SSL证书

使用openssl生成自签名证书

安装openssl https://www.jianshu.com/p/ce2313b5c00a
https://www.cnblogs.com/jtcr/p/13490550.html

常用的openssl命令

version 用于查看版本信息

enc 用于加解密

ciphers 列出加密套件

genrsa 用于生成私钥

rsa RSA密钥管理(例如:从私钥中提取公钥)

req 生成证书签名请求(CSR)

crl 证书吊销列表(CRL)管理

ca CA管理(例如对证书进行签名)

dgst 生成信息摘要

rsautl 用于完成RSA签名、验证、加密和解密功能

passwd 生成散列密码

rand 生成伪随机数

speed 用于测试加解密速度

s_client 通用的SSL/TLS客户端测试工具

X509 X.509证书管理

verify X.509证书验证

pkcs7 PKCS#7协议数据管理

生成CA的根证书和私钥

自签名证书由于不是CA机构颁发的,所以要有证书和私钥来代替CA机构的功能
需要生成CA根证书和私钥
CA根证书安装在客户端,用户需要信任这个证书
私钥用于对服务器端的SSL证书进行签名

#创建一个文件夹ca
mkdir ca
cd ca
#使用openssl genrsa生成一个私钥,会生成一个ca.key文件
openssl genrsa -des3 -out ca.key 2048
#使用这个私钥,产生一个证书 ca.crt, -x509是证书的格式
openssl req -x509 -key ca.key -out ca.crt -days 365

在这里插入图片描述
在这里插入图片描述

#查看证书内容
openssl x509 -in ca.crt -text -noout

在这里插入图片描述
这样就生成了一个私钥ca.key和一个证书ca.crt

生成CSR文件,证书请求文件

申请者根据自己的公司信息,域名等生成一个CSR文件,发送给CA机构,由CA机构进行签名并生成一个证书并返会给申请者
申请者先生成一个秘钥,再有这个秘钥生成csr文件

#先生成一个秘钥
openssl genrsa -out my-site.com.key 2048
#根据这个秘钥,生成一个csr文件
openssl req -new -key my-site.com.key -out my-site.com.csr

CA机构对CSR文件进行签名,生成一个证书
openssl x509 -req -in my-site.com.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out my-site.com.crt -days 365

在这里插入图片描述
最后生成一个my-site.com.crt证书,这个就是安装在服务器端的证书

#查看证书内容
openssl x509 -in my-site.com.crt -text -noout

在这里插入图片描述

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

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

相关文章

【火灾检测】森林火灾检测系统(带面板)【含GUI Matlab源码 1921期】

⛄一、火灾检测简介 1 引言 目前森林火灾是破坏森林的最主要的灾害之一, 影响很大。森林是各种珍禽异兽的家园, 森林遭受火灾后, 会破坏野生动物赖以生存的环境。严重的森林火灾不仅能引起水土流失, 还会引起山洪爆发、泥石流等自然灾害。因此, 对森林火灾尽早识别并预警, 就能…

CSS 实现跳动的方块动画

前言 👏transform-styletransform实现多个小方块,速速来Get吧~ 🥇文末分享源代码。记得点赞关注收藏! 1.实现效果 2.实现步骤 定义css变量:正方形长/宽为w; :root {--w: 30px;}父容器为一个圆角正方形&…

引擎入门 | Unity UI简介–第2部分(3)

本期我们继续为大家进行Unity UI简介(第二部分)的后续教程 本篇内容 4.设置动画按钮 5.从脚本中触发动画按钮 文章末尾可免费获取教程源代码 本篇本篇Unity UI简介(第二部分)篇幅较长,分为八篇,本篇为…

Android Gradle 学习笔记(一)概述

文章目录1. JVM构建工具的发展1.1 背景1.2 Ant - Java 早期构建工具1.3 Maven - Ant 的升级版1.3 Gant - IDEA 官方的构建工具1.4 Gradle - JVM集大成构建工具2. 为什么学习 Gradle?3. 学习提纲参考1. JVM构建工具的发展 1.1 背景 我们平时在 IDE 上写了很多代码&#xff0c…

vue3+Element-plus el-select 下拉表格组件(el-select+el-table结合)

一、最终效果 二、代码示例 <t-select-table:table"table":columns"table.columns":max-height"400":keywords"{ label: name, value: id }"radioChange"radioChange" ></t-select-table>三、参数配置 1. 配置…

如何开始用Python编程

前言 你想开始学习如何编程吗&#xff1f;计算机编程令人望而生畏&#xff0c;你可能认为需要通过上课来学习。虽然对于某些语言来说可能是这样&#xff0c;但是有很多编程语言只需一到两天的时间就可以掌握基础知识。Python[1] 就是这样的一种语言。你在几分钟内就可以正常运…

【操作系统基础】实践部分

本文参考MOOC哈工大操作系统课程与课件 主要基于Linux 0.11系统展开 ”Author&#xff1a;Mayiming“ 实践部分依赖虚拟环境展开&#xff0c;请访问网址 https://www.lanqiao.cn/courses/115 本文就试验一、二、三进行梳理 一、熟悉试验环境 试验环境使用了oslab、bochs、gcc…

使用图片制作3D背景

1.创建一个新的摄像机&#xff0c;命名为BackgroundCamera。 2.新建GUITexture&#xff0c;命名为BackgroundImage。 3.在BackgroundImage的Inspector面板中点击Layer下拉窗口&#xff0c;选择“AddLayer”。 4.在打开的面板中的UserLayer8&#xff0c;添加一个新的层名称为…

dubbo原理

目录 dubbo原理 1、RPC原理 2、netty通信原理 3、dubbo原理 1、dubbo原理 -框架设计 2、dubbo原理 -启动解析、加载配置信息 3、dubbo原理 -服务暴露 4、dubbo原理 -服务引用 5、dubbo原理 -服务调用 dubbo原理 1、RPC原理 一次完整的RPC调用流程&#xff08;同步调…

软件测试培训之写给要学习自动化测试的同学的建议

基于我的经验&#xff0c;给你6条实用建议 1、先学习编程语言&#xff0c;然后再接触自动化工具。 语言选择上Java或者Python都是可以的&#xff0c;可以先从Python入手&#xff0c;之后再开始Java。在学习语言的过程中&#xff0c;一定要忘掉你是做测试的&#xff0c;把自己…

leetcode 698. 划分为k个相等的子集-状态压缩+记忆搜索的一步步实现

题目 给定一个整数数组 nums 和一个正整数 k&#xff0c;找出是否有可能把这个数组分成 k 个非空子集&#xff0c;其总和都相等。 示例 输入&#xff1a; nums [4, 3, 2, 3, 5, 2, 1], k 4 输出&#xff1a; True 说明&#xff1a; 有可能将其分成 4 个子集&#xff08;5&…

利用OpenCV的函数LUT()对矩阵的数据进行查表映射

利用OpenCV的函数LUT()对矩阵的数据进行查表映射 LUT是Look Up Table 的缩写&#xff0c;意为查表映射。 OpenCV的函数LUT()能实现图像灰度值或者说矩阵元素值的查表映射功能。 函数LUT()的C原型如下&#xff1a; void cv::LUT(InputArray src,InputArray lut,OutputArray …

XStream常用注解学习

XStream中文教程&#xff1a;https://www.wenjiangs.com/doc/iyx6stww 参考博客&#xff1a;https://www.jb51.net/article/201309.htm 用在xml中&#xff0c;常用注解&#xff1a; XStreamAliasType(value“要修改成的全限定名”): 包名修改 XStreamAlias(“user”) : 修改类,…

力扣hot100——第5天:22括号生成、23合并K个升序链表、31下一个排列

文章目录1.22括号生成1.1.题目1.2.题解2.23合并K个升序链表2.1.题目2.2.解答3.31下一个排列3.1.题目3.2.解答1.22括号生成 参考&#xff1a;力扣题目链接&#xff1b;题解1&#xff0c;题解2 1.1.题目 1.2.题解 这道题目是使用递归的方法来求解&#xff0c;因为要求解所有的…

这个macOS神器,让爱怀旧的人直呼:“爷青回!”

写在前面 Hello&#xff0c;大家好&#xff0c;我们又见面了。 停止更新了两周多&#xff0c;本来打算荒废这个CSDN的&#xff0c;但对写文章的热爱又逼着我继续写…… 这次我们要推荐一个macOS神器&#xff0c;叫“Aqua Menu Bar”。 以后永远不写水文了&#xff0c;告别CS…

AJAX异步请求解决跨域问题的三种方式

一 什么是跨域 出于浏览器的同源策略限制。同源策略&#xff08;Sameoriginpolicy&#xff09;是一种约定&#xff0c;它是浏览器最核心也最基本的安全功能&#xff0c;如果缺少了同源策略&#xff0c;则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的…

移动应用测试场景的五个重点

移动应用程序测试在移动开发生命周期中至关重要。开发人员和应用程序测试人员在上线之前应该考虑不同的移动应用程序测试场景。考虑到每天发布的应用程序数量&#xff0c;这一点尤为重要。根据 Statista 的数据&#xff0c;2020 年全球移动应用下载量已增至 2180 亿次。这导致了…

通过.sh文件快捷部署jar包到服务器上

参考博客&#xff1a;https://blog.csdn.net/qq_43382350/article/details/125008727 直接写一个脚本文件&#xff0c;每次运行这个文件就可以通过.sh文件快捷部署jar包到服务器上。 在合适的文件夹下创建脚本文件 vim start.sh 内容如下(三个jar包分别放置在a1、a2、a3文件夹…

SAR雷达系统反设计及典型目标建模与仿真实现研究——目标生成与检测(Matlab代码实现)

&#x1f352;&#x1f352;&#x1f352;欢迎关注&#x1f308;&#x1f308;&#x1f308; &#x1f4dd;个人主页&#xff1a;我爱Matlab &#x1f44d;点赞➕评论➕收藏 养成习惯&#xff08;一键三连&#xff09;&#x1f33b;&#x1f33b;&#x1f33b; &#x1f34c;希…

白话强化学习(理论+代码)

文章目录前言强化学习概述案例alphaGo无人驾驶why强化学习特点基本理论部分基本概念马尔可夫模型马尔可夫链案例马尔科夫决策过程累计回报概念及其求取流程案例算法目的Q-Leaning真实值与预测值案例离线学习Sarsa选择动作函数代码DQN流程预估“表”与实际“表”编码坑点环境修改…