CA证书颁发机构服务器

news2024/10/7 14:34:02

目录

一、CA证书颁发机构是什么?

二、数字证书可以干什么?

三、PKI:即公钥加密体系(public key cryptography)

四、CA在网络中的工作流程及原理(以网站为例)

五、HTTPS 的工作原理

六、CA私有证书服务器搭建案例


一、CA证书颁发机构是什么?

CA是什么?CA是Certificate Authority的简写,从字面意思翻译过来是凭证管理中心,认证授权。它有点类似我们生活中的身份证颁发机构,这里的CA就相当于生活中颁发身份证的机构。不同于生活中的颁发机构,这里的CA是给服务器颁发证书。颁发证书的目的同生活中的办理身份证的目的类似,都是为了证明一件事,生活中的身份证可以证明我们是一个合法的公民,而服务器颁发证书的目的也是证明我们服务是一个合法的服务器,换句话说就是有了证书我们就可以清楚知道我们访问的服务器到底是不是我们真正想访问的服务器。从而识别我们访问的服务器的真假。

二、数字证书可以干什么?

证书的作用就是为了验证其服务器的真实合法性,以及传输服务端的公钥的作用。而服务器的公钥就是用来客户端向服务端发送随机密码,用来加密随机密码的作用,从而实现,只有服务端可以拿到这个随机密码的作用,实现安全加密通信。

