当前位置: 首页 > news >正文

CA证书颁发机构服务器

目录

一、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爱好者指正,小弟定当虚心受教!

相关文章:

CA证书颁发机构服务器

目录 一、CA证书颁发机构是什么? 二、数字证书可以干什么? 三、PKI:即公钥加密体系(public key cryptography) 四、CA在网络中的工作流程及原理(以网站为例) 五、HTTPS 的工作原理 六、CA私有证…...

5. 线性层及其他层

5.1 神经网络结构 5.2 线性拉平 import torch import torchvision from torch import nn from torch.nn import ReLU from torch.nn import Sigmoid from torch.utils.data import DataLoader from torch.utils.tensorboard import SummaryWriterdataset torchvision.datase…...

PhpStorm安装篇

PhpStorm安装篇: 下载地址 : 进入官网下PhpStorm: PHP IDE and Code Editor from JetBrains 下载完之后,安装包 安装目录建议不要放C盘,放其他盘,其他直接一直点 next ,到结束 安装完,打开编辑器 注册账号并登录后…...

麒麟Linux常见问题

文章目录 麒麟Linux常见问题 1. yum下载不了文件1)报错信息2)原因3)解决(1)更换下载源(2)缓存处理 4)验证 2. 麒麟Linux常见问题 1. yum下载不了文件 1)报错信息 faile…...

一百六十八、Kettle——用海豚调度器定时调度从Kafka到HDFS的任务脚本(持续更新追踪、持续完善)

一、目的 在实际项目中,从Kafka到HDFS的数据是每天自动生成一个文件,按日期区分。而且Kafka在不断生产数据,因此看看kettle是不是需要时刻运行?能不能按照每日自动生成数据文件? 为了测试实际项目中的海豚定时调度从…...

Linux centos7 bash编程(小练习)

一、打印九九乘法口诀 这一个for循环嵌套的小练习&#xff0c;难度不大。提供一种写法&#xff0c;供参考&#xff1a; #!/bin/bash # 文件名&#xff1a;99table.sh # 打印输出九九乘法口诀表 for i in {1..9} do for ((j1;j<$i;j)) do …...

【SpringBoot】Web server failed to start. Port 8080 was already in use.

问题描述 SpringBoot启动Web服务器失败。 *************************** APPLICATION FAILED TO START ***************************Description:Web server failed to start. Port 8080 was already in use.Action:Identify and stop the process thats listening on port 80…...

day-36 代码随想录算法训练营(19)part05

435.无重叠区间 思路&#xff1a;首先对数组排序&#xff0c;只需要关注重叠区间就行&#xff0c;有重叠时计数1&#xff0c;然后更新当前右边界为重叠区间中的最小右边界。 763.划分字母区间 思路&#xff1a;记录每一个字母的最远位置&#xff0c;然后从头开始遍历&#xf…...

Vue3 实现JS动态改变CSS样式

以颜色为例子 定义颜色变量 import { reactive } from vue; // 可变的主题颜色 let chooseColor reactive({--color: #be2a27 }) CSS中使用 var() 函数引用颜色变量(这里是用elementPlus为例, 也可以改) :deep(.is-active) {color: var(--color);border-bottom: 2px solid…...

最新社区团购电商小程序源码 无bug完美运营版+详细搭建部署教程

分享一个开源社区团购电商小程序源码&#xff0c;无bug完美运营版&#xff0c;含完整前后端详细搭建部署教程。 系统运营模式&#xff1a;整合线下社区资源&#xff0c;由各快递代收点、社区便利店、社区物业、业主等发起的社区微信群&#xff0c;推送商品信息&#xff0c;消费…...

恒运资本:三大指数震荡走低,地产股大幅回撤,光刻胶概念逆市上涨

周四&#xff08;8月31日&#xff09;&#xff0c;到上午收盘&#xff0c;A股三大指数震动走低。其间&#xff0c;上证指数跌0.53%&#xff0c;报3120.39点&#xff1b;深证成指和创业板指别离跌0.55%、0.54%&#xff1b;沪深两市算计成交额5290.51亿元&#xff0c;总体来看&am…...

