证书

作者: 守护者 | 来源:发表于2021-06-16 16:09 被阅读0次
1

X.509是一种非常通用的证书格式。所有的证书都符合ITU-T X.509国际标准,因此(理论上)为一种应用创建的证书可以用于任何其他符合X.509标准的应用。X.509证书的结构是用ASN1(Abstract Syntax Notation One)进行描述数据结构,并使用ASN.1语法进行编码。

前使用最广泛的标准为ITU和ISO联合制定的X.509的 v3版本规范 (RFC5280), 其中定义了如下证书信息域:

    版本号(Version Number):规范的版本号,目前为版本3,值为0x2;

    序列号(Serial Number):由CA维护的为它所发的每个证书分配的一的列号,用来追踪和撤销证书。只要拥有签发者信息和序列号,就可以唯一标识一个证书,最大不能过20个字节;

    签名算法(Signature Algorithm):数字签名所采用的算法,如:

        sha256-with-RSA-Encryption

        ccdsa-with-SHA2S6;

    颁发者(Issuer):发证书单位的标识信息,如 ” C=CN,ST=Beijing, L=Beijing, O=org.example.com,CN=ca.org。example.com ”;

    有效期(Validity): 证书的有效期很,包括起止时间。

    主体(Subject) : 证书拥有者的标识信息(Distinguished Name),如:" C=CN,ST=Beijing, L=Beijing, CN=person.org.example.com”;

    主体的公钥信息(SubJect Public Key Info):所保护的公钥相关的信息:

        公钥算法 (Public Key Algorithm)公钥采用的算法;

        主体公钥(Subject Unique Identifier):公钥的内容。

    颁发者唯一号(Issuer Unique Identifier):代表颁发者的唯一信息,仅2、3版本支持,可选;

    主体唯一号(Subject Unique Identifier):代表拥有证书实体的唯一信息,仅2,3版本支持,可选:

    扩展(Extensions,可选): 可选的一些扩展。中可能包括:

        Subject Key Identifier:实体的秘钥标识符,区分实体的多对秘钥;

        Basic Constraints:一指明是否属于CA;

        Authority Key Identifier:证书颁发者的公钥标识符;

        CRL Distribution Points: 撤销文件的颁发地址;

        Key Usage:证书的用途或功能信息。

此外,证书的颁发者还需要对证书内容利用自己的私钥添加签名, 以防止别人对证书的内容进行篡改。

X.509规范中一般推荐使用PEM(Privacy Enhanced Mail)格式来存储证书相关的文件。证书文件的文件名后缀一般为 .crt 或 .cer 。对应私钥文件的文件名后缀一般为 .key。证书请求文件的文件名后綴为 .csr 。有时候也统一用pem作为文件名后缀。

PEM格式采用文本方式进行存储。一般包括首尾标记和内容块,内容块采用Base64进行编码。

编码格式总结:

    X.509 DER(Distinguished Encoding Rules)编码,后缀为:.der .cer .crt

    X.509 BASE64编码(PEM格式),后缀为:.pem .cer .crt

证书直接是可以有信任关系的, 通过一个证书可以证明另一个证书也是真实可信的. 实际上,证书之间的信任关系,是可以嵌套的。比如,C 信任 A1,A1 信任 A2,A2 信任 A3…这个叫做证书的信任链。只要你信任链上的头一个证书,那后续的证书,都是可以信任滴。

假设 C 证书信任 A 和 B;然后 A 信任 A1 和 A2;B 信任 B1 和 B2。则它们之间,构成如下的一个树形关系(一个倒立的树)。

处于最顶上的树根位置的那个证书,就是“根证书”。除了根证书,其它证书都要依靠上一级的证书,来证明自己。那谁来证明“根证书”可靠捏?实际上,根证书自己证明自己是可靠滴(或者换句话说,根证书是不需要被证明滴)。

 聪明的同学此刻应该意识到了:根证书是整个证书体系安全的根本。所以,如果某个证书体系中,根证书出了问题(不再可信了),那么所有被根证书所信任的其它证书,也就不再可信了。

相关文章

  • SSL证书创建与部署

    SSL证书简介SSL证书创建SSL证书部署-NginxSSL证书部署-ApacheSSL证书部署-Tomcat S...

  • iOS开发证书和生产证书

    证书分为开发证书(测试证书,测试时用到)和生产证书(发布证书,上线用到). 一.创建CSR文件 钥匙串访问⟶证书助...

  • 什么是HTTPS证书?HTTP与HTTPS的区别

    一、什么是HTTPS证书 HTTPS证书(即SSL证书)。HTTPS证书是颁发给标识互联网域名的数字证书,证书作用...

  • iOS开发环境相关(3)——证书制作

    这里的证书不包含推送证书,如果需要制作推送证书,移步iOS开发环境相关(4)——推送证书 开发者证书制作 证书主要...

  • beego启用https

    启用https的话,首先要生成ssl证书 生成ssl证书 SSL证书包括: CA证书: 也叫根证书或者中间级证书,...

  • HTTPS网站 | SSL证书和ca证书有何区别?

    SSL证书和ca证书 你知道SSL证书和ca证书有何区别吗?其实SSL证书是ca证书中的一种,CA是数字证书管理机...

  • USBKey访问、Delphi、JS

    JavaScript方式 Delphi方式获取证书 证书遍历 加密 判断签名证书、加密证书

  • https 免费申请和安装

    centos 安装apache + ssl证书 免费证书申请和安装 申请证书 去阿里云平台找证书管理然后证书购买 ...

  • 自签CA证书和签发证书

    生成CA根证书 生成服务私钥和证书请求 签发证书 查看证书 服务器导入CA证书

  • IOS 后台证书

    1、电脑证书1.1:、电脑证书分为开发证书和正式证书,消息通知证书也分有开发和正式证书。 2、创建应用ID Bun...

网友评论

      本文标题:证书

      本文链接:https://www.haomeiwen.com/subject/dgqfyltx.html