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 dgst 命令计算文件的 SHA-256、SHA-512、MD5 等哈希值,用于文件完整性校验和密码存储。

April 5, 2026 · 2 min · 黑豆子

OpenSSL 常用命令速查

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

April 3, 2026 · 2 min · 黑豆子

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

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

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

OpenSSL EC 密钥生成与管理

OpenSSL EC 密钥生成与管理 椭圆曲线密码学(Elliptic Curve Cryptography, ECC)是现代密码学中的重要技术,相比传统 RSA 算法,ECC 在提供相同安全级别的情况下只需要更短的密钥长度。本文详细介绍如何使用 OpenSSL 生成和管理 EC 密钥。 EC 密钥的优势 相比 RSA 密钥,EC 密钥具有以下优势: 更短的密钥长度:256位 EC 密钥相当于 3072位 RSA 密钥的安全强度 更快的计算速度:加密解密和签名验证速度更快 更小的存储空间:密钥文件更小,节省存储空间 更低的带宽占用:传输密钥时占用更少带宽 生成 EC 密钥对 1. 生成 EC 私钥 1 2 3 4 5 6 7 8 # 生成 P-256 曲线的 EC 私钥 openssl ecparam -name secp256r1 -genkey -out ec_private.pem # 生成 P-384 曲线的 EC 私钥 openssl ecparam -name secp384r1 -genkey -out ec_private.pem # 生成 P-521 曲线的 EC 私钥 openssl ecparam -name secp521r1 -genkey -out ec_private....

March 29, 2026 · 4 min · 黑豆子

OpenSSL 证书管理实战:从生成到验证

OpenSSL 是最强大的证书管理工具之一。本文聚焦日常证书管理中最常用的操作:生成、签名、转换和验证。 生成私钥 生成 RSA 私钥 1 2 3 4 5 6 7 8 # 生成 2048 位 RSA 私钥 openssl genrsa -out private.key 2048 # 生成 4096 位 RSA 私钥(更安全) openssl genrsa -out private.key 4096 # 生成带密码保护的私钥 openssl genrsa -aes256 -out private-encrypted.key 2048 生成 EC 私钥 1 2 3 4 5 # 生成 EC 私钥(P-256 曲线) openssl ecparam -name prime256v1 -genkey -noout -out ec-private.key # 生成 EC 私钥(P-384 曲线) openssl ecparam -name secp384r1 -genkey -noout -out ec-private-384....

March 28, 2026 · 3 min · 黑豆子