TLS 1.3 核心特性与配置实践
介绍 TLS 1.3 的核心改进,包括握手优化、加密套件精简、0-RTT 等特性,以及 Nginx、Apache 配置方法。
介绍 TLS 1.3 的核心改进,包括握手优化、加密套件精简、0-RTT 等特性,以及 Nginx、Apache 配置方法。
介绍如何使用 OpenSSL 命令检测服务器支持的 TLS 版本,用于安全审计和配置验证。
OpenSSL 证书链验证详解 证书链验证是 SSL/TLS 安全的核心机制。本文将详细介绍如何使用 OpenSSL 工具进行证书链验证,确保连接的安全性。 什么是证书链? 证书链(Certificate Chain)是一系列证书的有序集合,用于验证终端实体证书的有效性。典型的证书链包含: 终端实体证书:最终服务的证书 中间证书:由 CA 签发的证书 根证书:受信任的根 CA 证书 OpenSSL 验证命令 基本验证 1 2 3 # 验证证书和私钥匹配 openssl x509 -noout -modulus -in server.crt | openssl md5 openssl rsa -noout -modulus -in server.key | openssl md5 证书链验证 1 2 # 验证证书链 openssl verify -CAfile root.crt -untrusted intermediate.crt server.crt 实战案例:完整证书链验证 场景描述 验证包含终端证书、中间证书和根证书的完整证书链。 1. 准备证书文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 # 创建测试目录 mkdir -p /tmp/cert-test cd /tmp/cert-test # 生成根证书 openssl genrsa -out root....
SSL/TLS 握手是 HTTPS 性能的关键瓶颈。本文聚焦会话恢复(Session Resumption)技术,帮助你减少握手延迟。 问题:SSL 握手的开销 完整的 TLS 握手需要多次网络往返: 1 2 3 4 5 # 测试握手时间 curl -w "Time: %{time_total}s\n" -o /dev/null -s https://example.com # 使用 openssl 测试连接时间 time openssl s_client -connect example.com:443 </dev/null 对于 TLS 1.2,完整握手需要 2 个 RTT。通过会话恢复可以降至 0-1 个 RTT。 Session ID 复用 工作原理 服务器为每个会话分配唯一 ID,客户端在后续连接时发送该 ID,服务器据此恢复会话状态。 Nginx 配置 1 2 3 4 5 6 7 8 9 10 11 12 server { listen 443 ssl; server_name example....
将 HTTP 流量重定向到 HTTPS 是网站安全的基本要求。本文聚焦 Nginx 中的最佳实践配置。 标准配置(推荐) 使用两个 server 块分离 HTTP 和 HTTPS 流量: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 # HTTP server - 重定向到 HTTPS server { listen 80; server_name example.com www.example.com; return 301 https://$host$request_uri; } # HTTPS server server { listen 443 ssl http2; server_name example.com www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # HSTS - 告诉浏览器始终使用 HTTPS add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; root /var/www/html; index index....
SSL(Secure Sockets Layer)协议曾是最广泛使用的加密协议,但如今已被彻底弃用。本文聚焦分析 SSL 协议的安全缺陷,解释为何必须迁移到 TLS。 SSL 的三个版本 版本 发布年份 状态 SSL 1.0 未发布 存在严重缺陷,从未公开 SSL 2.0 1995 2011年正式弃用 (RFC 6176) SSL 3.0 1996 2015年正式弃用 (RFC 7568) 致命漏洞:POODLE 攻击 2014年发现的 POODLE(Padding Oracle On Downgraded Legacy Encryption)攻击是 SSL 3.0 的"死刑判决"。 漏洞原理 SSL 3.0 的 CBC 模式填充验证存在缺陷: 1 2 3 明文块: D1 D2 D3 D4 D5 D6 D7 D8 填充后: D1 D2 D3 D4 D5 D6 D7 01 (填充1字节) 或: D1 D2 D3 D4 D5 D6 02 02 (填充2字节) 攻击者可以:...
什么是 CSR? CSR(Certificate Signing Request,证书签名请求) 是申请 SSL/TLS 证书时向证书颁发机构(CA)提交的文件。它包含了申请者的公钥和身份信息,由申请者的私钥签名。 CSR 的用途 申请 SSL/TLS 证书 - 向 CA 提交 CSR 申请服务器证书 身份验证 - CSR 中的信息用于验证申请者身份 密钥关联 - 将公钥与域名/组织信息绑定 CSR 包含哪些信息? 一个标准的 CSR 包含以下信息: 字段 说明 示例 C (Country) 国家代码 CN ST (State) 州/省 Beijing L (Locality) 城市 Beijing O (Organization) 组织名称 Example Corp OU (Organization Unit) 部门 IT Department CN (Common Name) 通用名称/域名 example.com emailAddress 电子邮件 admin@example.com 此外,CSR 还包含: 公钥 - 与私钥配对的公钥 签名 - 使用私钥生成的数字签名 可选扩展 - 如 Subject Alternative Name (SAN) 使用 OpenSSL 生成 CSR 基本命令格式 1 2 3 4 5 # 生成私钥的同时生成 CSR(交互式) openssl req -new -newkey rsa:2048 -nodes -keyout domain....
SSL/TLS 证书是互联网信任体系的基石。本文深入剖析证书的工作原理、类型选择、配置最佳实践,以及常见问题的排查方法。 一、证书工作原理 TLS 握手过程 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 客户端 服务器 | | | 1. ClientHello | | (支持的加密套件、TLS版本、随机数) | | --------------------------------------> | | | | 2. ServerHello | | (选定加密套件、TLS版本、随机数) | | + Certificate (服务器证书链) | | + ServerKeyExchange (可选) | | + CertificateRequest (可选,双向认证) | | <-------------------------------------- | | | | 3....