zoukankan      html  css  js  c++  java
  • 数字证书常见格式整理

    数字证书常见标准

    • 符合PKI ITU-T X509标准,传统标准(.DER .PEM .CER .CRT)
    • 符合PKCS#7 加密消息语法标准(.P7B .P7C .SPC .P7R)
    • 符合PKCS#10 证书请求标准(.p10)
    • 符合PKCS#12 个人信息交换标准(.pfx *.p12)
      X509是数字证书的基本规范,而P7和P12则是两个实现规范,P7用于数字信封,P12则是带有私钥的证书实现规范。

    x509

    基本的证书格式,只包含公钥。
    x509证书由用户公共密钥和用户标识符组成。此外还包括版本号、证书序列号、CA标识符、签名算法标识、签发者名称、证书有效期等信息。

    PKCS#7

    Public Key Cryptography Standards #7。
    PKCS#7一般把证书分成两个文件,一个公钥、一个私钥,有PEM和DER两种编码方式。PEM比较多见,是纯文本的,一般用于分发公钥,看到的是一串可见的字符串,通常以.crt,.cer,.key为文件后缀。DER是二进制编码。
    PKCS#7一般主要用来做数字信封。

    PKCS#10

    证书请求语法。

    PKCS#12

    Public Key Cryptography Standards #12。
    一种文件打包格式,为存储和发布用户和服务器私钥、公钥和证书指定了一个可移植的格式,是一种二进制格式,通常以.pfx或.p12为文件后缀名。
    使用OpenSSL的pkcs12命令可以创建、解析和读取这些文件。
    P12是把证书压成一个文件,xxx.pfx 。主要是考虑分发证书,私钥是要绝对保密的,不能随便以文本方式散播。所以P7格式不适合分发。.pfx中可以加密码保护,所以相对安全些。

    PKCS系列标准

    实际上PKCS#7、PKCS#10、PKCS#12都是PKCS系列标准的一部分。相互之间并不是替代的关系,而是对不同使用场景的定义。

    证书编码格式

    PEM和DER两种编码格式。

    PEM

    Privacy Enhanced Mail
    查看内容,以"-----BEGIN..."开头,以"-----END..."结尾。
    查看PEM格式证书的信息:openssl x509 -in certificate.pem -text -noout
    Apache和*NIX服务器偏向于使用这种编码格式。

    DER

    Distinguished Encoding Rules
    打开看是二进制格式,不可读。
    查看DER格式证书的信息:openssl x509 -in certificate.der -inform der -text -noout
    Java和Windows服务器偏向于使用这种编码格式。

    各种后缀含义

    文件的内容和后缀没有必然的关系,但是一般使用这些后缀来表示这是什么文件。

    JKS

    Java Key Store(JKS)。

    CSR

    证书请求文件(Certificate Signing Request)。
    这个并不是证书,而是向权威证书颁发机构获得签名证书的申请,其核心内容是一个公钥(当然还附带了一些别的个人信息)。
    查看的办法:openssl req -noout -text -in my.csr,DER格式的话加上-inform der。

    CER

    一般指使用DER格式的证书。

    CRT

    证书文件。可以是PEM格式。

    KEY

    通常用来存放一个公钥或者私钥。
    查看KEY的办法:openssl rsa -in mykey.key -text -noout
    如果是DER格式的话,同理应该这样了:openssl rsa -in mykey.key -text -noout -inform der
    这是使用RSA算法生成的key这么查看,DSA算法生成的使用dsa参数。

    CRL

    证书吊销列表 (Certification Revocation List),是一种包含撤销的证书列表的签名数据结构。

  • 相关阅读:
    vue 设置全局变量、指定请求的 baseurl
    npm ERR! missing script: build
    npm install 报错,提示`gyp ERR! stack Error: EACCES: permission denied` 解决方法
    vue-cli 4 安装与 新建项目 路由
    PHP7安装redis扩展
    C#中的list的System.Predicate<in T>和System.Comparison<in T>的应用
    6个2教你认识递归的力量!
    C#中的预编译指令介绍[转]
    C#---数据库访问通用类、Access数据库操作类、mysql类 .[转]
    GOTO语句以及GOTO机制的模式实现
  • 原文地址:https://www.cnblogs.com/cuimiemie/p/6442685.html
Copyright © 2011-2022 走看看