Linux系统:CentOS 7 CA证书服务器部署

目录

一、理论

1.CA认证中心

2.CA证书服务器部署

二、实验

1. CA证书服务器部署

三、总结


一、理论

1.CA认证中心

(1)概念

CA :CertificateAuthority的缩写,通常翻译成认证权威或者认证中心,主要用途是为用户发放数字证书

功能:证书发放、证书更新、证书撤销和证书验证。

作用:身份认证,数据的不可否认性

端口:443

证书请求文件:CSR是Cerificate Signing Request的英文缩写,即证书请求文件,也就是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件,证书申请者只要把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书的私钥签名就生成了证书文件,也就是颁发给用户的证书。

(2)名词介绍

①key 私钥  = 明文--自己生成(genrsa )

②csr 公钥  = 由私钥生成

③crt  证书  = 公钥 + 签名(自签名或者由CA签名)

④证书:server.crt文件就是证书

⑤签名:使用私钥key与公钥csr进行证书server.crt生成的过程称为签名

在这里插入图片描述

 

(3)https 与 http 区别

  1. HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。

  2. 使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。

  3. HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,客户端和服务器需要交换 3 个包,而 HTTPS 除了 TCP 的三个包,还要加上 ssl 握手需要的 9 个包,所以一共是 12 个包。

  4. http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。

  5. HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源。

 (4)https原理

原理如下:

1.客户端发起 HTTPS 请求
这个没什么好说的,就是用户在浏览器里输入一个 https 网址,然后连接到 server 的 443 端口。2.服务端的配置
采用 HTTPS 协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请,区别就是自己颁发的证书需要客户端验证通过,才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面(startssl 就是个不错的选择,有 1 年的免费服务)。
这套证书其实就是一对公钥和私钥,如果对公钥和私钥不太理解,可以想象成一把钥匙和一个锁头,只是全世界只有你一个人有这把钥匙,你可以把锁头给别人,别人可以用这个锁把重要的东西锁起来,然后发给你,因为只有你一个人有这把钥匙,所以只有你才能看到被这把锁锁起来的东西。3.传送证书
这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等。4.客户端解析证书
这部分工作是有客户端的 TLS 来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密,就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容。5.传送加密信息
这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。6.服务端解密信息
服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。7.传输加密后的信息
这部分信息是服务段用私钥加密后的信息,可以在客户端被还原。8.客户端解密信息
客户端用之前生成的私钥解密服务段传过来的信息,于是获取了解密后的内容,整个过程第三方即使监听到了数据,也束手无策。

2.CA证书服务器部署

(1) 环境准备

表1 服务器

主机IP地址
CA证书服务器192.168.204.69
Apache服务器192.168.204.186

(2)CA证书服务器的配置

