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

Linux中Https配置与私有CA部署指南

Linux中Https配置与私有CA部署指南

一、HTTPS 核心概念

特性HTTPHTTPS
协议明文传输HTTP + SSL/TLS
端口80443
加密未加密数据加密

二、SSL/TLS 握手流程

  1. Client → Server
    • ClientHello:支持哪些版本、支持哪些加密算法,随机生成一组32字节数据 random_c
  2. Server → Client
    • ServerHello:确定版本、确定加密算法,随机生成一组32字节数据 random_s
    • ServerCertificate:发送证书(含公钥)
  3. Client → Server
    • ClientKeyExchange:用公钥加密预主密钥 pre_master 并发送
  4. Server 解密
    • 服务端收到后,用私钥解密 pre_master
  5. 生成会话密钥
    • 最终密钥 = random_c + random_s + pre_master

三、私有CA部署

注意:所有操作需确保 DNS 解析正确(如 ca.example.comweb.example.com 等)。

1、CA 服务器配置
  1. 配置正向解析对应IP地址

    vim /var/named/yyh.comca      IN      A       192.168.100.10
    
  2. 为主机CA生成私钥

    (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem)
    # umask为权限减去的值
    # openssl genrsa为生成私有密钥
    
  3. 为主机CA生成自签名证

    openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out 	/etc/pki/CA/cacert.pem -days 365
    # 生成自签名根证书CN					# 国家
    HB					# 省份
    WH					# 城市
    LQ					# 公司
    linux				# 单位
    ca.example.com		# 服务器主机名
    root@example.com	# 邮箱
    

    在这里插入图片描述

  4. 为CA提供所需的目录及文件:

    touch /etc/pki/CA/index.txt			# 创建目录
    echo 01 > /etc/pki/CA/serial		# 创建并写入文件
    
2、Web 服务器申请证书
  1. 验证能否解析 ca.example.com

    nslookup ca.example.com				# 对 ca.example.com 进行解析
    

    在这里插入图片描述

  2. 为主机WEB生成私钥

    mkdir /etc/httpd/ssl										# 创建/etc/httpd/ssl目录
    (umask 077;openssl genrsa -out /etc/httpd/ssl/httpd.key)	# 存放在/etc/httpd/ssl目录
    
  3. 为web.example.com站点生成签署请求文件

    openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr -days 365
    # 生成证书签名请求CN					# 国家
    HB					# 省份
    WH					# 城市
    LQ					# 公司
    linux				# 单位
    web.example.com		# 服务器主机名
    root@example.com	# 邮箱
    

    在这里插入图片描述

  4. 将签署请求文件发送给CA服务器

    scp /etc/httpd/ssl/httpd.csr root@ca.example.com:/etc/pki/CA/
    # 远程复制
    
3、CA 签署证书
  1. 在主机CA上 对签署请求进行数字签名

    openssl ca -in /etc/pki/CA/httpd.csr -out /etc/pki/CA/httpd.crt -days 365
    # 指明所生成的Web证书的存放路径为 /etc/pki/CA/httpd.crt
    

    在这里插入图片描述

  2. 将CA主机上已经数字签名后的Web证书发给Web主机

    scp /etc/pki/CA/httpd.crt root@web.example.com:/etc/httpd/ssl/
    # 远程复制
    
4、部署https站点
  1. 在主机WEB上安装apche http扩展模块mod_ssl

    yum -y install mod_ssl		# yum 安装 mod_ssl
    
  2. 修改 SSL 配置

    vim /etc/httpd/conf.d/ssl.conf		# 编辑 ssl 配置文件SSLCertificateFile /etc/httpd/ssl/httpd.crt			# 证书SSLCertificateKeyFile /etc/httpd/ssl/httpd.key		# 私钥
    

    在这里插入图片描述

  3. 配置虚拟主机

    vim httpd-vhosts.conf		# 编辑主配置文件<VirtualHost 192.168.100.20:443>						# IP 地址和端口号DocumentRoot "/var/www/html"						# 告诉配置文件位置在哪里ServerName web.eaxmple.com							# 完整域名SSLEngine on										# 启用 SSL 引擎SSLCertificateFile /etc/httpd/ssl/httpd.crt			# 证书位置SSLCertificateKeyFile /etc/httpd/ssl/httpd.key		# 私玥位置</VirtualHost>systemctl restart httpd
    

    在这里插入图片描述