DP读书:不知道干什么就和我一起读书吧——以《鲲鹏处理器 架构与编程》中鲲鹏软件的构成为例

DP读书&#xff1a;不知道干什么就和我一起读书吧 为啥写博客&#xff1a;好处一&#xff1a;记录自己的学习过程优点二&#xff1a;让自己在各大社群里不那么尴尬推荐三&#xff1a;坚持下去&#xff0c;找到一个能支持自己的伙伴模版&#xff1a;鲲鹏软件构成硬件特定软件1. …...

现货黄金走势图中的止盈点

对平仓时机的把握能力&#xff0c;是衡量现货黄金投资者水平的重要标志&#xff0c;止盈点设置得是否合理&#xff0c;在行情兑现的时候能否及时地离场&#xff0c;是事关投资者账户浮盈最终能否落袋为安的“头等大事”&#xff0c;要在现货黄金走势图中把握止盈点&#xff0c;…...

MyBatisPlus实现多租户功能

前言&#xff1a;多租户是一种软件架构技术&#xff0c;在多用户的环境下&#xff0c;共有同一套系统&#xff0c;并且要注意数据之间的隔离性。 一、SaaS多租户简介 1.1、SaaS多租户 SaaS&#xff0c;是Software-as-a-Service的缩写名称&#xff0c;意思为软件即服务&#x…...

JAVA-斐波那契数列

输入一个整数 n &#xff0c;求斐波那契数列的第 n 项。 假定从 0 开始&#xff0c;第 0 项为 0 。 数据范围 0≤n≤39 样例 输入整数 n5 返回 5class Solution {public int Fibonacci(int n) {int[] dpnew int[250];dp[0]0;dp[1]1;for(int i2;i<n;i){dp[i]dp[i-1]dp[i-2];}…...

keepalived+lvs(DR)

目录 一&#xff0c;作用 二&#xff0c;调度器配置 1&#xff0c;安装keepalived 2&#xff0c; 安装ipvsadm 3&#xff0c; 配置keepalived 4. 查看lvs节点状态 5&#xff0c; web节点配置 1.1 调整ARP参数 1.2 配置虚拟IP地址 1.3添加回环路由 1.4安装nginx并写…...

基于Matlab实现频谱分析(附上源码+数据集)

Matlab是一个功能强大的数值计算和科学计算软件&#xff0c;可以用于频谱分析。频谱分析是一种信号处理技术&#xff0c;用于将时域信号转换为频域信号&#xff0c;以便更好地理解信号的频率特性。本文将介绍使用Matlab实现频谱分析的方法。 文章目录 部分源码完整源码数据集下…...

【Java】多线程(进阶)

多线程进阶 常见的所策略乐观锁和悲观锁重量级锁和轻量级锁自旋锁和挂起等待锁自旋锁挂起等待锁 读写锁和互斥锁读写锁互斥锁 公平锁和非公平锁公平锁非公平锁 可重入锁和不可重入锁可重入锁不可重入锁 CASCAS应用实现原子类实现自旋锁 CAS的ABA问题 synchronized原理基本特点加…...

BMP图片读写实践:rgb转bgr

本实理论上支持24位图和32位图&#xff0c;实际上只测试了24位。原理很简单&#xff0c;就是RGB中的蓝色字节和红色字节交换。 测试代码1&#xff1a; #include <stdio.h> #include <unistd.h> #include <sys/stat.h> #include <stdlib.h> #include &l…...

交通科技与管理杂志社交通科技与管理编辑部2023年第9期目录

专家论坛 黑龙江省经济高质量发展与生态环境保护耦合协调发展研究 刘降斌;祃玉帅; 1-5142 我国省际数字经济高质量发展水平综合评价研究 耿娟;毕晨曦; 6-8 振兴龙江《交通科技与管理》投稿邮箱&#xff1a;cn7kantougao163.com(注明投稿“《交通科技与管理》”) 数…...

