CRLite:Mozilla 的新型证书吊销检查方案

当我们讨论 HTTPS 安全性时,证书吊销检查是一个常被忽视但至关重要的环节。传统的 OCSP(Online Certificate Status Protocol)存在隐私和性能问题,Mozilla 提出的 CRLite 提供了一种更优的解决方案。本文将深入探讨 CRLite 的设计原理、与 OCSP 的对比,以及如何在实际环境中应用。 传统 OCSP 的问题 在了解 CRLite 之前,我们先回顾一下传统 OCSP 面临的挑战: 1. 隐私泄露 OCSP 请求会直接向 CA 的 OCSP 服务器发送请求,这会暴露用户的浏览行为。攻击者可以通过监控 OCSP 请求来确定用户正在访问哪些网站。 1 2 # 模拟 OCSP 请求 openssl s_client -connect example.com:443 -status 2>/dev/null | grep -A 10 "OCSP response" 2. 性能瓶颈 每次建立 HTTPS 连接时,客户端都需要额外查询 OCSP 服务器,这增加了握手延迟。如果 OCSP 服务器响应缓慢,会直接影响用户体验。 1 2 3 # 测试 OCSP 响应状态(使用 timeout 防止卡住) timeout 5 openssl s_client -connect ocsp....

June 9, 2026 · 2 min · 黑豆子

国密 SM2 证书详解:从生成到部署

国密 SM2 算法是中国国家密码管理局发布的椭圆曲线公钥密码算法,相比传统的 RSA 和国际通用 ECDSA 曲线,SM2 在国内有着特殊的应用场景和政策要求。本文详细介绍 SM2 证书的生成、验证和部署。 SM2 证书与 RSA/ECDSA 证书的区别 算法基础 特性 RSA ECDSA (secp256r1) SM2 密钥长度 2048/4096 bit 256 bit 256 bit 曲线类型 离散对数 椭圆曲线 椭圆曲线 (SM2 曲线) 签名算法 RSA + SHA-256 ECDSA + SHA-256 SM2 + SM3 国际认可 广泛认可 广泛认可 中国国密标准 性能 较慢 较快 与 secp256r1 相当 关键差异 签名算法:SM2 证书使用 SM3 哈希算法进行签名,而不是 SHA-256 曲线参数:SM2 使用特定的椭圆曲线参数(国家密码管理局指定) 兼容性:国际浏览器和设备默认不支持 SM2 证书,需要国密浏览器或支持国密的组件 生成 SM2 证书 环境要求 确保系统安装的是 OpenSSL 3....

June 4, 2026 · 3 min · 黑豆子

ACME 协议与自动化证书管理实战

深入解析 ACME 协议工作原理,详解 Let’s Encrypt 免费证书申请与 Certbot 自动续期配置,实现 HTTPS 证书自动化管理。

May 28, 2026 · 5 min · 黑豆子

PKCS#12 格式详解与实战

什么是 PKCS#12? PKCS#12(也称为 PFX)是公钥密码学标准之一,定义了一种用于存储多个密码学对象的文件格式。在实际应用中,PKCS#12 文件通常用于: 打包服务器证书和私钥 包含证书链(CA 证书) 在不同系统之间迁移证书和私钥 与 PEM 格式相比,PKCS#12 将证书、私钥和证书链打包成单个二进制文件,并支持加密保护。 基本用法 从私钥和证书创建 PKCS#12 最常见的用法是将私钥和服务器证书打包成 PKCS#12 文件: 1 2 3 4 5 6 openssl pkcs12 -export \ -out server.p12 \ -inkey server.key \ -in server.crt \ -name "Server Certificate" \ -passout pass:changeit 参数说明: -export:创建 PKCS#12 文件 -out server.p12:输出文件名 -inkey server.key:输入的私钥文件 -in server.crt:输入的证书文件 -name "Server Certificate":证书的友好名称(可选) -passout pass:changeit:导出密码 执行后会在当前目录生成 server.p12 文件。 查看 PKCS#12 文件内容 创建后可以使用以下命令查看文件信息: 1 openssl pkcs12 -in server....