5、客户端信任私有 CA
  1. 在客户端上去下载CA服务器上的根证书

    scp  root@ca.example.com:/etc/pki/CA/cacert.pem  /root
    # 远程复制
    
  2. 在Web主机创建网页

    echo 123456 > /var/www/html/index.html		# 创建并写入文件
    
  3. 在客户端验证

    curl -k https://web.example.com				# 访问网址
    

    在这里插入图片描述

6、集成动态web
  1. 安装httpd mod_wsgi

    yum -y install mod_wsgi			# yum 安装 mod_wsgi
    
  2. 上传动态web内容:

    在这里插入图片描述

  3. 配置虚拟主机

    mv python.txt test.py								# 把 python.txt 更名为 test.pyvim /etc/httpd/conf.d/httpd-vhosts.conf				# 编辑主配置文件<VirtualHost 192.168.100.20:80>					# IP 地址和端口号DocumentRoot "/var/www/wsgi"				# 告诉配置文件位置在哪里WSGIScriptAlias / "var/www/wsgi/test.py"	# 别名ServerName lq.example.com					# 完整域名</VirtualHost>systemctl restart httpd								# 重启服务
    
  4. 访问验证

    在这里插入图片描述

  5. 修改虚拟主机

    vim /etc/httpd/conf.d/httpd-vhosts.conf				# 编辑主配置文件<VirtualHost 192.168.100.20:80>					# IP 地址和端口号DocumentRoot "/var/www/wsgi"				# 告诉配置文件位置在哪里ServerName lq.example.com					# 完整域名</VirtualHost>systemctl restart httpd								# 重启服务
    
  6. 访问验证

    在这里插入图片描述

关键命令说明

命令选项作用
-x509生成自签名证书(用于创建 CA)
-new生成证书签名请求 (CSR)
-key指定私钥文件路径
-out指定输出文件路径
-days设置证书有效期(默认 365 天)
http://www.lryc.cn/news/618763.html

相关文章:

  • 股指期货基本术语是什么?
  • 云计算分类与主流产品
  • Neo4j Cypher语句
  • 设置默认的pip下载清华源(国内镜像源)和pip使用清华源
  • day49 力扣42. 接雨水 力扣84.柱状图中最大的矩形
  • 零基础数据结构与算法——第七章:算法实践与工程应用-性能分析与瓶颈
  • 全面解析远程桌面:功能实现、性能优化与安全防护全攻略
  • 北京-4年功能测试2年空窗-报培训班学测开-第七十四天-线下面试-聊的很满意但可能有风险-等信吧
  • 第十篇:3D模型性能优化:从入门到实践
  • 【DL】Deep Learning base
  • CASS11三维坡度着色显示
  • PR新建项目
  • ARM芯片架构之CoreSight SoC-400 组件介绍
  • windows单机单卡+CIFAR-10数据集+Docker模拟训练
  • 自建知识库,向量数据库 体系建设(一)之BERT 与.NET 4.5.2 的兼容困境:技术代差下的支持壁垒
  • 【数据分享】2018-2024年中国10米分辨率春小麦和冬小麦分布栅格数据
  • Shell 实现多级菜单脚本编写
  • 每日一练:将一个数字表示成幂的和的方案数;动态规划、深度优先搜索
  • WireShark:非常好用的网络抓包工具
  • AI重构Java开发:飞算JavaAI如何实现效率与质量的双重突破?
  • 晶片与电路板的桥梁-封装
  • Windows server服务器上部署python项目域名访问(超详细教程)
  • Day13 Vue工程化
  • 医疗智慧大屏系统 - Flask + Vue实现
  • Spring框架如何解决循环依赖
  • vue3 两种方法实现 按钮级别权限控制
  • vue3中el-upload使用http-request方式自定义上传文件
  • 支持任意 MCP 协议的客户端
  • Redis面试题及详细答案100道(16-32) --- 数据类型事务管道篇
  • 一,设计模式-单例模式