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 · 黑豆子

使用 OpenSSL 检查证书有效期

证书过期会导致服务不可用,提前监控证书有效期是运维的基本功。OpenSSL 提供了多种检查证书有效期的方法。 检查远程服务器证书 查看有效期 1 echo | openssl s_client -connect www.baidu.com:443 -servername www.baidu.com 2>/dev/null | openssl x509 -noout -dates 输出: 1 2 notBefore=Jul 9 07:01:02 2025 GMT notAfter=Aug 10 07:01:01 2026 GMT notBefore:证书生效日期 notAfter:证书过期日期 检查本地证书文件 1 openssl x509 -in certificate.crt -noout -dates 查看剩余天数 1 openssl x509 -in certificate.crt -noout -checkend 0 输出: Certificate will not expire:证书未过期 Certificate will expire:证书已过期 检查是否在 30 天内过期(2592000 秒): 1 openssl x509 -in certificate.crt -noout -checkend 2592000 返回码:...

April 5, 2026 · 2 min · 黑豆子

OpenSSL s_client 排查 HTTPS 连接问题

使用 OpenSSL s_client 命令排查 HTTPS 连接问题,包括证书验证、握手过程、TLS 协议版本检测等实用技巧。

April 5, 2026 · 2 min · 黑豆子

OpenSSL 常用命令速查

整理 OpenSSL 最常用的命令,包括版本查看、证书生成、密钥操作、测试连接等,每个命令都经过实际验证。

April 3, 2026 · 2 min · 黑豆子

TLS 1.3 握手过程详解

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

April 3, 2026 · 2 min · 黑豆子

OpenSSL 证书格式转换:PEM、DER、P7B、PFX 互转

详解 OpenSSL 在 PEM、DER、P7B、PFX 等证书格式之间的转换命令,每个命令都经过实际验证。

April 2, 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 · 黑豆子

OpenSSL 证书链验证详解

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

March 31, 2026 · 3 min · 黑豆子