[root@server ~]# yum install -y openssl     //安装OpenSSL工具默认是安装好了的 
[root@server ~]# vim /etc/pki/tls/openssl.cnf    //查看配置文件
42 dir             = /etc/pki/CA           #相关证书的存放的目录
43 certs           = $dir/certs            #存储签发的数字证书
45 database        = $dir/index.txt        # 记录颁发证书的信息
51 serial          = $dir/serial            #记录证书编号
[root@server ~]# cd /etc/pki/CA/    //这个目录是存放证书相关的文件的地方
[root@server CA]# ls
certs  crl  newcerts  private
[root@server CA]# cd private/    //这个目录是存放CA证书服务的私钥的地方CA证书服务器创建自签名证书并设置权限为600
[root@server ~]# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus
..............................................+++
.............................................................+++
e is 65537 (0x10001)CA证书服务器签发本地自签名证书(需要输入一些基本信息)
[root@server ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365
Country Name (2 letter code) [XX]:CN      //国家
State or Province Name (full name) []:JS  //所在省
Locality Name (eg, city) [Default City]:NJ   //所在市
Organization Name (eg, company) [Default Company Ltd]:APACHE    //单位名称
Organizational Unit Name (eg, section) []:APACHE-SERVER  //组织单位名称
Common Name (eg, your name or your server's hostname) []:jw.com    //单位的域名
Email Address []:admin@163.com   邮箱CA证书服务还需要创建两个文件,才可以执行颁发证书操作
[root@server ~]# cd /etc/pki/CA/    //进入这个目录
[root@server CA]# touch index.txt    //创建记录申请证书的文件
[root@server CA]# echo 01 > serial    //证书编号
[root@server CA]# cat serial 
01

(2) Apache服务器的配置

[root@clinet ~]# yum install -y httpd mod_ssl 
[root@clinet ~]# echo "this is CA " >> /var/www/html/index.html     //写入一个页面,暂时不要启动httpd服务器创建私钥httpd.key
[root@clinet ~]# mkdir ssl    //创建一个目录
[root@clinet ~]# cd ssl/
[root@clinet ssl]# (umask 077;openssl genrsa -out /root/ssl/httpd.key 2048)
Generating RSA private key, 2048 bit long modulus
......+++
................................................................+++
e is 65537 (0x10001)依据私钥生成证书申请文件
[root@clinet ssl]# openssl req -new -key httpd.key -out httpd.csr    //填写相关信息即可
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:JS
Locality Name (eg, city) [Default City]:NJ
Organization Name (eg, company) [Default Company Ltd]:APACHE
Organizational Unit Name (eg, section) []:APACHE-SERVER
Common Name (eg, your name or your server's hostname) []:jw.com
Email Address []:admin@163.comPlease enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:123456
An optional company name []:apache[root@clinet ssl]# ls    //最后在这个目录就生成了两个文件了
httpd.csr  httpd.key然后我们将生成的证书申请文件发送到 CA证书服务器进行授权操作
[root@clinet ssl]# scp httpd.csr root@192.168.204.69:/

(3) CA证书服务器的操作

[root@server /]#openssl ca -in httpd.csr -out /etc/pki/CA/certs/httpd.crt -days 365
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:Serial Number: 1 (0x1)ValidityNot Before: Aug 27 10:42:07 2023 GMTNot After : Aug 26 10:42:07 2024 GMTSubject:countryName               = CNstateOrProvinceName       = JSorganizationName          = APACHEorganizationalUnitName    = APACHE-SERVERcommonName                = jw.comemailAddress              = admin@163.comX509v3 extensions:X509v3 Basic Constraints: CA:FALSENetscape Comment: OpenSSL Generated CertificateX509v3 Subject Key Identifier: 68:52:C5:41:3F:1E:7C:25:FE:06:87:79:91:F1:DD:BD:62:41:50:AEX509v3 Authority Key Identifier: keyid:0A:47:11:F3:83:F6:6B:E7:D8:6F:C5:3F:DE:42:C6:71:B6:ED:6F:FDCertificate is to be certified until Aug 26 10:42:07 2024 GMT (365 days)
Sign the certificate? [y/n]:y1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated然后我们在将生成的证书文件传送会Apache服务器即可
[root@server /]# scp /etc/pki/CA/certs/httpd.crt root@192.168.204.186:/root/ssl
root@192.168.204.186's password: 
httpd.crt                                                      100% 4571     7.2MB/s   00:00    

(4) Apache服务器的操作

[root@clinet ssl]# ls   然后就会如下的文件
httpd.crt  httpd.csr  httpd.key
[root@clinet ~]# vim /etc/httpd/conf.d/ssl.conf   //然后我们编辑这个文件   添加这两个文件所在的路径即可100 SSLCertificateFile /root/ssl/httpd.crt107 SSLCertificateKeyFile /root/ssl/httpd.key先关闭防火墙以及selinux 不然等下启动会出现问题
[root@clinet ssl]# systemctl stop firewalld   
[root@clinet ssl]# setenforce 0
[root@clinet ssl]# systemctl start httpd
[root@clinet ssl]# ss -tan |grep 80
LISTEN     0      128       [::]:80                    [::]:*   
[root@clinet ssl]# ss -tan |grep 443
LISTEN     0      128       [::]:443                   [::]:* 

(5) 浏览器访问测试

浏览器输入https://192.168.204.186访问测试
因为我们自行搭建的证书服务器颁发的证书不具备权威性,所有浏览器还是提示为不安全

点击访问出现如下画面也是可以正常访问的

this is CA

点击证书来进行查看颁发者,CA证书服务器结合httpd服务器的实验就此完成

二、实验

1. CA证书服务器部署

(1)CA证书服务器的配置

安装OpenSSL工具

完成

查看配置文件:

42行为相关证书的存放的目录,43行为存储签发的数字证书

45行为记录颁发证书的信息

 

 51行为记录证书编号

切换存放证书相关的文件的目录

切换存放CA证书服务的私钥的目录

CA证书服务器创建自签名证书并设置权限为600

生成文件

CA证书服务器签发本地自签名证书(需要输入一些基本信息)

 CA证书服务还需要创建两个文件,才可以执行颁发证书操作:

 

(2) Apache服务器的配置

 写入一个页面,暂时不要启动httpd服务器:

 创建私钥httpd.key:

 生成文件:

 依据私钥生成证书申请文件

 查看在这个目录就生成了两个文件

 然后将生成的证书申请文件发送到 CA证书服务器进行授权操作

(3) CA证书服务器的操作

然后将生成的证书文件传送会Apache服务器

(4) Apache服务器的操作

查看

编辑这个文件

添加这两个文件所在的路径即可

 

 先关闭防火墙以及selinux

启动服务并查看端口

(5) 浏览器访问测试

因为自行搭建的证书服务器颁发的证书不具备权威性,所有浏览器还是提示为不安全

  点击访问出现如下画面也是可以正常访问的

 可以点击证书来进行查看

三、总结

名词介绍:

①key 私钥  = 明文--自己生成(genrsa )

②csr 公钥  = 由私钥生成

③crt  证书  = 公钥 + 签名(自签名或者由CA签名)

④证书:server.crt文件就是证书

⑤签名:使用私钥key与公钥csr进行证书server.crt生成的过程称为签名

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

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

相关文章

MySQL数据库——DQL操作——基本查询

文章目录 前言事前准备——测试数据整表查询指定列查找别名查询MySQL运算符条件查询模糊查询排序查询聚合查询分组查询分组之后的条件筛选 分页查询将整张表的数据插入到另一张表中 前言 MySQL数据库常见的操作是增删查改,而其中数据的查询是使用最多,也…

【前端】JQ实时显示当前日期、时间、星期

效果图 html <span id"time"></span> JS // 实时显示当前时间 $(document).ready(function () {function showTime() {var today new Date;var y today.getFullYear();var M today.getMonth() 1;var d today.getDate();var w today.getDay();va…

Adapter Tuning Overview:在CV,NLP,多模态领域的代表性工作

文章目录 Delta TuningAdapter Tuning in CVAdapter Tuning in NLP Delta Tuning Adapter Tuning in CV 题目: Learning multiple visual domains with residual adapters 机构&#xff1a;牛津VGG组 论文: https://arxiv.org/pdf/1705.08045.pdf Adapter Tuning in NLP …

R语言APRIORI关联规则、K-MEANS均值聚类分析中药专利复方治疗用药规律网络可视化...

全文链接&#xff1a;http://tecdat.cn/?p30605 应用关联规则、聚类方法等数据挖掘技术分析治疗的中药专利复方组方配伍规律&#xff08;点击文末“阅读原文”获取完整代码数据&#xff09;。 方法检索治疗中药专利复方&#xff0c;排除外用中药及中西药物合用的复方。最近我们…

探讨uniapp的路由与页面生命周期问题

1 首先我们引入页面路由 2 页面生命周期函数 onLoad() {console.log(页面加载)},onShow() {console.log(页面显示)},onReady(){console.log(页面初次显示)},onHide() {console.log(页面隐藏)},onUnload() {console.log(页面卸载)},onBackPress(){console.log(页面返回)}3 页面…

初识linux系统(一)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、linux 发展史 二、Linux操作系统的特点 三、Linux操作系统内核版本 四、常见发行版本 五、 常见开源软件 六、 常见应用场景 七、系统安装 总结 前言 …

2023年天府杯——C 题:码头停靠问题

问题背景&#xff1a; 某个港口有多个不同类型的码头&#xff0c;可以停靠不同种类的船只。每 艘船只需要一定的时间来完成装卸货物等任务&#xff0c;并且每个码头有容量 限制和停靠时间限制。港口需要在保证收益的情况下&#xff0c;尽可能地提高 运营效率和降低成本。同…

tensorrtx部署yolov5 6.0

文章目录 一. yolov5 v6.0训练模型二.训练好的yolov5模型转tensorrt引擎 一. yolov5 v6.0训练模型 官网下载yolov5 v6.0代码 下载官方预训练好的模型 安装yolov5所需要的库文件&#xff0c;requirements.txt在下载好的yolov5源代码中有 pip install -r C:\Users\10001540…

Spring MVC:@RequestMapping

Spring MVC @RequestMapping属性@RequestMapping @RequestMapping, 是 Spring Web 应用程序中最常用的注解之一,主要用于映射 HTTP 请求 URL 与处理请求的处理器 Controller 方法上。使用 @RequestMapping 注解可以方便地定义处理器 Controller 的方法来处理不同的 HTTP 请求…

Spring与Mybatis集成且Aop整合

目录 一、集成 1.1 集成的概述 1.2 集成的优点 1.3 代码示例 二、整合 2.1 整合概述 2.2 整合进行分页 一、集成 1.1 集成的概述 集成是指将不同的组件、部分或系统组合在一起&#xff0c;以形成一个整体功能完整的解决方案。它是通过连接、交互和协调组件之间的关系来实…

Excel操作技巧:如何粘贴保留单元格大小

有时我们需要在Excel中复制和粘贴并保持单元格大小。它在工作中节省了很多时间。也使数据集更具吸引力。在这篇文章中,我们将通过一些简单快捷的示例和解释来学习如何做到这一点。 一、使用上下文菜单在Excel中复制和粘贴以保持单元格大小 上下文菜单是Excel的一个重要功能。…

Hadoop

阅读前请看一下&#xff1a;我是一个热衷于记录的人&#xff0c;每次写博客会反复研读&#xff0c;尽量不断提升博客质量。文章设置为仅粉丝可见&#xff0c;是因为写博客确实花了不少精力。希望互相进步谢谢&#xff01;&#xff01; 文章目录 阅读前请看一下&#xff1a;我是…

入门vue——创建vue脚手架项目 以及 用tomcat和nginx分别部署vue项目(vue2)

入门vue——创建vue脚手架项目 以及 用tomcat和nginx分别部署vue项目&#xff08;vue2&#xff09; 1. 安装npm2. 安装 Vue CLI3. 创建 vue_demo1 项目&#xff08;官网&#xff09;3.1 创建 vue_demo1 项目3.1.1 创建项目3.1.2 解决 sudo 问题 3.2 查看创建的 vue_demo1 项目3…

公司内部网段多管控乱,该如何规范跨网文件传输交换?

古往今来&#xff0c;高筑墙一直是有效的防御措施。从边塞长城到护城河外的高高城墙&#xff0c;都是利用隔离地域的形式实现保护安全域的效果。这样一来&#xff0c;城内的安全域可以在遇到危险时受到有效保护。 在企业网络安全防护方面&#xff0c;网络安全域隔离也是网络安全…

Ansible学习笔记10

1、在group1的被管理机里的mariadb里创建一个abc库&#xff1b; 1&#xff09; 然后我们到agent主机上进行检查&#xff1a; 可以看到数据库已经创建成功。 再看几个其他命令&#xff1a; #a组主机重启mysql&#xff0c;并设置开机自启 ansible a -m service -a "namemy…

Jupyter installation Tutorial

文章目录 1. 面向的系统2. 什么是Jupyter&#xff1f;3. 安装Python环境4. 安装Jupyter notebook5. Jupyter的启动和配置6. Jupyter的使用技巧7. conclusion参考文献 1. 面向的系统 Windows安装 2. 什么是Jupyter&#xff1f; Jupyter Notebook是一个开源的Web应用程序&…

问道管理:2023股票印花税是多少钱?2023印花税新规?

在a股市场上&#xff0c;投资者交易股票需求交纳必定的佣钱费用、过户费用以及印花税&#xff0c;其间印花税率和过户费率是固定的&#xff0c;而佣钱费率不同的证券公司有所不同&#xff0c;那么&#xff0c;2023股票印花税是多少钱&#xff1f;2023印花税新规&#xff1f;下面…

Mac 安装php多版本,brew安装php8.0

因为需要我要在mac上装两个php版本&#xff0c;先前我已经装过php7.4,下面我们逐步安装php8.0 开始安装8.0&#xff1a; 直接运行安装 brew install php8.0 遇到问题怀疑是仓库太老了&#xff0c;更新一下homebrew ,重新安装 brew update 安装成功了,不过看了下版本好像不能正…

Python2021年3月Python二级 -- 编程题解析

题目一 设计一个停车场收费计算器 (收费规则&#xff0c;2小时以内收费5元&#xff0c;超出部分每小时加收2元)&#xff0c;:要求如下: 1.设计的程序要能输入停车时间 (单位为小时&#xff0c;输入的小时数为整数 2.程序可以根据输入的停车时间自动计算出停车费&#xff0c;并且…

非计算机科班如何丝滑转码?(本人就是有点不丝滑)

我觉得无非三个办法可以选择(当然可能有其他方法) 自学 报班 有师傅带 但是在学习之前&#xff0c;你一定要明确你学习编程的目的是什么&#xff01; 游戏开发&#xff1f;后台研发&#xff1f;爬虫工程师&#xff1f;前端程序员?数据分析师&#xff1f; 或者 仅仅是想做一…