OpenSSL s_client:SSL/TLS 连接调试工具

openssl s_client 是调试 SSL/TLS 连接的利器。它可以建立到远程服务器的 SSL/TLS 连接,显示证书链、协议版本、加密套件等详细信息,是排查 HTTPS 问题的必备工具。 基本用法 连接 HTTPS 服务器 1 openssl s_client -connect example.com:443 执行后会显示完整的 SSL/TLS 握手信息,包括证书链、协议版本、加密套件等。 指定 SNI(Server Name Indication) 对于共享 IP 的虚拟主机,必须指定 SNI: 1 openssl s_client -connect example.com:443 -servername example.com 不指定 SNI 时,服务器可能返回默认证书,导致证书验证失败。 常用场景 1. 查看证书信息 提取服务器证书并查看详情: 1 2 3 4 5 # 获取证书 echo | openssl s_client -connect www.baidu.com:443 -servername www.baidu.com 2>/dev/null | openssl x509 -noout -text # 只看有效期 echo | openssl s_client -connect www....

April 5, 2026 · 2 min · 黑豆子

TLS 1.3 握手过程详解

深入解析 TLS 1.3 协议的握手流程,包括 ClientHello、ServerHello、密钥交换、证书验证等关键步骤,对比 TLS 1.2 的改进。

April 3, 2026 · 2 min · 黑豆子

SSL/TLS 握手详解:从连接到加密通道

本文深入解析 SSL/TLS 握手过程,理解加密通道如何建立以及密钥交换的原理。

April 2, 2026 · 2 min · 黑豆子

TLS 1.3 核心特性与配置实践

介绍 TLS 1.3 的核心改进,包括握手优化、加密套件精简、0-RTT 等特性,以及 Nginx、Apache 配置方法。

April 2, 2026 · 2 min · 黑豆子

使用 OpenSSL 检测 TLS 版本支持

介绍如何使用 OpenSSL 命令检测服务器支持的 TLS 版本,用于安全审计和配置验证。

April 1, 2026 · 2 min · 黑豆子

TLS 1.3 密码套件配置指南

TLS 1.3 密码套件配置指南 TLS 1.3 相比之前的版本有了重大改进,其中最重要的变化之一就是大幅简化了密码套件。本文将详细介绍 TLS 1.3 的密码套件配置和使用方法。 TLS 1.3 密码套件概述 TLS 1.3 对密码套件进行了大幅简化,移除了不安全的算法,只保留以下类型的密码套件: AEAD 密码套件:所有套件都使用 AEAD(Authenticated Encryption with Associated Data)算法 前向保密:所有套件都支持完美前向保密(PFS) 移除弱算法:不再支持 RC4、MD5、SHA-1 等 TLS 1.3 支持的密码套件 1. GCM 密码套件 密码套件 密钥交换 认证 加密 密钥长度 适用场景 TLS_AES_256_GCM_SHA384 ECDHE ECDSA/RSA AES-256-GCM 256位 高安全性要求 TLS_CHACHA20_POLY1305_SHA256 ECDHE ECDSA/RSA ChaCha20-Poly1305 256位 移动设备、弱网络 TLS_AES_128_GCM_SHA256 ECDHE ECDSA/RSA AES-128-GCM 128位 标准安全性 TLS_AES_128_CCM_SHA256 ECDHE ECDSA/RSA AES-128-CCM 128位 兼容性要求 2. 查看系统支持的 TLS 1.3 密码套件 1 2 3 4 5 # 查看 OpenSSL 支持的 TLS 1....

March 29, 2026 · 5 min · 黑豆子

TLS 协议深度解析:TLS 1.2 与 TLS 1.3 的关键差异

TLS(Transport Layer Security)协议是现代互联网安全的基石。本文聚焦 TLS 1.2 和 TLS 1.3 的核心差异,帮助你理解协议升级的重要性。 TLS 1.2 的工作流程 TLS 1.2 的握手过程需要 2 个 RTT(Round-Trip Time): 1 2 3 4 5 6 7 8 9 10 11 Client Server |-------- ClientHello ----------------------->| |<------- ServerHello ------------------------| |<------- Certificate ------------------------| |<------- ServerKeyExchange ------------------| |<------- ServerHelloDone --------------------| |-------- ClientKeyExchange ----------------->| |-------- ChangeCipherSpec ------------------>| |-------- Finished -------------------------->| |<------- ChangeCipherSpec -------------------| |<------- Finished ---------------------------| 使用 OpenSSL 测试 TLS 1.2 连接 1 2 3 4 5 # 测试服务器是否支持 TLS 1....

March 28, 2026 · 2 min · 黑豆子

CSR(证书签名请求)详解与实践

什么是 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....

March 24, 2026 · 4 min · 黑豆子

SSL/TLS 证书深度解析:从原理到实践

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....

March 24, 2026 · 8 min · 黑豆子