May 27, 2026 · 3 min · 黑豆子

RSA 密钥长度选择与推荐

在搭建 HTTPS 服务或部署 PKI 基础设施时,RSA 密钥长度的选择是一个关键决策。密钥太短会带来安全隐患,密钥太长则会影响性能并增加计算资源消耗。本文将详细介绍如何根据不同场景选择合适的 RSA 密钥长度。 什么是 RSA 密钥长度 RSA 密钥长度指的是模数(modulus)的 bit 数,常见的有 2048 位、3072 位和 4096 位。密钥长度直接决定了 RSA 算法的安全强度——位数越高,破解难度呈指数级增长,但生成和使用密钥的计算成本也越高。 安全级别与密钥长度对照 根据 NIST(美国国家标准与技术研究院)的推荐,不同 RSA 密钥长度对应的安全强度如下: RSA 密钥长度 约等安全级别 适用场景 1024 位 ~80 bit 已不推荐使用,仅用于兼容老系统 2048 位 ~112 bit 当前最低标准,兼容性与性能的平衡点 3072 位 ~128 bit 高安全要求场景,长期保护需求 4096 位 ~140 bit 最高安全级别,敏感数据保护 注意:1024 位 RSA 密钥已被认为是不可信的,主流浏览器和证书颁发机构已不再签发基于 1024 位 RSA 的证书。 当前主流推荐 2048 位:通用场景的最佳选择 对于大多数 Web 服务和内部系统,2048 位 RSA 密钥是当前的最低安全标准。它提供了足够的安全强度,同时保持了良好的性能。 使用 OpenSSL 生成 2048 位 RSA 私钥:...

May 26, 2026 · 2 min · 黑豆子

TLS 证书类型详解:DV、OV、EV 的区别与选择

在选择 HTTPS 证书时,你可能听说过 DV、OV、EV 三种类型。它们有什么区别?各自的适用场景是什么?本文详细解读这三种证书类型的验证级别、安全特性和选择建议。 证书类型概述 TLS/SSL 证书按照验证级别分为三类: 类型 全称 验证级别 颁发速度 适用场景 DV Domain Validation 域名所有权 分钟级 个人网站、测试环境 OV Organization Validation 域名 + 企业身份 小时级 商业网站、企业应用 EV Extended Validation 全面企业验证 天级 金融、电商、高信任需求 DV 证书(域名验证) DV 证书是最基础的 TLS 证书类型,只验证申请者对域名的控制权。 验证方式 域名所有权验证(DNS 记录、邮件验证、文件验证) 不验证申请者身份 完全自动化颁发 真实示例 使用 Let’s Encrypt 证书查看: 1 echo | openssl s_client -connect www.letsencrypt.org:443 -servername www.letsencrypt.org 2>/dev/null | openssl x509 -noout -subject -issuer 输出: 1 2 subject=CN = letsencrypt....

May 22, 2026 · 3 min · 黑豆子

X.509 证书扩展详解

