美文网首页
证书的生成和验证

证书的生成和验证

作者: yaoyao妖妖 | 来源:发表于2018-05-21 15:06 被阅读43次

    1:根证书:由权威机构发布,在操作系统和网络中记录
    2:数字证书的生成时分层级的,下一级证书的生成需要上一级证书的私钥签名,验证的时候也需要上一级证书的公钥验签。
    3:根证书是自签名的,用自己的私钥签名。
    签名:签名就是在信息的后面再加上一段内容,可以证明信息没有被修改过。
    具体操作:对一段信息hash之后得到hash值,将这个hash添加到这段信息之后一起发送给别人。但是在实际操作的情况下为了防止hash值被别人修改,一般将hash值加密(签名)之后再添加到信息后面再进行发送。

    4:证书的内容:
    对象名称
    共有名称
    证书的颁发者
    签名算法(签名也叫做指纹)
    序列号
    生效期 失效期
    公钥
    签名

    5.证书的生成:
    证书的颁发者在得到证书申请者的一些必要的信息(对象名称,公钥,私钥)之后,证书的颁发者通过哈希得到证书摘要,并用证书颁发者的私钥给这个摘要加密,得到数字签名。综合所有信息生成包含公钥和私钥的两个证书。

    ![屏幕快照 2018-05-21 15.39.08.png](https://img.haomeiwen.com/i2154922/f41854f548068be5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

    6.证书的验证:
    证书的验证:
    我们"ABC Company"申请到这个证书后,我们把证书投入使用,我们在通信过程开始时会把证书发给对方,对方如何检查这个证书的确是合法的并且是我们"ABC Company"公司的证书呢?

    1.首先应用程序(对方通信用的程序,例如IE、OUTLook等)读取证书中的Issuer(发布机构)为"SecureTrust CA" ,然后会在操作系统中受信任的发布机构的证书中去找"SecureTrust CA"的证书,如果找不到,那说明证书的发布机构是个水货发布机构,证书可能有问题,程序会给出一个错误信息;
    2.如果在系统中找到了"SecureTrust CA"的证书,那么应用程序就会从证书中取出"SecureTrust CA"的公钥,然后对我们"ABC Company"公司的证书里面的签名和签名算法用这个公钥进行解密;
    3.然后使用这个签名算法计算"ABC Company"证书的签名,将这个计算的签名与放在证书中的签名对比,如果一致,说明"ABC Company"的证书肯定没有被修改过并且证书是"SecureTrust CA" 发布的,证书中的公钥肯定是"ABC Company"的。对方然后就可以放心的使用这个公钥和我们"ABC Company"进行通信了。

    屏幕快照 2018-05-21 15.39.08.png

    4.从上面可以看出花钱买的证书不需要下载额外的私钥证书到客户端,但是个人自己生成的证书需要在客户端下载私钥,因为花钱买的证书会将证书加入到受信任的证书层级里面,下一级证书由上一级证书验证,一直到根证书。

    摘自:
    https://www.cnblogs.com/oc-bowen/p/5896041.html
    https://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html
    https://www.cnblogs.com/oc-bowen/p/5896041.html
    http://oncenote.com/2014/10/21/Security-1-HTTPS/

    相关文章

      网友评论

          本文标题:证书的生成和验证

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