zoukankan      html  css  js  c++  java
  • 数字证书常见格式与协议介绍

    引:http://blog.csdn.net/anxuegang/article/details/6157927

    证书基本的文件类型和协议有: PEM、DER、PFX、JKS、KDB、CER、KEY、CSRCRTCRL 、OCSP、SCEP等。

    PEM – Openssl使用 PEM(Privacy Enhanced Mail)格式来存放各种信息,它是 openssl 默认採用的信息存放方式。

    Openssl 中的 PEM 文件一般包括例如以下信息:

    1. 内容类型:表明本文件存放的是什么信息内容,它的形式为“——-BEGIN XXXX ——”,与结尾的“——END XXXX——”相应。

    2. 头信息:表明数据是假设被处理后存放,openssl 中用的最多的是加密信息,比方加密算法以及初始化向量 iv。

    3. 信息体:为 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文件的加密password。


    JKS – 通常能够将Apache/OpenSSL使用的“KEY文件 + CRT文件”格式”转换为标准的Java Key Store(JKS)文件。

    JKS文件格式被广泛的应用在基于JAVA的WEBserver、应用server、中间件。

    你能够将JKS文件导入到TOMCAT、 WEBLOGIC 等软件。
    KDB – 通常能够将Apache/OpenSSL使用的“KEY文件 + CRT文件”格式转换为标准的IBM KDB文件。

    KDB文件格式被广泛的应用在IBM的WEBserver、应用server、中间件。你能够将KDB文件导入到IBM HTTP Server、IBM Websphere 等软件。
    CSR - 证书请求文件(Certificate Signing Request)。

    生成 X509 数字证书前,一般先由用户提交证书申请文件,然后由 CA 来签发证书。大致步骤例如以下(X509 证书申请的格式标准为 pkcs#10 和 rfc2314):

    1. 用户生成自己的公私钥对;
    2. 构造自己的证书申请文件,符合 PKCS#10 标准。该文件主要包括了用户信息、公钥以及一些可选的属性信息,并用自己的私钥给该内容签名;
    3. 用户将证书申请文件提交给 CA;
    4. CA 验证签名,提取用户信息,并加上其它信息(比方颁发者等信息),用 CA 的私钥签发数字证书;
    5. 说明:数字证书(如x.509)是将用户(或其它实体)身份与公钥绑定的信息载体。

      一个合法的数字证书不仅要符合 X509 格式规范,还必须有 CA的签名。用户不仅有自己的数字证书,还必须有相应的私钥。X509v3数字证书主要包括的内容有:证书版本号、证书序列号、签名算法、颁发者信息、有效时间、持有者信息、公钥信息、颁发者 ID、持有者 ID 和扩展项。

    OCSP– 在线证书状态协议(OCSP,Online Certificate StatusProtocol,rfc2560)用于实时表明证书状态。

    OCSP client通过查询 OCSP服务来确定一个证书的状态,能够提供给使用者一个或多个数字证书的有效性资料,它建立一个可实时响应的机制。让用户能够实时确认每一张证书的有效性,解决由CRL引发的安全问题。

    OCSP 能够通过 HTTP协议来实现。

    rfc2560 定义了 OCSP client和服务端的消息格式。


    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 中的私钥是加密存放的。

  • 相关阅读:
    Android-Sqlite-OOP方式操作增删改查
    Android-Sqlite-升级操作
    Android-Sqlite-SQL操作增删改查
    Android-SqliteSQL语句大全
    Android-startService后台运行
    php获取post参数的几种方式 RPC 规定接收取值方式 $GLOBALS['HTTP_RAW_POST_DATA'];
    php echo '<script>alert("插入成功")</script>';
    php urlencode函数 (中文字符转换为十六进制)
    Validform使用ajax详解
    PHP系统级函数 get_headers() 包含有服务器响应一个 HTTP
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/6702759.html
Copyright © 2011-2022 走看看