X.509 证书的核心功能由扩展(Extensions)机制实现。扩展允许在证书中添加额外信息,定义证书的用途、约束、身份验证方式等关键属性。本文详细介绍常见扩展的作用和使用方法。 什么是证书扩展 X.509 v3 引入的扩展机制是现代 PKI 的基础。每个扩展由 OID(对象标识符)、关键性标志和扩展值组成。 扩展分为两类: 关键扩展(Critical):证书使用者必须理解和处理的扩展,否则证书验证失败 非关键扩展(Non-critical):可选的扩展,可被忽略但不应影响验证 常见扩展详解 1. Basic Constraints(基本约束) 定义证书是否为 CA(证书颁发机构)以及证书链深度。 1 2 3 4 5 6 7 8 # CA 证书 basicConstraints=CA:TRUE # 终端实体证书 basicConstraints=CA:FALSE # 无限制的 CA 路径长度 basicConstraints=CA:TRUE,pathlen:10 实际输出: 1 2 X509v3 Basic Constraints: CA:TRUE 2. Key Usage(密钥用法) 指定证书密钥的允许用途。 1 2 3 4 5 6 7 8 # 服务器认证证书 keyUsage=digitalSignature,keyEncipherment # CA 签名证书 keyUsage=digitalSignature,keyCertSign,cRLSign # 代码签名证书 keyUsage=digitalSignature,nonRepudiation 常见值: digitalSignature:数字签名 keyEncipherment:密钥加密 dataEncipherment:数据加密 keyCertSign:证书签名 cRLSign:CRL 签名 3....

May 18, 2026 · 3 min · 黑豆子

OpenSSL 交叉签名证书详解与实战

交叉签名证书(Cross Signed Certificate)是 SSL/TLS 基础设施中一个重要但常被误解的概念。本文深入解释交叉签名的原理、适用场景以及 OpenSSL 操作方法。 什么是交叉签名? 交叉签名是指由一个 CA(证书颁发机构)对另一个 CA 的证书进行签名。签名的对象是 CA 证书本身,而不是终端实体证书。 1 2 3 4 原始链:Root CA → Intermediate CA → Server Certificate 交叉签名链:Root CA (新) → Cross-signed Intermediate CA → Server Certificate ↑ 由新Root CA签名 关键特征: 交叉签名证书的 Subject(主题)与原始中间 CA 相同 Issuer(颁发者)变为进行交叉签名的根 CA 公钥与原始中间 CA 完全相同 典型使用场景 1. 多根 CA 信任 企业可能有两个不同的根 CA(如并购后的整合),需要让一张证书同时被两个根 CA 信任。 1 场景:公司有两个根 CA(Root CA 1 和 Root CA 2),都需要信任同一张服务器证书 2. 旧客户端兼容性 某些老旧客户端只信任特定的根 CA,通过交叉签名让新证书也能被这些客户端接受。...

May 15, 2026 · 3 min · 黑豆子

OpenSSL verify 命令详解:证书链验证原理与实践

详解 OpenSSL verify 命令的用法,包括证书链验证、CA 存储、partial_chain、trust 设置等核心参数,每个命令都经过实际验证。

May 14, 2026 · 3 min · 黑豆子

DNS CAA 记录:控制证书颁发权限的安全机制

DNS CAA(Certification Authority Authorization)记录是一种 DNS 记录类型,用于声明哪些证书颁发机构(CA)可以为特定域名颁发 SSL/TLS 证书。作为域名所有者,通过配置 CAA 记录,可以有效防止未经授权的证书被颁发,保护网站安全。 什么是 CAA 记录 CAA 记录于 2013 年在 RFC 6844 中定义,允许域名管理者明确指定允许为该域名颁发证书的 CA。CAA 记录的工作原理是:当 CA 收到证书申请时,会查询域名的 DNS CAA 记录,如果发现没有授权给自己,则拒绝颁发证书。 CAA 记录的作用 防止证书被冒领:阻止未经授权的 CA 为你的域名颁发证书 提升安全等级:确保只有指定的 CA 可以提供证书服务 审计追踪:CAA 记录可以要求 CA 在颁发证书时发送通知 CAA 记录格式详解 CAA 记录的基本格式如下: 1 CAA <flags> <tag> <value> 关键字段 字段 说明 flags 8 位标志字段,目前使用 bit 0(关键位) tag 标签,指定 CAA 记录的类型的 value 标签对应的值 常用标签 CAA 记录支持多种标签,常用的包括: 标签 说明 示例 issue 授权指定 CA 颁发证书 issue "letsencrypt....

May 9, 2026 · 3 min · 黑豆子