当前位置: 首页 > 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.dtcms.com/a/328238.html

相关文章:

  • Java 工厂方法模式
  • C++单继承虚函数表探索
  • 京东方 DV133FHM-NN1 FHD13.3寸 工业液晶模组技术档案
  • 玩转Docker | 使用Docker部署Radicale日历和联系人工具
  • [激光原理与应用-250]:理论 - 几何光学 - 透镜成像的优缺点,以及如克服缺点
  • 万物平台模型导入样例大全(实时更新中~)
  • SM4对称加密算法的加密模式介绍
  • JavaEE 初阶第十八期:叩开网络世界的大门(上)
  • ffmpeg-AVFilter 和 Filter Graph 使用指南
  • ffmpeg,ffplay, vlc,rtsp-simple-server,推拉流命令使用方法,及测试(二)
  • Stereolabs ZED相机 选型指南:双目 / 单目、短距 / 长距,如何为机器人视觉系统匹配最优方案?
  • 力扣-394.字符串解码
  • 【模型剪枝2】不同剪枝方法实现对 yolov5n 剪枝测试及对比
  • Homebrew 入门教程(2025 年最新版)
  • 获取虚谷数据库所有表名、表注释、字段名、字段类型、字段注释到word中
  • clickhouse基础概念及集群部署
  • 疏老师-python训练营-Day43复习日
  • Qwen-Image(阿里通义千问)技术浅析(一)
  • 谷歌 Web Guide 如何重塑搜索排名及其 SEO 影响
  • python技巧:控制转台的2个坑。
  • 从关键词到智能决策:孟庆涛如何用GEO重塑AI时代的搜索优化范式
  • 2025年受自适应差分进化-无人机路径规划的统一元启发式框架-附Matlab完整代码
  • 云计算核心技术
  • 附表B 正则表达式符号列表
  • Java缓冲流
  • Spring面试宝典
  • FPGA自学——FIFO缓存器
  • 游戏中角色持枪:玩家操控角色,角色转向时枪也要转向
  • 西门子PLC跨代通讯实战:S7-200通过以太网模块与S7-1500数据交互
  • PFC是什么