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

HTTPS与CA证书:安全通信全解析

  • CA(Certificate Authority):证书颁发机构,负责签发和管理数字证书,验证证书持有者的身份。
  • HTTPS:基于 SSL/TLS 协议的 HTTP,通过证书实现客户端与服务器的身份验证和数据加密。
  • HTTPS=HTTP+SSL/TLS
    HTTP:以明文的方式通过 80端口进行数据传输
    HTTPS:以数据加密的方式通过443端口进行数据传输
  • 连接建立过程
  • 客户端发起请求:客户端向服务器发送一个 HTTPS 请求,请求中包含客户端支持的加密算法、SSL/TLS 协议版本等信息,随机生成一组32字节数据random_c。
  • 服务器响应:服务器收到请求后,选择双方都支持的加密算法和协议版本,并将自己的数字证书发送给客户端,公钥加密数据随机生成一组32个字节的数据random_s。
  • 客户端验证与密钥交换:客户端验证服务器的数字证书,并从中获取服务器的公钥。然后客户端生成一个随机的对称加密密钥pre_master,使用服务器的公钥对其进行加密,并发送给服务器。
  • 连接建立:服务器使用自己的私钥解密客户端发送的对称加密密钥pre_master,双方都拥有了相同的对称加密密钥,之后就可以使用该密钥进行加密数据传输,同时通过消息认证码来确保数据的完整性。最后的会话密钥:random_c+random_s+pre_master

一,CA机构的搭建

openssl:  命令的选项
-x509  :生成自签名证书格式,专用于创建私有CA
-new :生成新证书的签署请求
-key  :生成请求时用到的私钥文件路径
-out  :生成后的文件存放路径,如果是自签名操作,将直接生成签署过的证书
-days  :证书有效期 默认是365天

二,环境部署

1.CA机构 用ycy1.example.com(已经部署好了DNS服务)

1.1 查看CA的默认配置文件 vim /etc/pki/tls/openssl.cnf

证书目录:

1.2 对比发现默认的CA配置文件和现有的不一致

所以需要创建四个文件:
/etc/pki/CA/index.text
/etc/pki/CA/carert.pem
/etc/pki/CA/serial
/etc/pki/CA/private/cakey.pem

1.3 前提:在DNS服务器上的正向解析数据库中添加ca.example.com的解析内容
vim /var/named/examp.com
ca IN A 192.168.100.200

1.4在主机CA上为主机CA生成私钥

(umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem)解析:
umask 077	//创建文件时,设置只有所有者具有读写权限
openssl genrsa		//生成私钥
-out		//设置私钥的存放路径

1.5在主机CA上为主机CA生成自签名证书

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365
Country Name(国家):CN
State or Province Name(省份):HB
Locality Name(城市):WH
Organization Name(组织名称):LQ
Organizational Unit Name(组织单位名称):LINUX
Common Name(服务器主机名):ca.example.com
Email Address(邮箱):root@example.com

1.5 创建剩下的两个文件

2.配置WEB服务器

选择ycy2.example.com 192.168.100.20

2.1 确保DNS关联ycy1的IP地址192.168.100.10

2.2 获取私钥,创建目录存放

2.3 生成自签名证书

openssl req -new  -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365

2.4 在主机WEB上将CA主机上已经数字签名后的Web证书下载下来

scp httpd.csr root@ca.example.com:/etc/pki/CA/

CA机构可以查看到这个文件(签名证书文件httpd.csr)

2.5 在主机CA上 对签署请求进行数字签名,并指明所生成的Web证书的存放路径

openssl ca -in /etc/pki/CA/httpd.csr -out /etc/pki/CA/httpd.crt -days 365##httpd.crt WEB站点证书

2.6在CA机构将根证书复制给客户端

scp httpd.crt root@ycy2.example.com:/etc/httpd/ssl/

客户端可以看到

2.7 在主机WEB上安装apche http扩展模块mod_ssl 提供安全站点

yum -y install mod_ssl

2.8 在主机WEB上修改主配置文件,使用刚刚下载的web证书

cd /etc/httpd/conf.d/
vim ssl.conf

修改证书目录和私钥目录

2.9 创建安全的站点

vim /etc/httpd/conf.d/httpd-vhost.conf

2.10 在DNS服务器上将cacert.pem 复制到根目录(客户端ycy3)

scp root@192.168.100.10:/etc/pki/CA/cacert.pem .

2.11 打开火狐浏览器,导入证书
设置–首选项–高级–证书–查看证书–导入–找到根证书,然后双击–把“信任使用此CA标识的网站”勾上–确定–确定

2.12 在web创建test文件,并写入123456

2.13 验证

三,集成动态WEB

主机WEB上:

  1. 安装httpd mod_wsgi

yum -y install httpd  mod_wsgi

2.上传动态web内容–Python语言编写

mkdir  /var/www/wsgi
cd  /var/www/wsgi   	//然后将Python编写的动态web内容上传到该目录下
注意,转移的文件ch可能没有执行权限,所以需要赋予文件执行权限
chmod +x 【文件名】

3.通过filezille上传网页

4.将python.txt脚本名字改为test.py并给与执行权限

5.虚拟主机定义网页内容

给脚本取一个别名访问的时候通过py.example.com就可以访问脚本test.py

重启:systemctl restart httpd

6.验证

7.访问洛奇科技的indel.html

不需要别名

验证:

http://www.dtcms.com/a/328862.html

相关文章:

  • CA+https+动态WEB页面部署
  • JavaWeb核心:HttpServletRequest与HttpServletResponse详解
  • Linux 服务部署:自签 CA 证书构建 HTTPS 及动态 Web 集成
  • OpenBMC中观察者模式架构与实现全解析
  • http与https协议区别;vue3本地连接https地址接口报500
  • 解惑rust中的 Send/Sync(译)
  • 什么是费曼学习法?
  • 机器学习-Cluster
  • Jenkins一直无法启动,怎么办?
  • C# winform 调用 OPC UA C# WinForm 的批量订阅方法
  • Java19 Integer 位操作精解:compress与expand《Hacker‘s Delight》(第二版,7.4节)
  • 向长波红外成像图注入非均匀噪声
  • 【嵌入式电机控制#31】FOC:霍尔安装误差的补偿
  • Unity:GUI笔记(二)——工具栏和选择网格、滚动列表和分组、窗口、自定义皮肤样式、自动布局
  • Linux系统有何特点?linux系统组成如何?
  • NTUSER.DAT是什么文件
  • 华为云之Redis部署及基础语法
  • 遨游通讯推出两款三防平板,满足“危急特”场景定制化需求
  • 《AVL树的原理与C++实现:详解平衡二叉搜索树的高效构建与操作》
  • ACL 可以限制哪些流量?入方向和出方向怎么判断?
  • 高级IO(五种IO模型介绍)
  • wordpress不同页面调用不同keywords和description
  • STM32CubeMX + HAL 库:用FSMC接口与IS62WV51216芯片实现stm32外部SRAM扩展
  • csp知识基础——贪心算法
  • Java协程深度教程:从概念到Spring Boot实战
  • XCZU6CG-2FFVC900I Xilinx FPGA AMD ZynqUltraScale+ MPSoC
  • 【计算机网络】王道考研笔记整理(4)网络层
  • 【C++】哈希的应用:位图和布隆过滤器
  • VMD+皮尔逊+降噪+重构(送报告+PPT)Matlab程序
  • Java Record 类 — 简化不可变对象的写法