Skip to content

X.509Certificate

概念介绍

理解 X.509 证书需要从公钥基础设施(PKI)开始。PKI 是一种加密技术体系结构,用于管理数字证书和公钥。其中,X.509 是一种广泛使用的标准,用于定义公钥证书的格式和相关操作。

X.509 证书是一种数据结构,用于证明特定实体(如个人、组织或网络设备)的身份,并将其公钥与该身份相关联。它由几个部分组成:

  1. 版本号(Version):指定证书的格式版本。

  2. 序列号(Serial Number):每个证书都有一个唯一的序列号,用于标识证书的唯一性。

  3. 签发者(Issuer):签发证书的实体,通常是一个认证机构(CA)。

  4. 有效期(Validity):证书的生效日期和失效日期。

  5. 主体(Subject):证书所代表的实体,可以是个人、组织或其他实体。

  6. 公钥(Public Key):与主体相关联的公钥。

  7. 数字签名(Digital Signature):用签发者的私钥对证书的内容进行加密生成的签名,用于验证证书的真实性和完整性。

除了上述基本信息之外,X.509 证书还可以包含各种扩展字段,用于添加额外的信息,如密钥用法、主题备用名称、颁发者备用名称等。

X.509 证书的主要作用是:

  • 身份验证:证书中包含了签发者对主体身份的认证信息,可以用于验证持有证书的实体的身份。

  • 密钥交换:证书中包含了主体的公钥,可以用于在安全通信中进行密钥交换,从而实现加密和解密。

  • 完整性保护:证书中的数字签名可以用于验证证书内容的完整性,确保证书在传输过程中没有被篡改。

X.509 证书是一种用于身份认证、密钥交换和完整性保护的重要机制,是公钥基础设施中不可或缺的组成部分。

常见的RDN属性

在 X.500 标准中,DN(Distinguished Name)是用于唯一标识实体的名称,通常在证书中用于表示主题(Subject)和发行者(Issuer)的标识。

DN 由多个 RDN(Relative Distinguished Name) 组成,而每个 RDN 又由一个或多个属性值对组成。在常见的 X.509 证书中,RDN 的属性值对通常包括以下属性:

  • CN(Common Name): 代表通用名称,通常用于标识实体的名称或标识符。在 X.509 证书中,通常用于表示服务器或个人的名称。例如,对于个人证书,CN 可能是持有人的姓名,而对于服务器证书,CN 可能是服务器的主机名。

  • O(Organization): 代表组织名称,用于表示实体所属的组织或机构。在 X.509 证书中,通常用于表示组织的名称。例如,对于服务器证书,O 可能是组织的名称。

  • C(Country): 代表国家/地区代码,用于表示实体所属的国家或地区。在 X.509 证书中,通常用于表示国家/地区的代码。例如,美国的国家代码是 "US"。

  • L(Locality): 代表地区或城市名称,用于表示实体所在的城市或地区。在 X.509 证书中,通常用于表示城市的名称。

  • ST(State): 代表州或省份名称,用于表示实体所在的州或省份。在 X.509 证书中,通常用于表示州或省份的名称。

这些属性值对可以组合成一个完整的 DN(Distinguished Name),例如

bash

# chat.openai.com
CN=chat.openai.com, O="Cloudflare, Inc.", L=San Francisco, ST=California, C=US

# 百度
CN=baidu.com, O="Beijing Baidu Netcom Science Technology Co., Ltd", L=beijing, ST=beijing, C=CN