【学习笔记】SSL证书里包含的具体信息

SSL证书的形式与内容由X.509证书标准所定义,包含3部分内容:证书数据、签名算法以及签名

        当CA创建一份证书时,CA会将所有证书数据录入证书,然后通过哈希算法和CA自己的私钥加密过的摘要来生成一个签名,这个签名证明了证书数据里所有内容的有效性

        Certificate Data(证书数据)包含7部分内容

1、Version(版本号)

版本号指定了证书所使用的是哪个版本的X.509证书标准,有3个X.509版本

  • 0x0 - x509 version 1 - 现已经不再使用
  • 0x1 - x509 version 2 - 很少使用(如果可能,避免使用)
  • 0x2 - x509 version 3 - 现在的证书都使用该版本

     X.509 v3添加了证书扩展(Certificate Extensions),允许证书添加各种类型的附加信息,这些信息可以提供关于证书用途和限制的更详细的说明。

2、Serial Number(序列号)

  • 20 bytes(160 bits)
  • 给定CA颁发的证书的唯一标识
  • 用于查询证书单独有效性(通过两个协议CRL-Certificate Revocation List和OCSP-Online Certificate Status Protocol)

    假设有两家CA,分别是CA X和CA Y,CA X颁发的每张证书的序列号是唯一的,CA Y颁发的每一张证书的序列号也是唯一的,但是两家CA颁发的证书可能存在序列号完全相同的情况,这是可行的,原因在于序列号的用法——通过序列号向颁发该证书的CA提交查询请求(因为每家CA的每张证书都有唯一序列号)。

3、Signature Algorithm(签名算法)

    签名算法即用来生成签名的算法,包含hash证书数据的哈希算法(Hashing algorithm)和生成密钥的非对称加密算法(Asymmetry Encryption algorithm)。非对称加密算法生成的私钥给哈希后的摘要进行签名。

    相关算法例子:md5WithRSAEncryption、sha1WithRSAEncryption(前两种目前已经被破解了,不安全)、ecdsa-with-SHA256、sha256WithRSAEncryption

4、Validity(有效性)

  • 证书有效期
  • 由2个值指定----Not Before;Not After

例如本站点:

    在上述时间区间之外,浏览器都会提示--证书过期。

5、Subject and Issuer(主体和颁发者)

(1)Sbuject:freessl.cn

    主体(Server)是证书要去验明其身份的,比如freessl.cn;

(2)Issuer:CA

    颁发者(CA)是识别颁发证书的CA

(3)CA也有证书

        该证书也有Subject和Issuer,也称做CA签发自己的证书,即主体和颁发者是同一个(Self-Signed Certificates)。

(4)Subject和Issuer都由DN(Distinguished Name,识别名)指定(之前在讲CSR详解时也有提到),如下图所示:

Reddit完整的DN:C=US,ST=California,L=San Francisco,O=Reddit Inc.,CN=*.reddit.com

Google完整的DN:C=US,ST=California,L=Mountain View,O=Google LLC,CN=*.google.com

    ① CN ---- Common Name

        每张证书都只有一个Common Name(因为浏览器在地址栏中验证的是CN而不是URL);

        CN可以包含通配符(*),例如CN=*.google.com,对应地如:www.google.com,maps.google.com和mail.google.com,这个通配符(*)可以是www,可以是maps,也可以是mail,并且这三个域名可以用一张通配符证书(*.google.com)安全保护;但是要注意的是,通配符不匹配这些如:us.mail.google.com(因为这里有两个子域名,而上面的证书只能保护一个子域名)或者google.com(必须要出现子域名*,不能没有)

    ② OU ---- Organizational Unit

    ③ O ---- Organization

    ④ L ---- Locality/City

    ⑤ ST ---- State

    ⑥ C ---- Country

        以上是在SSL证书中常见的识别名格式,也有其他不是SSL领域的识别名,详情请参考LDAP-RFC4519: Attribute Definitions

        我们可以查看本站的证书的Subject和Issuer

        此外,需要注意的是:在每个DN中我们不需要提供每一个属性;且最为重要的是Common Name,颁发者和颁发对象都必须要有。

6、Public Key(公钥)

        公钥呈现出2个值,Modulus和Exponent

        上图的公钥使用的是RSA算法,下图的公钥则是ECDSA算法(Elliptic Curve Digital Signature Algorithm)

7、Extensions(扩展)

        证书扩展支出现在X.509 v3扩展中,它为证书添加功能和限制提供了可选字段。

        证书扩展解释了为什么证书不会是X.509 v4,因为新的证书特征会直接添加到新的扩展文件中。

参考文献

1、网站:Practical Networking.net:Practical TLS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值