CA和数字证书
本文最后更新于 2025年5月24日 下午
CA指的是”Certificate Authority”(证书颁发机构)。CA是存储、签名和颁发数字证书的实体。CA充当受信任的第三方,既受证书的主体(所有者)的信任,也受依赖证书的一方的信任。
证书的格式由X.509或EMV标准指定。
你可以使用https://www.ssleye.com/ssltool/cer_check.html查看证书的详细信息。
一个数字证书通常包含以下信息:
版本号:表示X.509 标准适用于该证书的版本。
证书持有者的信息:包括名称、组织和其他标识信息。
证书颁发机构(CA)的信息:提供了签发该证书的CA的识别信息。
序列号(Serial Number):由CA维护的为它所发的每个证书分配的一个序列号,用来追踪和撤销证书。只要拥有签发者信息和序列号,就可以唯一标识一个证书
签名哈希算法:数字签名所采用的算法,如:SHA384。
签名算法:如sha384ECDSA
有效期限:证书的有效期限,包括起止时间。
公钥信息:包括服务的公钥算法、公钥。
扩展信息:如密钥用法、主体备用名称等。
证书又分为几个类别:
DV(域验证)
域验证是今天最常见的类型;对这些证书,CA只会对申请者是否拥有域的控制权进行核实,不管其它事情。有很多方法来做这件事,例如要求申请人在web服务器上某个文件中放置一个随机数。这些证书也是最便宜的。
DV证书由CA颁发,极少或没有人的互动,通常在申请人方面也是自动完成的。ACME之类的协议允许完全自动申请和颁发过程。
DV证书的目的是启用加密连接,它并不会验证是谁在管理着域,或他们是否诚实,或他们的域是否合法——唯一的目的就是在浏览器和服务器之间启用安全连接。
OV(机构验证)
相比之下,机构验证(也叫高可信度)证书要贵得多,大约每年200美元(最多可达到500美元)。由于需要额外的文书工作,其申请过程更复杂。相比DV来说,增加的价格很大程度上是审核过程的额外工作造成的;除了域的验证控制之外,CA还将检查文件以核实申请者是否为合法机构(通过许可证或法人文件)。
EV(扩展验证)
EV证书最为昂贵,大约每年300美元(最多可能达到1000美元),EV证书的审核要求在OV证书的审核基础上有所增加,审核过程最为详细。它可能需要一些文件,如银行账户证明、地址证明、更详细的法人证明以及雇员作为证书申请人并得到授权的证明。
获得EV证书是一个复杂的过程,不仅需要时间,还需要技术人员的努力,以及公司行政部门提供所需要的文件。
服务器向CA申请证书的流程:
服务器生成一对密钥(公钥和私钥)
从密钥中衍生出CSR(certificate signing request)文件。CSR中主要包含如下信息:
- 公钥信息
- 主体信息
- 签名算法和数字签名(使用服务器私钥)
将CSR提交给CA验证
通过后CA会将这些信息进行hash然后用自己的私钥加密即生成数字签名,最后颁发证书。
一个HTTPS请求示例:
客户端发起请求
这个请求会包含客户端支持的 SSL/TLS 协议版本,以及一系列加密算法。
服务端返回证书和选择的协议和算法
客户端验证证书
- 检查该证书的ca是否位于浏览器信任的证书链内
- 检查证书是否过期,是否被吊销
- 使用对应ca的公钥对数字签名进行解密;按照证书中的签名算法生成原始信息的摘要,二者比对验证证书的有效性。
- 生成一个随机的会话密钥,然后使用服务端的公钥(提取自证书)对这个会话密钥进行加密并发送至服务端。
服务端使用自己的私钥对会话密钥进行解密。这个会话密钥将用于与客户端接下来的对称加密通信。
加密通信(加密算法已在第二步协商完毕)。
图例如下:

名词解释
数字签名:
对信息使用RSA或SHA1等算法生成摘要(HASH)。然后对摘要使用私钥加密生成数字签名。
证书链:
有了证书以后,是可以继续签发下级证书的,以此方式形成的所有相关证书就叫证书链。