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

目录

一、理论

1.CA认证中心

2.CA证书服务器部署

二、实验

1. CA证书服务器部署


一、理论

1.CA认证中心

(1)概念

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

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

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

端口:443

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

 (2)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 要更耗费服务器资源。

 (3)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.com

Please 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)
        Validity
            Not Before: Aug 27 10:42:07 2023 GMT
            Not After : Aug 26 10:42:07 2024 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = JS
            organizationName          = APACHE
            organizationalUnitName    = APACHE-SERVER
            commonName                = jw.com
            emailAddress              = admin@163.com
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                68:52:C5:41:3F:1E:7C:25:FE:06:87:79:91:F1:DD:BD:62:41:50:AE
            X509v3 Authority Key Identifier: 
                keyid:0A:47:11:F3:83:F6:6B:E7:D8:6F:C5:3F:DE:42:C6:71:B6:ED:6F:FD

Certificate is to be certified until Aug 26 10:42:07 2024 GMT (365 days)
Sign the certificate? [y/n]:y


1 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.crt
   107 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) 浏览器访问测试

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

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

 

 可以点击证书来进行查看

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java线程 - 详解(1)

一,创建线程 方法一:继承Thread类 class MyThread extends Thread{Overridepublic void run() {System.out.println("线程1");} }public class Test {public static void main(String[] args) {MyThread myThread new MyThread();myThread.…

ChatGPT 与前端技术实现制作大屏可视化

像这样的综合案例实分析,我们可以提供案例,维度与指标数据,让ChatGPT与AIGC 帮写出完整代码,并进行一个2行2列的布局设置。 数据与指令如下: 商品名称 销量 目标 完成率 可乐 479 600 79.83% 雪碧 324 600 54.00% 红茶 379 600 63.…

LLMs NLP模型评估Model evaluation ROUGE and BLEU SCORE

在整个课程中,你看到过类似模型在这个任务上表现良好,或者这个微调模型在性能上相对于基础模型有显著提升等陈述。 这些陈述是什么意思?如何形式化你的微调模型在你起初的预训练模型上的性能改进?让我们探讨一些由大型语言模型开…

httpd协议与apache

1.http 相关概念 HTTP是处于应用层的协议,使用TCP传输层协议进行可靠的传送。因此,需要特别提醒的是,万维网是基于因特网的一种广泛因特网应用系统,且万维网采用的是HTTP(80/TCP)和 HTTPS(443/…

哔哩哔哩 B站 bilibili 视频视频音效调节 清澈人声

视频音效调节方式:直接视频播放内容界面内鼠标右键点击视频音效调节 注意:需要使用的是谷歌浏览器,我的火狐浏览器试了不行,都没选项,火狐的出来的界面是这样的: 目录 具体操作如下: 1、谷歌…

第八章,帖子列表

8.1添加帖子列表 <script> import { mapState } from vuex . . . </script> computed: {...mapState([auth,user,articles]) }, <Message :sh

mysql sql 执行流程

监控查询缓存的命中率 show status like ‘%qcache%’; mysql 缓存机制&#xff0c;以及 8.0 为啥取消 select sql_NO_Cache * from 表 where xxx; # 不使用缓存

(WAF)Web应用程序防火墙介绍

&#xff08;WAF&#xff09;Web应用程序防火墙介绍 1. WAF概述 ​ Web应用程序防火墙&#xff08;WAF&#xff09;是一种关键的网络安全解决方案&#xff0c;用于保护Web应用程序免受各种网络攻击和威胁。随着互联网的不断发展&#xff0c;Web应用程序变得越来越复杂&#x…

微服务集成spring cloud sentinel

目录 1. sentinel使用场景 2. sentinel组成 3. sentinel dashboard搭建 4. sentinel客户端详细使用 4.1 引入依赖 4.2 application.properties增加dashboard注册地址 4.3 手动增加限流配置类 4.4 rest接口及service类 4.5 通过dashboard动态配置限流规则 1. sentinel使…

TIM输入捕获笔记 (计算编码电机的频率和占空比)

1. 输入捕获简介 IC (Input Capture) 输入捕获输入捕获模式下&#xff0c;当通道输入引脚出现指定电平跳变时&#xff0c;当前CNT的值将被锁存到CCR中&#xff0c;可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数每个高级定时器和通用定时器都拥有4个输入捕获…

[管理与领导-53]:IT基层管理者 - 8项核心技能 - 8 - 持续改进

前言&#xff1a; 管理者存在的价值就是制定目标&#xff0c;即目标管理、通过团队&#xff08;他人&#xff09;拿到结果。 要想通过他人拿到结果&#xff1a; &#xff08;1&#xff09;目标&#xff1a;制定符合SMART原则的符合业务需求的目标&#xff0c;团队跳一跳就可以…

AUTOSAR规范与ECU软件开发(实践篇)6.7 服务软件组件与应用层软件组件端口连接

在生成了BSW模块的代码后, 切换到ISOLAR-A系统级设计界面,会发现产生一些基础软件模块的服务软件组件: BswM、 ComM、 Det和EcuM等, 如图6.60所示。 图6.60 生成了BSW后的服务软件组件 此时, 如果涉及服务软件组件与应用层软件组件的交互, 就需要为应用层软件组…

数据结构--树4.1

目录 一、树的定义 二、结点的分类 三、结点间的关系 四、结点的层次 五、树的存储结构 一、树的定义 树&#xff08;Tree&#xff09;是n&#xff08;n>0&#xff09;个结点的有限集。当n0时称为空树&#xff0c;在任意一个非空树中&#xff1a; ——有且仅有一个特定的…

2023年高教社杯 国赛数学建模思路 - 复盘:校园消费行为分析

文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…

Apache StreamPark系列教程第一篇——安装和体验

一、StreamPark介绍 实时即未来,在实时处理流域 Apache Spark 和 Apache Flink 是一个伟大的进步,尤其是Apache Flink被普遍认为是下一代大数据流计算引擎, 我们在使用 Flink & Spark 时发现从编程模型, 启动配置到运维管理都有很多可以抽象共用的地方, 我们将一些好的经验…

02.sqlite3学习——嵌入式数据库的基本要求和SQLite3的安装

目录 嵌入式数据库的基本要求和SQLite3的安装 嵌入式数据库的基本要求 常见嵌入式数据库 sqlite3简介 SQLite3编程接口模型 ubuntu 22.04下的SQLite安装 嵌入式数据库的基本要求和SQLite3的安装 嵌入式数据库的基本要求 常见嵌入式数据库 sqlite3简介 SQLite3编程接口模…

【awd系列】Bugku S3 AWD排位赛-9 pwn类型

文章目录 二进制下载检查分析运行二进制ida分析解题思路exp 二进制下载 下载地址&#xff1a;传送门 检查分析 [rootningan 3rd]# file pwn pwn: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for …

Vue中ElementUI结合transform使用时,发现弹框定位不准确问题

在近期开发中&#xff0c;需要将1920*1080放到更大像素大屏上演示&#xff0c;所以需要使用到transform来对页面进行缩放&#xff0c;但是此时发现弹框定位出错问题&#xff0c;无法准备定位到实际位置。 查看element-ui官方文档无果后&#xff0c;打算更换新的框架进行开发&am…

【业务功能篇85】微服务-springcloud-Nginx-反向代理-网关

Nginx域名 1.hosts文件 在c:/window/system32/drivers/etc/hosts文件&#xff0c;我们在这个文件中添加 192.168.56.100 msb.mall.com注意如果是没有操作权限&#xff0c;那么点击该文件右击属性&#xff0c;去掉只读属性即可 通过这个域名访问到Nginx服务 2.Nginx的方向代…

[牛客复盘] 牛客周赛 Round 9 20230827

[牛客复盘] 牛客周赛 Round 9 20230827 总结小美的外卖订单编号1. 题目描述2. 思路分析3. 代码实现 小美的加法1. 题目描述2. 思路分析3. 代码实现 小美的01串翻转1. 题目描述2. 思路分析3. 代码实现 小美的数组操作1. 题目描述2. 思路分析3. 代码实现 六、参考链接 总结 又是…