Skip to content

公钥、私钥与数字证书:从非对称密码到 HTTPS ​

HTTPS 通过 TLS 协议确认通信对象,并保护传输中的数据。理解这一过程,可以先记住三件事:私钥由持有者保管,公钥供其他人验证,证书把公钥与域名等身份信息绑定起来。

对称密码与非对称密码 ​

类型密钥关系常见用途示例
对称密码通信双方持有用于加解密的共享密钥高效保护大量业务数据AES、SM4
非对称密码使用相互关联的公钥与私钥用于身份认证、数字签名等操作RSA、ECC、SM2

申请证书时,常见的算法选项有 RSA、ECC 和 SM2。选择时应确认目标服务器和客户端支持相应算法。

HTTPS 还会使用 SHA-256、SM3 等杂凑算法生成数据摘要,配合数字签名、消息认证和密钥派生。具体用途见什么是杂凑(哈希)算法?。

公钥与私钥分别做什么? ​

私钥是持有者执行签名或相应解密操作所需的秘密材料,应保存在受控服务器、密钥库或密码设备中。公钥可提供给其他人,用于验证签名或执行相应的公钥运算。

两种常见操作的方向如下:

  • 数字签名:持有者用私钥对数据生成签名,接收方用公钥验证来源与完整性。签名采用专用算法及编码规则。
  • 公钥加密:在支持该用途的算法与方案中,发送方用接收方公钥加密,接收方用对应私钥解密。

密钥协商则让双方通过各自的密钥材料计算共享秘密,再派生会话密钥。具体运算由协议实现,日常证书部署无需手工完成。

数字证书绑定了哪些信息? ​

网站使用的 X.509 证书是一份由签发者数字签名的数据,包含网站公钥及其适用范围。客户端通过验证证书链和域名,判断是否接受这份绑定。

证书用于身份绑定,TLS 用于保护连接。网站内容和经营行为的可信度需要另行判断。

字段阅读时关注什么
Subject Alternative Name(SAN)证书覆盖的域名或 IP 地址;HTTPS 域名匹配重点检查此项
Subject / Issuer证书主体与签发者名称;组织信息随证书类型而异
Subject Public Key Info主体公钥、算法与参数
Validity生效时间与到期时间
Serial NumberCA 分配的序列号,应与签发者一起用于识别证书
Key Usage / Extended Key Usage允许的密钥操作及证书用途,例如服务器认证
CA 签名由签发者私钥生成,供客户端用签发者公钥验证

证书中保存的是公钥。网站运行所需的匹配私钥单独保存;PFX 等交付容器可以把两者打包在一起,具体见证书格式指南。

证书查看器还会计算 SHA-256 等指纹,方便核对具体证书。比较时应使用相同的摘要算法。

CSR、证书和私钥如何关联? ​

  1. 在 KeyManager、服务器或密码设备中生成密钥对,保留私钥。
  2. 使用公钥及申请信息生成 CSR,并用私钥签名,提交申请。
  3. CA 按产品要求完成域名控制权、组织等验证后签发证书。
  4. 将签发证书与原私钥、配套中间链安装到提供 HTTPS 的入口。

CSR 是证书签名请求,包含公钥与申请信息,不包含私钥。CA 审核后确定最终证书中的身份与用途。私钥留在受控环境中;申请步骤见 KeyManager 申请指南。

站点证书、中间证书与根证书 ​

名称所处位置与作用通常由谁维护
站点证书(叶证书)绑定业务域名与网站公钥,用于服务器身份认证网站或 HTTPS 入口管理员
中间证书(ICA 证书)授权中间 CA 签发下级证书,连接站点证书与上级 CACA 提供;服务器管理员部署适用中间链
根证书通常是自签名 CA 证书,用于分发信任锚信息操作系统、浏览器、运行时或组织的信任库管理员

根的信任来自客户端预先接受的信任库及策略。私有 PKI 环境通常由组织受控分发自己的根;公共网站依赖客户端已接受的公共根体系。

链上可以有多个中间 CA。客户端如何选取并验证这条路径,见 SSL/TLS 信任链的构建与验证。

它们如何参与一次 HTTPS 连接? ​

以常规 TLS 1.3 证书认证握手为例:

  1. 协商并建立握手密钥:客户端与服务器在 ClientHello、ServerHello 中协商参数并交换临时公钥,派生保护后续握手消息的密钥。客户端通常还发送 SNI 帮助服务器选择站点。
  2. 服务器证明身份:在加密保护下发送站点证书和中间链,并用匹配私钥生成握手签名,再发送 Finished 消息。
  3. 客户端验证并完成握手:检查证书路径、访问域名、用途及握手签名,验证 Finished;检查通过后完成自身的握手消息。
  4. 保护业务通信:使用单独派生的应用流量密钥,以对称认证加密保护后续请求与响应。

CA 的签名证明证书的签发关系;服务器的握手签名证明它持有匹配私钥,并将身份绑定到本次连接。

身份认证与业务数据加密由不同机制协作完成。更详细的算法分工见 RSA、ECC 与 SM1–SM4,临时密钥的意义见前向保密。

下一步 ​

参考资料 ​