公钥证书
数字证书¶
公钥证书:一种数字证书,专门用于在公钥基础设施(PKI)中绑定公钥与持有者身份信息。X.509证书是公钥证书的主要标准。
数字证书的层级结构树状图:
数字证书
├── 公钥证书
│ ├── X.509 证书
│ │ ├── SSL/TLS 证书(X.509 的一种应用)
│ │ ├── S/MIME 证书(用于电子邮件的 X.509 证书)
│ │ └── 代码签名证书(用于验证软件的 X.509 证书)
│ ├── OpenPGP 证书(基于 OpenPGP 标准,类似于 PGP 证书)
│ └── SPKI/SDSI 证书(简化的公钥基础设施)
├── PGP 证书
│ └── (通常与 OpenPGP 证书混用,但使用不同的信任模型,更多依赖 Web of Trust)
└── 其他类型的证书
├── SSH 密钥对
├── Kerberos 票证
└── FIDO2/WebAuthn 认证密钥
由CA(认证局)生成。
[!note] SSL/TLS证书是一种特定类型的公钥证书。
证书扩展名¶
X.509 证书的常见格式及其识别方式:
-
PEM(隐私增强邮件)格式:PEM 证书以ASCII文本的形式表示,使用Base64编码,通常具有 .pem、.crt、.cer 或 .key 文件扩展名。它们以“
-----BEGIN CERTIFICATE-----
”开始,以“-----END CERTIFICATE-----
”结束。 -
DER(Distinguished Encoding Rules)格式:DER 证书采用二进制编码,通常具有 .der 或 .crt 文件扩展名。它们无法在文本编辑器中打开,需要转换为 PEM 格式才能阅读。
-
PKCS#12:也称为
.PFX
文件,是一种包含私钥和公钥的数字证书格式,通常用于在Windows系统中导出和导入证书。
在.pfx文件中,通常同时包含了公钥证书和与之关联的私钥。有时,您可能需要将公钥证书和私钥分开保存,以便在不同的场景中使用:
- 证书文件(通常以.crt或.pem为扩展名)包含公钥证书信息,它是用来验证您的身份的,其他人可以使用该证书来验证您的身份,建立安全通信等。
openssl pkcs12 -in yourfile.pfx -clcerts -nokeys -out certificate.crt
-
私钥文件(通常以.key或.pem为扩展名)包含与证书相关联的私钥,它是用于签署和解密数据的,因此非常重要且需要保持安全。
openssl pkcs12 -in yourfile.pfx -nocerts -nodes -out privatekey.key
-
PKCS#7 :用于证书链,通常具有 .p7b 或 .p7c 文件扩展名。它们在单个文件中包含多个证书,以“-----BEGIN PKCS7-----”开头,以“-----END PKCS7-----”结尾。