HTTP 超文本传输安全协议
字数 1706 2025-08-11 08:36:13

HTTP与HTTPS协议详解及HTTPS部署实战

一、HTTP协议基础

1. HTTP协议概述

HTTP(HyperText Transfer Protocol)是用于从万维网服务器传输超文本到本地浏览器的传送协议,基于TCP/IP通信协议传递数据(HTML文件、图片文件、查询结果等)。

2. HTTP工作原理

  • 工作于客户端-服务端架构
  • 浏览器作为HTTP客户端通过URL向HTTP服务端(WEB服务器)发送请求
  • 常见Web服务器:Nginx、Apache、IIS等
  • 默认端口号:80(可改为8080或其他端口)

3. HTTP核心特性

  1. 无连接:每次连接只处理一个请求,处理完成后即断开连接
  2. 媒体独立:任何类型数据都可以通过HTTP发送,只要客户端和服务器知道如何处理
  3. 无状态:协议对于事务处理没有记忆能力,后续处理需要前面信息时必须重传

4. HTTP消息结构

客户端请求消息包含:

  • 请求行(request line)
  • 请求头部(header)
  • 空行
  • 请求数据

服务器响应消息包含:

  • 状态行
  • 消息报头
  • 空行
  • 响应正文

5. HTTP请求方法

  • HTTP/1.0定义:GET、POST、HEAD
  • HTTP/1.1新增:OPTIONS、PUT、DELETE、TRACE、CONNECT

二、HTTPS协议详解

1. HTTPS基本概念

HTTPS(HyperText Transfer Protocol over Secure Socket Layer) = HTTP + SSL/TLS,在HTTP下加入SSL层,安全基础是SSL。

2. SSL/TLS协议

  • SSL(Secure Sockets Layer 安全套接层)
  • TLS(Transport Layer Security,SSL继任者)
  • 为网络通信提供安全及数据完整性

SSL协议分层

  1. SSL握手协议:身份认证、协商加密算法、交换加密密钥
  2. SSL记录协议:数据封装、压缩、加密

3. SSL服务功能

  1. 认证用户和服务器,确保数据发送到正确的客户机和服务器
  2. 加密数据防止中途被窃取
  3. 维护数据完整性,确保传输过程中不被改变

4. HTTP的安全风险

  1. 窃听风险:黑客可获知通信内容
  2. 篡改风险:黑客可修改通信内容
  3. 冒充风险:黑客可冒充他人身份参与通信

5. HTTPS解决方案

通过SSL证书实现:

  1. 所有信息加密传播
  2. 具有校验机制,一旦被篡改会立刻发现
  3. 配备身份证书,防止身份被冒充

证书验证流程

  1. 浏览器读取证书信息进行校验
  2. 查找系统中受信任的证书发布机构CA
  3. 取出CA公钥对证书签名解密
  4. 计算证书hash值与签名对比
  5. 验证通过后使用证书中的公钥加密

6. HTTPS缺点

  1. SSL证书费用高,部署维护繁琐
  2. 降低用户访问速度(多次握手)
  3. HTTP跳转HTTPS增加访问耗时
  4. 安全算法消耗CPU资源

三、CA机构与证书管理

1. CA机构介绍

CA(Certificate Authority)证书颁发机构负责证书的颁发、管理及吊销。证书包含拥有者信息、公钥、有效期、CA信息等。

证书三大功能

  1. 加密
  2. 签名
  3. 身份验证

2. 构建私有CA

环境准备

  1. 检查安装openssl
  2. 配置文件:/etc/pki/tls/openssl.cnf

创建CA服务器

  1. 创建所需文件:
    touch index.txt
    echo 01 > serial
    
  2. 生成CA私钥:
    (umask 066; openssl genrsa -out private/cakey.pem 2048)
    
  3. 生成自签名证书:
    openssl req -new -x509 -key private/cakey.pem -days 7300 -out cacert.pem
    

客户端证书申请

  1. 生成私钥:
    (umask 066; openssl genrsa -out /etc/pki/tls/private/www.qf.com.key 2048)
    
  2. 生成证书请求(CSR):
    openssl req -new -key /etc/pki/tls/private/www.qf.com.key -days 365 -out /etc/pki/tls/www.qf.com.csr
    
  3. 将CSR发送给CA服务器

CA签署证书

openssl ca -in /etc/pki/CA/private/www.qf.com.csr -out /etc/pki/CA/certs/www.qf.com.crt -days 365

证书吊销

  1. 吊销证书:
    openssl ca -revoke /etc/pki/CA/newcerts/01.pem
    
  2. 生成吊销编号:
    echo 01 > /etc/pki/CA/crlnumber
    
  3. 更新证书吊销列表:
    openssl ca -gencrl -out thisca.crl
    

四、Nginx HTTPS部署实战

1. 证书申请

  1. 在CA机构(如阿里云)申请证书
  2. 完成域名验证(文件验证或DNS验证)
  3. 下载证书文件(.key和.pem)

