证书类型分类

本文介绍了数字证书的主要文件类型和协议,包括PEM、DER、PFX等格式的特点及用途,解释了它们如何存储私钥、公钥和证书,并讨论了如JKS、KDB等特定环境下的使用情况。
证书主要的文件类型和协议有: PEM、DER、PFX、JKS、KDB、CER、KEY、CSR、CRT、CRL 、OCSP、SC :roll: EP等。

PEM – Openssl使用 PEM(Privacy Enhanced Mail)格式来存放各种信息,它是 openssl 默认采用的信息存放方式。Openssl 中的 PEM 文件一般包含如下信息:

内容类型:表明本文件存放的是什么信息内容,它的形式为“——-BEGIN XXXX ——”,与结尾的“——END XXXX——”对应。
头信息:表明数据是如果被处理后存放,openssl 中用的最多的是加密信息,比如加密算法以及初始化向量 iv。
信息体:为 BASE64 编码的数据。可以包括所有私钥(RSA 和 DSA)、公钥(RSA 和 DSA)和 (x509) 证书。它存储用 Base64 编码的 DER 格式数据,用 ascii 报头包围,因此适合系统之间的文本模式传输。
使用PEM格式存储的证书:
—–BEGIN CERTIFICATE—–
MIICJjCCAdCgAwIBAgIBITANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx
………
1p8h5vkHVbMu1frD1UgGnPlOO/K7Ig/KrsU=
—–END CERTIFICATE—–
使用PEM格式存储的私钥:
—–BEGIN RSA PRIVATE KEY—–
MIICJjCCAdCgAwIBAgIBITANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx
………
1p8h5vkHVbMu1frD1UgGnPlOO/K7Ig/KrsU=
—–END RSA PRIVATE KEY—–
使用PEM格式存储的证书请求文件:
—–BEGIN CERTIFICATE REQUEST—–
MIICJjCCAdCgAwIBAgIBITANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCVVMx
………
1p8h5vkHVbMu1frD1UgGnPlOO/K7Ig/KrsU=
—–END CERTIFICATE REQUEST—–
DER – 辨别编码规则 (DER) 可包含所有私钥、公钥和证书。它是大多数浏览器的缺省格式,并按 ASN1 DER 格式存储。它是无报头的 - PEM 是用文本报头包围的 DER。
PFX 或 P12 – 公钥加密标准 #12 (PKCS#12) 可包含所有私钥、公钥和证书。其以二进制格式存储,也称为 PFX 文件。通常可以将Apache/OpenSSL使用的“KEY文件 + CRT文件”格式合并转换为标准的PFX文件,你可以将PFX文件格式导入到微软IIS 5/6、微软ISA、微软Exchange Server等软件。转换时需要输入PFX文件的加密密码。
JKS – 通常可以将Apache/OpenSSL使用的“KEY文件 + CRT文件”格式”转换为标准的Java Key Store(JKS)文件。JKS文件格式被广泛的应用在基于JAVA的WEB服务器、应用服务器、中间件。你可以将JKS文件导入到TOMCAT、 WEBLOGIC 等软件。
KDB – 通常可以将Apache/OpenSSL使用的“KEY文件 + CRT文件”格式转换为标准的IBM KDB文件。KDB文件格式被广泛的应用在IBM的WEB服务器、应用服务器、中间件。你可以将KDB文件导入到IBM HTTP Server、IBM Websphere 等软件。
CSR - 证书请求文件(Certificate Signing Request)。生成 X509 数字证书前,一般先由用户提交证书申请文件,然后由 CA 来签发证书。大致过程如下(X509 证书申请的格式标准为 pkcs#10 和 rfc2314):

用户生成自己的公私钥对;
构造自己的证书申请文件,符合 PKCS#10 标准。该文件主要包括了用户信息、公钥以及一些可选的属性信息,并用自己的私钥给该内容签名;
用户将证书申请文件提交给 CA;
CA 验证签名,提取用户信息,并加上其他信息(比如颁发者等信息),用 CA 的私钥签发数字证书;
说明:数字证书(如x.509)是将用户(或其他实体)身份与公钥绑定的信息载体。一个合法的数字证书不仅要符合 X509 格式规范,还必须有 CA 的签名。用户不仅有自己的数字证书,还必须有对应的私钥。X509v3 数字证书主要包含的内容有:证书版本、证书序列号、签名算法、颁发者信息、有效时间、持有者信息、公钥信息、颁发者 ID、持有者 ID 和扩展项。
OCSP – 在线证书状态协议(OCSP,Online Certificate Status Protocol,rfc2560)用于实时表明证书状态。OCSP 客户端通过查询 OCSP 服务来确定一个证书的状态,可以提供给使用者一个或多个数字证书的有效性资料,它建立一个可实时响应的机制,让用户可以实时确认每一张证书的有效性,解决由CRL引发的安全问题。。OCSP 可以通过 HTTP协议来实现。rfc2560 定义了 OCSP 客户端和服务端的消息格式。
CER - 一般指使用DER格式的证书。
CRT - 证书文件。可以是PEM格式。
KEY - 一般指PEM格式的私钥文件。
CRL - 证书吊销列表 (Certification Revocation List) 是一种包含撤销的证书列表的签名数据结构。CRL 是证书撤销状态的公布形式,CRL 就像信用卡的黑名单,用于公布某些数字证书不再有效。CRL 是一种离线的证书状态信息。它以一定的周期进行更新。CRL 可以分为完全 CRL和增量 CRL。在完全 CRL 中包含了所有的被撤销证书信息,增量 CRL 由一系列的 CRL 来表明被撤销的证书信息,它每次发布的 CRL 是对前面发布 CRL 的增量扩充。基本的 CRL 信息有:被撤销证书序列号、撤销时间、撤销原因、签名者以及 CRL 签名等信息。基于 CRL 的验证是一种不严格的证书认证。CRL 能证明在 CRL 中被撤销的证书是无效的。但是,它不能给出不在 CRL 中的证书的状态。如果执行严格的认证,需要采用在线方式进行认证,即 OCSP 认证。一般是由CA签名的一组电子文档,包括了被废除证书的唯一标识(证书序列号),CRL用来列出已经过期或废除的数字证书。它每隔一段时间就会更新,因此必须定期下载该清单,才会取得最新信息。
SCEP - 简单证书注册协议。基于文件的证书登记方式需要从您的本地计算机将文本文件复制和粘贴到证书发布中心,和从证书发布中心复制和粘贴到您的本地计算机。 SCEP可以自动处理这个过程但是CRLs仍然需要手工的在本地计算机和CA发布中心之间进行复制和粘贴。
PKCS7 – 加密消息语法(pkcs7),是各种消息存放的格式标准。这些消息包括:数据、签名数据、数字信封、签名数字信封、摘要数据和加密数据。
PKCS12 – pkcs12 (个人数字证书标准)用于存放用户证书、crl、用户私钥以及证书链。pkcs12 中的私钥是加密存放的。

在Security编程中,有几种典型的密码交换信息文件格式:
DER-encoded certificate: .cer, .crt
PEM-encoded message: .pem
PKCS#12 Personal Information Exchange: .pfx, .p12
PKCS#10 Certification Request: .p10
PKCS#7 cert request response: .p7r
PKCS#7 binary message: .p7b

.cer/.crt是用于存放证书,它是2进制形式存放的,不含私钥。
.pem跟crt/cer的区别是它以Ascii来表示。
pfx/p12用于存放个人证书/私钥,他通常包含保护密码,2进制方式
p10是证书请求
p7r是CA对证书请求的回复,只用于导入
p7b以树状展示证书链(certificate chain),同时也支持单个证书,不含私钥

<a href="http://s.click.taobao.com/t_8?e=7HZ6jHSTbIOVv3F%2Fq82GJtUry3FR9kvBQXJ5t%2BDQBxNu4A%3D%3D&p=mm_11452884_0_0">秋季女装新款 2012韩版秋装新品大码通勤春秋冬时尚女士风衣外套</a>
<think>嗯,用户想了解如何判断证书类型。首先,我需要回忆一下关于证书类型的基本知识。根据提供的引用内容,证书类型可能涉及签名算法、用途以及颁发机构等信息。比如引用[3]提到签名算法标识符,如RSA、ECDSA,这可能用来区分不同类型证书。 然后,用户提到的引用[1][2]主要涉及证书验证的流程,比如验证CA签名、有效期吊销状态,但这也可能间接帮助判断证书类型。比如,如果证书由特定CA颁发,可能属于某个类别,比如EV证书或普通SSL证书。 接下来,我需要整理判断证书类型的方法。首先想到的是查看证书的元数据,如扩展字段中的密钥用途增强型密钥用途。例如,SSL/TLS服务器证书会有特定的用途标识。另外,签名算法如RSA或ECDSA也是区分证书类型的一个因素,比如引用[3]中提到的算法标识符。 此外,证书的格式如X.509是标准格式,但可能有不同的编码方式,如PEM或DER,这也需要检查。用户可能需要使用工具如OpenSSL或浏览器来查看证书详细信息。 还需要考虑证书的扩展字段,比如主题备用名称(SAN)或者是否是多域名证书。同时,证书的颁发机构信息也很重要,比如商业CA颁发的证书自签名证书类型上不同。 要注意的是,用户可能在实际操作中需要具体的命令行示例或步骤,所以在回答中应该包含这些内容,比如使用openssl命令查看证书细节。此外,引用中的内容需要正确标注,比如引用[2]提到X509TrustManager用于验证证书的CA颁发情况,这可能帮助判断证书是否来自可信源,进而确定类型。 最后,用户可能需要了解如何区分不同的应用场景,比如SSL证书、代码签名证书或电子邮件证书,这些通常通过扩展的密钥用途来识别。总结下来,判断证书类型需要综合签名算法、扩展字段、颁发机构格式等多个方面。</think>### 如何识别判断证书类型? #### **1. 通过证书元数据识别** - **文件扩展名**: 常见证书类型通过扩展名初步判断: - `.pem`:Base64编码的文本格式,包含证书/私钥(如X.509证书) - `.der`:二进制格式的X.509证书 - `.pfx`或`.p12`:包含私钥证书链的PKCS#12格式 - `.cer`:通常表示X.509证书 - **签名算法标识符**: 证书头部或元数据中会标注使用的签名算法(如引用[3]提到的RSA、ECDSA、DSA等)。例如,使用OpenSSL命令查看: ```bash openssl x509 -in certificate.pem -text -noout | grep "Signature Algorithm" ``` #### **2. 分析证书内容** - **X.509标准字段**: - **主题(Subject)**:包含证书持有者信息(如域名、组织名称) - **颁发者(Issuer)**:标识证书颁发机构(CA),可区分证书类型(如商业CA vs 自签名) - **密钥用途(Key Usage)**:明确证书用途(如数字签名、加密通信) - **扩展密钥用途(Extended Key Usage)**:进一步细化用途(如TLS服务器认证、代码签名) 示例: ```bash openssl x509 -in certificate.crt -text -noout ``` - **证书类型分类**: | 类型 | 典型特征 | |-----------------|------------------------------------------------------------------------| | SSL/TLS证书 | 扩展密钥用途包含`Server Authentication`或`Client Authentication` | | 代码签名证书 | 扩展密钥用途包含`Code Signing` | | 电子邮件证书 | 主题中包含电子邮件地址,扩展用途包含`Email Protection` | | 自签名证书 | 颁发者(Issuer)与主题(Subject)相同,且未经CA签名[^1] | | 根证书/中间证书 | 密钥用途包含`Certificate Sign`,用于签发其他证书 | #### **3. 验证证书颁发机构** - **证书链完整性**: 通过验证证书链(从终端证书到根证书)判断类型。例如: ```bash openssl verify -CAfile root_ca.crt user_cert.crt ``` 若验证失败,可能为自签名或未信任的证书[^1][^2]。 - **CA标识**: 商业CA(如Let's Encrypt、DigiCert)颁发的证书通常包含特定扩展字段(如OCSP响应、CRL分发点),而私有CA证书可能缺少这些信息。 #### **4. 使用工具辅助分析** - **浏览器检查**: 点击地址栏锁图标 → 查看证书详情,可直观显示证书类型、颁发者、有效期等信息。 - **在线解析工具**: 使用SSL Labs、CSR Decoder等工具上传证书,自动解析类型关键字段。 #### **5. 特殊类型证书的识别** - **多域名证书(SAN证书)**: 查看`Subject Alternative Name`字段,包含多个域名或IP地址。 - **通配符证书**: 主题或SAN字段包含通配符(如`*.example.com`)。 - **EV证书(扩展验证证书)**: 颁发者为知名CA,且证书中`Subject`字段包含完整的组织信息。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值