三、PKI:即公钥加密体系(public key cryptography

公钥:用户的公钥可以公开给其它的网络用户。

私钥:只有用户自己才能访问,是用户自己私有的,不能被网络中其它的用户获取。

非对称加密

1、公钥加密私钥解密

Tom想将一个档案发给mike,在发送之前为了对发送的档案进行加密,mike会首先生成一对公私钥并将公钥发给Tom。之后Tom就通过此公钥对档案进行加密并发送给Mike。mike收到档案后根据私钥来对收到的档案进行解密。即使公钥在发送的过程中被窃听者截获,由于此加密的数据只能通过私钥才能进行解密,然而私钥只有mike拥有且不公开,所以窃听者就算截获了档案也是一堆被加密过的乱码。

2、公钥验证

Tom在向Mike发送合同之前会对合同的内容进行hash计算来生成用于验证数据内容的一串数字这串数字就被称为数字指纹,然后在通过私钥对生成的数字指纹进行加密运算生成的一串密文被叫做数字签名。之后Tom就会把合同内容与其计算出的数字签名一起发送给mike。mike收到报文后同样首先对合同的内容进行相同算法的hash运算来生成一串数字指纹,然后在用公钥对数据签名进行解密得到最初由发起者生成的另一个数字指纹,通过把mike计算生成的数字指纹和发起者传输过来的数字指纹进行比较,如果一样说明数据在传输的过程中没有被篡改,如果和发起者生成的数字指纹不一样说明mike收到的合同被篡改了。

对称加密

使用相同的密钥(如私钥)和算法对数据进行加解密。

四、CA在网络中的工作流程及原理(以网站为例)

1、申请证书

假如Server服务器预想在网络上发布一个支持https安全访问的网站,并向网络中的访问者证明自己的网站是真实存在的网站。则网站的开发人员就需要向CA证书颁发机构去申请获取数字证书。在此过程中Server服务器会事先生成一对公私钥,并向CA授权机构递交一份证书申请书,其包含有网站管理者的一些信息和网站服务器的公钥。

2、CA证书颁发机构审核信息

CA证书颁发机构在CA服务器上收到Server网站服务器发送过来的证书申请书后会去核实其申请者递交的信息是否真实可信,经过实际考察确认真实存在且合法后就会在申请者递交的信息上添加其CA机构的一些信息组成一个明文信息,然后CA就会对明文进行哈希运算后,在通过CA的私钥对其进行加密生成数字签名(原理同公钥验证)即带有CA数字签名的明文信息一起构成了数字证书。然后CA再将数字证书颁发给Server服务器。

 

五、HTTPS 的工作原理

1、客户端发起HTTPS请求

用户在浏览器里输入一个 https 网址,然后连接到 server 的 443 端口。

2、服务端的配置

采用 HTTPS 协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。

这套证书其实就是一对公钥和私钥,如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。

 

3、传送证书

服务器在收到用户访问请求后会将自己从CA

4、客户端解析证书

客户端收到网站的数字证书后,会首先判断其数字证书的真假、是否有效被吊销。客户端根据网站数字证书上标注的证书颁发机构,去使用计算机信任的此根CA证书(即CA机构的公钥)去对网站发送过来的证书通过公钥验证的方式进行数字签名的解密比较,如果能够解开说明这个证书是某个CA证书授权机构认证过的、是可信的网站,然后客户端在将包含有此网站公钥的证书保存到本地。否则用户网页就会提示此网站不安全,不可信。

 

5、传送加密信息

这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。

 

6、服务端解密信息

服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

 

7、传输加密后的信息

这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。

 

8、客户端解密信息

客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。

 

六、CA私有证书服务器搭建案例

实验环境:

1.Server-CA证书服务器

192.168.200.254

2.Client-Web网站客户端

192.168.200.28

搭建一台CA服务器

1、安装openssl软件

2、查看openssl的配置文件以及其配置策略

说明:可看到openssl默认配置里面指定了证书存放相关文件的路径,和CA默认匹配策略,其中国家名称、省州名称、组织名称是必须同CA设置的信息一致,当然这些匹配是否和CA设置的一样,是通过配置文件来判断的可自行设置。通用名称是必须要填写的,其他都是可选。

3、由于红帽8.0没有默认生成CA证书根目录结构,所以需根据openssl配置文件自行创建目录结构。

4、为CA服务器生成私钥

genrsa    生成私钥

-out        指定生成私钥的文件存储位置

-des        对生成的私钥加密所使用的加密算法

2049          密钥长度

()   代表在子bash中运行,目的是为了不改变当前Shell中的umask值

5、CA服务器为自身生成自签证书

req                       请求生成证书

-new                新请求

-x509              生成此格式的自签证书,用给自己颁发根CA

-key                指定生成证书所使用的私钥文件路径

-out                指定生成的证书文件保存位置

-days              指定生成证书的有效期

6、查看颁发的CA证书内容

x509             查看X509类型的证书

-in              输入要查看的证书文件

-nount     不输出显示证书编号信息

-text        以文本的方式输出显示证书的详细内容

说明:CA根证书生成以后,网络中的客户端就可以通过把CA根证书保存到本地根证书存储区域来信任由此CA颁发给网络中其它网站或程序的数字证书了。这样当用户访问由根CA机构颁发给网络中https的网站时,用户就可以根据本计算机中保存的根CA机构证书中的公钥(此公钥是CA服务器的公钥)来验证其访问的网站所展示的证书(包含web站点的公钥)是否真是被CA机构认证过,如果客户端用CA的公钥(证书)能够解密出web证书中的数字签名(此签名是CA在给web颁发证书时用CA的私钥签的名),就证明此网站是被CA机构认证过的,是可信的。然后客户端在根据从CA下载下来的证书吊销列表文件,去验证此网站的证书是否已被吊销失效,如果此网站的证书序列号在证书吊销列表内,则表名此网站的证书已被吊销,此网站有问题。如果网站证书验证没有错误,客户端就通过web证书中的公钥来加密传输接下来彼此发送数据用来进行加密的随机密钥,给web服务器,服务器收到用自己的公钥加密的数据包后,根据自己的私钥解密出随机密钥。之后服务器和用户的浏览器就通过此随机密钥来加密彼此之间传输的数据。

客户机申请证书

1、客户机生成私钥

2、生成证书请求模板文件,并将其发给CA服务器。

3、切换到CA服务器创建CA服务器颁发证书所需文件

4、签署客户端的证书申请请求

说明:在跟客户端颁发证书的时候需要依赖两个文件/etc/pki/CA/index.txt和/etc/pki/CA/serial,前者文件主要存放已经颁发的证书信息,后者存放下一个将要颁发的证书的序列号。这里说一下/etc/pki/CA下的各个文件和目录的作用吧,certs目录存放颁发证书的目录,crl存放吊销证书列表文件的目录,index.txt.attr存放证书subject信息是否唯一的配置信息,index.txt.old存放上一次颁发证书的信息,newcerts目录存放已经颁发的证书,并且以序列号命名的证书,每颁发一次证书,在我们指定的路径下生成指定名称的证书后,newcerts目录下会自动生成一个以序列号为名称的证书,这个证书同我们指定路径下存放的证书信息一模一样。private目录存放私钥文件。serial.old存放上一次颁发证书的序列号。

5、把签发的数字证书文件发送给客户端申请者,之后客户端就可以在支持https的网站上使用此证书进行安全加密连接了。

客户端申请吊销证书

1、客户端查看数字证书内的serial序列号和subject信息将其发送给CA服务器申请吊销此证书。由于是模拟环境我们可以直接在CA服务上查看客户要吊销的证书信息。

2、CA服务器收到客户提交的serial和subject信息后将此信息与证书信息数据库文件index.txt中的信息进行比较,确认一致无误后,就可以吊销之前颁发给web客户的证书了 。

3、吊销证书

-revole     吊销证书

4、查看被吊销的证书

5、在生成证书吊销列表crl.pem(在windows中格式为*.crl)文件之前,如果是首次吊销证书,需创建/etc/pki/CA/crlnumber的文件,用于指定接下来要吊销的证书序列号。

6、生成并更新证书吊销列表文件

-gencrl    生成证书吊销列表文件

5、通过查看证书吊销列表文件内容判断CA是否已经吊销了web客户的证书。

在window上查看CA颁发给web客户端的证书(*.crt)和证书吊销列表文件(*.crl)。

 

@声明:“山月润无声”博主知识水平有限,以上文章如有不妥之处,欢迎广大IT爱好者指正,小弟定当虚心受教!

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

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

相关文章

Android 实战 :DrySister (第一版) — 项目搭建与简单实现

1.一些BB: 入门教程在上一年的11月份就写完了,到现在也有差不多9个多月了, 当时由于自己工作上的一些原因,没有写一个实战的项目,很是遗憾。 最近项目终于也差不多快收尾了,可能会稍微有一些时间&#xff…

矩阵特征值特征向量理解

文章目录 特征值特征向量补充一点关于正交标准化和相似对角化的理解为什么要正交规范化呢?相似对角化为什么要相似对角化捏 特征值特征向量 一些收集到的资料 资料一 迷惑很久,终于想通。 其实是一种数据的处理方法,可以简化数据。矩阵乘特征…

Hugging News #0821: Hugging Face 完成 2.35 亿美元 D 轮融资

每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「Hugging News」。本期 Hugging News 有哪些有趣的消息&#xff0…

uniapp 微信小程序webview 踩坑

uniapp 微信小程序的存在许多功能上的限制和约束,有些情况不得不去使用webview进行开发实现需求,比如 原生无法满足(例如某团队维护SDK 只提供了WEB端jsSDK,且不维护小程序SDK) H5可以同时适用多端(适用范围…

需求分析入门

认识管理软件 什么是管理软件 管理软件就是用来辅助企业进行管理的软件,既包括对企业“人、财、物”相关的资产信息的管理,也包括对企业“供、产、销”相关的业务活动信息的管理。管理软件的重点在于管理信息的收集、流转,资源的共享、集成…

【Redis】Redis 的学习教程(六)Redis 的缓存问题

在服务端中,数据库通常是业务上的瓶颈,为了提高并发量和响应速度,我们通常会采用 Redis 来作为缓存,让尽量多的数据走 Redis 查询,不直接访问数据库。 同时 Redis 在使用过程中(高并发场景下)也…

JavaScript中详解数组的算法

在 JavaScript 中,数组是一种常见的数据结构,它可以存储多个元素,并且可以通过索引来访问和修改这些元素。数组算法是对数组进行各种操作和处理的方法和技巧。下面是一些常见的数组算法: 遍历数组:可以使用 for 循环、…

谁爱待在Android谁待,再也卷不动了

在当前经济环境下,Android开发行业确实面临着竞争激烈、岗位减少的困境。因此,寻求具有更多岗位和良好市场前景的开发方向变得尤为重要。在此背景下,音视频开发和车载开发无疑是两个值得关注的领域。 音视频开发的前景 互联网和智能手机的普…

每日一题——旋转图像

旋转图像 题目链接 方法一:利用辅助数组 通过对示例的观察和分析,我们可以得到这样的结论: 对于原数组的下标为i行元素,顺时针旋转九十度后,都变成了下标为(n-1-i)列元素。如图所示&#xff…

代理模式 静态代理和动态代理(jdk、cglib)——Java入职第十一天

一、代理模式 一个类代表另一个类去完成扩展功能,在主体类的基础上,新增一个代理类,扩展主体类功能,不影响主体,完成额外功能。比如买车票,可以去代理点买,不用去火车站,主要包括静态代理和动态代理两种模式。 代理类中包含了主体类 二、静态代理 无法根据业务扩展,…

蜜桃星球 | 主理人,轻创业翻身副业,情趣赛道行业陪跑服务

我们为什么能在年纪轻轻的时候赚到钱? 一个重要原因就是,接触互联网后,我们所进入的所有行业,都是轻资产领域。 从流量到运营,所有的行业都是轻资产行业,都是不需要囤货的生意,只需要一根网线…

代替forever下一个部署node的持久化工具---pm2

最近有个后端项目,用的是node,在持久化的时候会挂掉,详细了解到用的是nohup,然后先详细了解了一下nohup nohup是一个Linux命令,用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行1nohup的英文全称…

react学习之路:InputNumber的parser在ts里面报类型错误

错误提示&#xff1a; Type ‘(value: string | undefined) > string’ is not assignable to type ‘(displayValue: string | undefined) > 0 | 2 | 20’. Type ‘string’ is not assignable to type ‘0 | 2 | 20’. 代码示例&#xff1a; <InputNumbermin{0}m…

电视盒子哪款好?数码党私藏网络电视盒子排行榜

电视盒子称得上是家家户户必备了&#xff0c;但是不同品牌和不同产品之间的体验差异较大&#xff0c;让大家在挑选电视盒子时都会纠结电视盒子哪款好&#xff0c;我身为资深数码粉&#xff0c;接下来将给各位分享数码粉心中最值得入手的网络电视盒子排行榜&#xff0c;看看电视…

关于xml中返回string类型代码中用list接收的问题,扫描

1.结论,xml中返回为string的话,在list中只会取出来第一个元素 //根据value查询GetMapping("getTest")public List<HashMap> getTest() {List<HashMap> list dictService.getTest();return list;} <select id"getTest" resultType"jav…

伦敦银交易时间怎么选择?

伦敦银和伦敦金都是全球性的交易品种&#xff0c;一般的现货贵金属交易平台&#xff0c;都可以同时经营这两个品种&#xff0c;而且它们的交易时间是一致的&#xff0c;以香港市场的平台为例&#xff0c;基本上交易时间都会从北京周一的早上7点&#xff0c;延续到周六凌晨5点左…

Shell脚本进阶:提升你的自动化脚本编程技巧

摘要&#xff1a;本文将介绍一些Shell脚本进阶技巧&#xff0c;帮助你提高自动化脚本编程的效率和可靠性。我们将涵盖一些常用的Shell脚本编程技巧&#xff0c;并提供相关的代码示例&#xff0c;以便读者更好地理解和应用这些技巧。 1. 函数的使用 Shell脚本中的函数可以帮助我…

【Day-24慢就是快】代码随想录-二叉树-二叉树的层序遍历

给你一个二叉树&#xff0c;请你返回其按 层序遍历 得到的节点值。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 ———————————————————————————————————————— 借助辅助队列来实现层序遍历。也就是图论中的广…

AI助乡行——点燃乡村振兴新引擎

随着数字化浪潮的袭来&#xff0c;乡村振兴战略的推进离不开数字化、智慧化等现代化治理能力和方式&#xff0c;人工智能等高新技术正不断与农村经济、社会、治理等加速融合。在智慧农业的背景下&#xff0c;我们可以解决一系列困扰农民的问题&#xff0c;包括如何增加经济作物…