证书的那些事(1)之初识证书

1. 初识证书

    在现实生活中,我们经常使用到身份证用来向别人证明我们自己的身份.而在网络世界中,我们也需要用到一个东西去证明通信双方的身份,而不是假冒的.实现的方法有很多种,而证书就是其中一种,个人认为也是最好的一种方式,相比其他方式,比如身份标识符,PSK,公私钥等等.

    目前广泛使用的证书大部分都是X509证书,版本为v3.下面以一张真实的证书为例,说明证书里面内容有哪些.

2. Certificate Hierarchy部分介绍

   

    该图其实说明了证书链的结构, 可以看到 www.cisco.com-->HydrantID SSL ICA G2-->QuoVadis Root CA 2这一条完整的证书链. 证书链中除了包含Cisco网站的证书外,还包含了它上级CA的证书,当然也可以包含上上级CA的证书,直到最终Root CA的证书.

     服务器可以发送证书给客户端,也可以发送证书链给客户端,取决于服务器的配置.发送证书链时,中间不能少CA.举例来说,假设一条证书链是Server-->L2 CA-->L1 CA-->Root CA, 我们可以发送Server-->L2 CA证书链,也可以发送Server-->L2 CA-->L1 CA证书链,当然还可以发送Server-->L2 CA-->L1 CA-->Root CA完整的证书链,但是不能发送Server--->L1 CA-->Root CA, Server-->L2 CA-->Root CA证书链.

3. Certificate Fields和Field Value部分介绍

    

    可以看到证书里面的字段很多,有 Version, Serial Number, Certificate Signature Algorithm, Issuer, Validity, Subject, Subject Public Key Info, Extensions, Certificate Signature Value.

    这么多字段,刚开始结束时,我也很犯怵,这么多,都是什么意思. 本文中,我们先说其中比较简单的,余下部分,留给下一篇文档.

扫描二维码关注公众号,回复: 6224598 查看本文章

    (1)Version

        x509数字证书的版本号,现在基本上都是 v3.

        对应Field Value值为 0x2.

    (2)Serial Number

        该证书的序列号,在CA给不同证书申请者颁发证书时候,一般会给该证书加上证书的编号,类似于身份证号.

        该例中本字段对应的Field Value值为 

52:18:93:9c:92:b3:34:82:32:a5:ac:f8:01:8c:ca:80:11:4c:dd:fa .

    (3)Issuer

        证书的颁发者信息, 即证书的直接上级信息.

        该例中本字段对应的Field Value值为

Issuer: C = US, O = HydrantID (Avalanche Cloud Corporation), CN = HydrantID SSL ICA G2

       可看到信息指明了直接上级CA为HydrantID SSL ICA G2, 与我们在 Certificate Hierarchy 部分看到的一致.如下图

       

    (4)Validity

        证书的有效期, 在CA签发证书时候, 需要说明该证书的使用时间,是一天,一个月,一年,十年还是多长时间.

        体现在这里的信息,就是证书颁发的不晚于证书的颁发时间,不早于证书颁发时间+持续时间. 以GMT为时区标准.

        该例中本字段对应的Field Value值为

Not Before: Jan  9 19:58:16 2018 GMT
Not After : Jan  9 20:08:00 2020 GMT

    (5)Subject

        证书本身的信息, 我们在制作证书时候,需要先生成CSR,这时候会让我们填写信息,就体现在这.

        该例中本字段对应的Field Value值为

Subject: C = US, ST = CA, L = San Jose, O = "Cisco Systems, Inc.", CN = www.cisco.com

    (6)Subject Public Key Info

        证书的公钥信息, 可以看到证书和公钥是一一对应关系, 证书里面包含了公钥算法和公钥值.

        该例中本字段对应的Field Value值为

Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:9b:ad:a9:b6:59:e3:8d:fe:7c:c6:bb:84:c3:76:
                    51:08:65:ae:e9:8c:8f:33:7e:dc:ef:1f:98:1a:9a:
                    eb:3b:e6:42:b6:3d:4c:77:df:d4:24:e0:36:87:a8:
                    05:9f:94:f0:18:ef:79:6f:2f:32:a0:da:05:58:23:
                    3b:7d:21:8c:4a:16:ea:38:fb:99:0d:9e:48:68:95:
                    01:c0:83:c9:ea:43:74:65:64:d6:c9:85:2e:2f:f0:
                    ca:5a:22:d4:af:ee:4d:24:95:ca:ca:a1:59:90:50:
                    ed:ec:26:67:89:66:d9:41:e4:7a:e8:aa:56:d2:12:
                    50:0e:80:fe:2c:7f:4d:b1:e2:53:bd:83:2e:98:c2:
                    bb:b8:1c:81:25:78:4f:b5:2d:7b:07:7f:a4:11:8e:
                    64:01:31:ab:38:22:12:56:ce:31:dd:74:08:c6:57:
                    1b:81:2f:a7:27:db:81:13:12:bb:d1:f9:2d:fd:6b:
                    1e:d1:79:71:65:53:89:5f:09:84:60:ee:81:c1:84:
                    fd:1f:50:49:c8:c7:08:29:92:19:57:c6:af:b3:42:
                    92:4c:3f:4b:4e:51:ad:f6:ea:86:98:8a:9c:58:28:
                    2f:7f:68:14:13:c2:27:fd:a9:01:42:5d:1e:95:29:
                    f2:da:89:29:3d:e2:ea:08:f7:dc:78:66:fa:33:83:
                    1c:71
                Exponent: 65537 (0x10001)

    (7)Extensions

        下一篇文档再讲:深入理解证书以及证书作用

    (8)Certificate Signature Algorithm & Cetificate Signature Value

        下一篇文档再讲:深入理解证书以及证书作用

猜你喜欢

转载自blog.csdn.net/Wendy019900107/article/details/89058977