根据源码,模拟实现 RabbitMQ - 网络通讯设计,实现客户端Connection、Channel(完结)

目录 一、客户端代码实现 1.1、需求分析 1.2、具体实现 1&#xff09;实现 ConnectionFactory 2&#xff09;实现 Connection 3&#xff09;实现 Channel 二、编写 Demo 2.1、实例 2.1、实例演示 一、客户端代码实现 1.1、需求分析 RabbitMQ 的客户端设定&#xff…...

The Cube++ Illumination Estimation Dataset 文章总结

The Cube++ Illumination Estimation Dataset 颜色恒常性数据集Cube++ Type: Academic Journal Author: Ershov Link: https://ieeexplore.ieee.org/document/9296220 Select: ⭐️⭐️⭐️⭐️ Status: Done 备注: Cube++数据集 Journal: ACCESS Year: 2020 code: https://g…...

“烧钱”的大模型,如何迈过存储这道坎?

几乎每一个行业都在讨论大模型&#xff0c;每一个行业巨头都在训练大模型&#xff0c;人工智能已然进入了大模型主导的时代。 想要占领大模型应用的高地&#xff0c;数据和算力可以说是不可或缺的基石。和算力相关的讨论已经有很多&#xff0c;以至于英伟达的市值在2023年翻了…...

UNIX网络编程卷一 学习笔记 第二十九章 数据链路访问

目前大多操作系统都为程序提供访问数据链路层的功能&#xff0c;此功能可提供以下能力&#xff1a; 1.能监视由数据链路层接收的分组&#xff0c;使得tcpdump之类的程序能运行&#xff0c;而无需专门的硬件设备来监视分组。如果结合使用网络接口进入混杂模式&#xff08;promis…...

WebGIS的一些学习笔记

一、简述计算机网络的Internet 概念、网络类型分类、基本特征和功用是什么 计算机网络的Internet 概念 计算机网络是地理上分散的多台独立自主的计算机遵循约定的通讯协议&#xff0c;通过软、硬件互连以实现交互通信、资源共享、信息交换、协同工作以及在线处理等功能的系统…...

java Spring Boot将不同配置拆分入不同文件管理

关于java多环境开发 最后还有一个小点 我们一般会将不同的配置 放在不同的配置文件中 好处肯定就在于 想换的时候非常方便 那么 我们直接看代码 我们将项目中的 application.yml 更改代码如下 spring:profiles:active: dev这里 意思是 我们选择了dev 环境 然后创建一个文件 …...

Docker(三) 创建Docker镜像

一、在Docker中拉取最基本的Ubuntu系统镜像 搜索Ubuntu镜像 Explore Dockers Container Image Repository | Docker Hub 下载镜像 docker pull ubuntu:22.04 二、在镜像中添加自己的内容 使用ubuntu镜像创建容器 docker run -it ubuntu:20.04 /bin/bash 在容器中创建了一个文…...

Linux操作系统--shell编程(正则表达式)

1..正则表达式概述 正则表达式使用单个字符串来描述、匹配一系列符合某个语法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。在 Linux 中,grep,sed,awk 等文本处理工具都支持通过正则表达式进行模式匹配。 2.常规的匹配操作 3.…...

k8s的service mesh功能有那些

Kubernetes&#xff08;K8s&#xff09;的服务网格&#xff08;Service Mesh&#xff09;是一种用于管理微服务架构中服务通信、安全性、可观察性等方面的工具集合。服务网格通过将网络和安全功能从应用程序代码中分离出来&#xff0c;帮助简化了微服务的部署和管理。以下是一些…...

【数据库技术】NineData数据复制,加速实时数仓构建

8 月 30 日&#xff0c;由 NineData 和 SelectDB 共同举办的主题为“实时数据驱动&#xff0c;引领企业智能化数据管理”的线上联合发布会&#xff0c;圆满成功举办&#xff01;双方聚焦于实时数据仓库技术和数据开发能力&#xff0c;展示如何通过强大的生态开发兼容性&#xf…...