开发者在迁移到 HTTPS 时面临两个障碍,即概念和术语。本指南将为您简要介绍概念和术语。
摘要
- 使用公钥/私钥对浏览器与服务器之间的消息进行签名和解密。
- 证书授权机构 (CA) 是一个组织,对公钥和公共 DNS 名称(例如“www.foobar.com”)之间的映射进行证实。
- 证书签名请求 (CSR) 是一种数据格式,将一个公钥与拥有该公钥的实体的某些相关元数据绑定在一起
什么是公钥和私钥对?
公钥/私钥对是一对很大的数字,用作加密和解密密钥,并且共用一种特殊的数学关系。一种常见的密钥对系统是 RSA 加密系统。公钥用于加密消息,消息只能使用相应的私钥进行解密。您的 Web 服务器会将其公钥公布到全球,而客户端(例如网络浏览器)使用此公钥来引导与您的服务器之间建立安全通道。
什么是证书授权机构?
证书授权机构 (CA) 是一个组织,对公钥和公共 DNS 名称(例如“www.foobar.com”)之间的映射进行证实。例如,客户端如何知道特定公钥是否为 www.foobar.com 的真实公钥?事先,没有办法知道。CA 使用自己的私钥对网站的公钥进行加密签名,以此证实特定密钥是特定网站的真实密钥。此签名在计算上是无法伪造的。浏览器(和其他客户端)维护包含知名 CA 拥有的公钥的信任锚存储区,并使用这些公钥对 CA 的签名进行加密验证。
X.509 证书是一种数据格式,将一个公钥与拥有该公钥的实体的某些相关元数据绑定在一起。对于 Web,密钥的所有者是网站运营商,而重要的元数据是 Web 服务器的 DNS 名称。当客户端连接到 HTTPS Web 服务器时,该 Web 服务器会提供其证书供客户端验证。客户端会验证证书是否未过期,DNS 名称是否与客户端尝试连接的服务器的名称一致,以及已知的信任锚 CA 已为该证书签名。在大多数情况下,CA 不直接对 Web 服务器证书进行签名;通常有一个证书链将信任锚链接到一个或多个中间签名者,最终链接到 Web 服务器自己的证书(最终实体)。
什么是证书签名请求?
证书签名请求 (CSR) 是一种数据格式,类似于证书,可将一个公钥与拥有该公钥的实体的某些相关元数据绑定在一起。但是,客户端不会解释 CSR,而 CA 会对 CSR 进行解释。当您设法让 CA 为您的网络服务器公钥提供证明时,可以向 CA 发送 CSR。CA 会验证 CSR 中的信息,并使用这些信息生成证书。然后,CA 会向您发送最终证书,您在 Web 服务器上安装该证书(或更可能是证书链)和私钥。