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.pswp.cn/pingmian/92961.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/92961.shtml

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

相关文章

AI生成代码时代的商业模式重构:从“软件即产品”到“价值即服务”

2025年,全球AI代码生成市场规模突破63亿元(数据来源:《中国AI代码生成行业发展报告》),开发者效率提升40%以上,软件开发成本下降30%。这一技术浪潮正在颠覆传统软件行业的商业逻辑——当代码生成变得像文字编辑一样简单时,企业如何构建可持续的商业模式? 本文将从硬件…

C#特性与反射知识梳理

C#中的**特性(Attributes)和反射(Reflection)**是两个非常重要的概念,它们通常用于代码的元编程,允许你在运行时获取类型信息并对其进行操作。下面对这两个概念进行详细梳理:一、C#中的特性&…

SQL 语法详解

SQL 语法详解 引言 SQL(Structured Query Language)是一种用于数据库管理的标准语言,它允许用户进行数据的查询、更新、插入和删除等操作。SQL语法是数据库管理和编程的基础,本篇文章将详细介绍SQL的基本语法和常用操作&#xff0…

为什么 sim(3) 中的尺度 s 与旋转 R 相乘,而不是平移 t?

文章目录为什么 sim(3) 中的尺度 s 与旋转 R 相乘,而不是平移 t?1️⃣ sim(3) vs SE(3):结构对比与核心差异2️⃣ 为什么尺度 s 不乘在 t 上?🚫 数学破坏:🧭 几何解释:3️⃣ t 是“相…

如何为你的 Docker 容器设置代理网络

一文搞定!如何为你的 Docker 容器设置代理网络(及一个最常见的“坑”) 你是否遇到过这样的窘境:在你的服务器上,代理工具(比如 Clash, V2Ray)运行得好好的,浏览器也能科学上网,但一旦把应用放进 Docker 容器,它就瞬间“失联”,无法访问外部世界? 别担心,这是每个…

LeetCode Day3 -- 哈希表

目录 1. 啥是哈希表? 2. 啥时候用哈希表? 2.1 存在性检查 → 集合Set 2.2 键值映射 → 字典Dict 2.3 频率统计 → Dict or Counter 3. LeetCode 3.1 集合 (1)2215 找出两数组的不同 (2)1207 独一无…

三子棋装置(电赛24E题)K230/STM32全开源

三子棋装置(电赛24E题)K230/STM32全开源,后续有具体代码参数讲解,帮助大家移植k230代码import time, os, sysfrom media.sensor import * from media.display import * from media.media import *from machine import UART from m…

终端安全检测与防御

1. 终端安全风险主要问题:企业网络中80%的安全事件源于终端,终端成为黑客攻击的重要目标。攻击手段:勒索病毒:直接勒索用户。横向渗透:通过受控终端攻击内部服务器。僵尸网络危害:信息窃取、钓鱼网站引导、…

Video_AVI_Packet(2)

博主声明:内容来自网络,仅供参考,仅适用于浅了解,如有错误,自行甄别,由此引起的后果概不负责 Video_AVI_Packet(2)一、Video Picture Aspect Ratio 与 Active Format Aspect Ratio1.…

八月补丁星期二:微软修复 111 个漏洞

微软将在2025 年 8 月补丁星期二修复 111 个漏洞,这一数量与近期平均水平大致相同。 与上个月的情况类似,微软知道今天发布的漏洞中只有一个已被公开披露,但声称没有证据表明存在野外利用。同样,截至发布时,唯一的补丁…

《C++进阶之继承多态》【普通类/模板类的继承 + 父类子类的转换 + 继承的作用域 + 子类的默认成员函数】

【普通类/模板类的继承 父类&子类的转换 继承的作用域 子类的默认构造函数】目录前言:------------------------一、继承的定义和使用1. 什么使继承?2. 为什么要引入继承?3. 怎么使用继承?① 父类(基类&#xf…

Ubuntu22.04安装OBS Studio

OBS官网的最新的虽然支持Ubuntu系统,但是只支持最新的24.2版本的,而我的电脑上的Ubuntu的版本是22.04,所以在网上寻求解决办法,看到了这一片博客,作为参考来实现ubuntu22.04安装OBS,这里提示一下&#xff0…

Ansible 基本使用

Ansible 清单 静态主机清单 主机清单支持多种格式,例如ini、yaml、脚本等。 本次课程使用 ini 格式。 #创建主机清单[lykcontroller ~ 13:36:01]# vim inventory#vim添加controllernode1node2node3node4​#测试连接单个服务器[lykcontroller ~ 14:08:18]$ ansibl…

网络资源模板--基于Android Studio 实现的九寨沟App

目录 一、测试环境说明 二、项目简介 三、项目演示 四、部设计详情(部分) 首页 购票页面 五、项目源码 一、测试环境说明 电脑环境 Windows 11 编写语言 JAVA 开发软件 Android Studio (2020) 开发软件只要大于等于测试版本即可(近几年官网直接下载也…

系统架构设计师备考之架构设计实践知识

1.信息系统架构设计理论与实践1.1.基本概念信息系统架构定义目前关于信息系统架构较为权威的定义有: (1)信息系统架构是系统的结构,由软件元素、元素外部可见属性和元素间关系组成。 (2)信息系统架构是软件…

【IgH EtherCAT】如何利用 RTAI 提供的实时任务和调度机制来构建一个高精度、确定性的工业控制应用

SVG图展示了系统的分层架构:RTAI实时层:包含RT_TASK、信号量和定时器EtherCAT Master层:主站、域、从站配置和PDO映射EtherCAT网络层:与实际硬件设备(EL3162模拟输入、EL2004数字输出)通信关键特点&#xf…

7款热门智能电视文件管理器横向评测

7款智能电视文件管理器横向评测 在智能电视和电视盒子日益普及的今天,一款好用的文件管理器能让您的数字生活更加便捷。本文为您评测了7款广受欢迎的TV版文件管理器,助您找到最适合自己的工具。 1. ES文件浏览器TV版 ES文件浏览器是一款广受欢迎的多功能…

Python 类元编程(导入时和运行时比较)

导入时和运行时比较 为了正确地做元编程,你必须知道 Python 解释器什么时候计算各个代码 块。Python 程序员会区分“导入时”和“运行时”,不过这两个术语没有严 格的定义,而且二者之间存在着灰色地带。在导入时,解释器会从上到 下…

[git diff] 对比检查变更 | 提交前复审 | 版本回退

git diff git diff 是 Git 版本控制系统中用于比较文件差异的核心命令,可以显示工作目录、暂存区(Index)和仓库历史之间的变化。 通过对比不同版本或状态的文件内容,帮助开发者理解代码变更。 比较工作目录与暂存区 运行以下命令查…

【数据可视化-85】海底捞门店数据分析与可视化:Python + pyecharts打造炫酷暗黑主题大屏

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…