2. Nginx配置

server {
    listen 443 ssl;
    server_name www.testpm.cn;
    
    ssl_certificate /etc/nginx/cert/2447549_www.testpm.cn.pem;
    ssl_certificate_key /etc/nginx/cert/2447549_www.testpm.cn.key;
    
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
    ssl_prefer_server_ciphers on;
    
    location / {
        root /usr/share/nginx/html;
        index index.html index.htm;
    }
}

3. 配置完成后

  1. 测试配置:
    nginx -t
    
  2. 重新加载配置:
    nginx -s reload
    

五、关键总结

  1. HTTP是明文传输,HTTPS通过SSL/TLS加密传输
  2. SSL证书是HTTPS安全的核心,验证身份并加密数据
  3. 可自建CA或从商业CA机构获取证书
  4. Nginx配置HTTPS需要指定证书和私钥路径
  5. HTTPS虽增加安全性,但也带来性能开销和管理复杂性
HTTP与HTTPS协议详解及HTTPS部署实战 一、HTTP协议基础 1. HTTP协议概述 HTTP(HyperText Transfer Protocol)是用于从万维网服务器传输超文本到本地浏览器的传送协议,基于TCP/IP通信协议传递数据(HTML文件、图片文件、查询结果等)。 2. HTTP工作原理 工作于客户端-服务端架构 浏览器作为HTTP客户端通过URL向HTTP服务端(WEB服务器)发送请求 常见Web服务器:Nginx、Apache、IIS等 默认端口号:80(可改为8080或其他端口) 3. HTTP核心特性 无连接 :每次连接只处理一个请求,处理完成后即断开连接 媒体独立 :任何类型数据都可以通过HTTP发送,只要客户端和服务器知道如何处理 无状态 :协议对于事务处理没有记忆能力,后续处理需要前面信息时必须重传 4. HTTP消息结构 客户端请求消息 包含: 请求行(request line) 请求头部(header) 空行 请求数据 服务器响应消息 包含: 状态行 消息报头 空行 响应正文 5. HTTP请求方法 HTTP/1.0定义:GET、POST、HEAD HTTP/1.1新增:OPTIONS、PUT、DELETE、TRACE、CONNECT 二、HTTPS协议详解 1. HTTPS基本概念 HTTPS(HyperText Transfer Protocol over Secure Socket Layer) = HTTP + SSL/TLS,在HTTP下加入SSL层,安全基础是SSL。 2. SSL/TLS协议 SSL(Secure Sockets Layer 安全套接层) TLS(Transport Layer Security,SSL继任者) 为网络通信提供安全及数据完整性 SSL协议分层 : SSL握手协议 :身份认证、协商加密算法、交换加密密钥 SSL记录协议 :数据封装、压缩、加密 3. SSL服务功能 认证用户和服务器,确保数据发送到正确的客户机和服务器 加密数据防止中途被窃取 维护数据完整性,确保传输过程中不被改变 4. HTTP的安全风险 窃听风险:黑客可获知通信内容 篡改风险:黑客可修改通信内容 冒充风险:黑客可冒充他人身份参与通信 5. HTTPS解决方案 通过SSL证书实现: 所有信息加密传播 具有校验机制,一旦被篡改会立刻发现 配备身份证书,防止身份被冒充 证书验证流程 : 浏览器读取证书信息进行校验 查找系统中受信任的证书发布机构CA 取出CA公钥对证书签名解密 计算证书hash值与签名对比 验证通过后使用证书中的公钥加密 6. HTTPS缺点 SSL证书费用高,部署维护繁琐 降低用户访问速度(多次握手) HTTP跳转HTTPS增加访问耗时 安全算法消耗CPU资源 三、CA机构与证书管理 1. CA机构介绍 CA(Certificate Authority)证书颁发机构负责证书的颁发、管理及吊销。证书包含拥有者信息、公钥、有效期、CA信息等。 证书三大功能 : 加密 签名 身份验证 2. 构建私有CA 环境准备 检查安装openssl 配置文件:/etc/pki/tls/openssl.cnf 创建CA服务器 创建所需文件: 生成CA私钥: 生成自签名证书: 客户端证书申请 生成私钥: 生成证书请求(CSR): 将CSR发送给CA服务器 CA签署证书 证书吊销 吊销证书: 生成吊销编号: 更新证书吊销列表: 四、Nginx HTTPS部署实战 1. 证书申请 在CA机构(如阿里云)申请证书 完成域名验证(文件验证或DNS验证) 下载证书文件(.key和.pem) 2. Nginx配置 3. 配置完成后 测试配置: 重新加载配置: 五、关键总结 HTTP是明文传输,HTTPS通过SSL/TLS加密传输 SSL证书是HTTPS安全的核心,验证身份并加密数据 可自建CA或从商业CA机构获取证书 Nginx配置HTTPS需要指定证书和私钥路径 HTTPS虽增加安全性,但也带来性能开销和管理复杂性