zoukankan      html  css  js  c++  java
  • 关于https和数字证书的一些必须知识

    下面这篇文章叫做  HTTPS连接的前几毫秒发生了什么 ,是一篇译文,写得不错,十分有助于理解https。

    http://blog.jobbole.com/48369/

    下面的链接是百度文库的 数字证书的构成和原理 讲的不错!

    http://wenku.baidu.com/link?url=lTD6w7RvwCjlTPMq0737TNdyoV-MVKWa5DIoi3qO3LhSWEw4L-zFiIGM7dMffQc-GIPKAENAcQC0im86x8vsQ8Shmju1q63nF5dlVJ0Zgaq

    摘抄几段重要的话:

    一个公司想要在网络上标志自己的身份,可以向一个权威的CA中心购买证书。假如某公司A向某知名CA中心B购买证书,CA中心首先会去确认该公司的身份,确认完之后,会给该公司颁发一个数字证书(内容和上面的基本一致)。此外还会给公司一个证书公钥对应的私钥。

    一个证书中比较关键的项目:

    Public key 公钥 即该证书持有人的公钥

    Thumbprint,Thumbprint algorithm 

    指纹以及指纹算法,在证书发布的时候,发布机构会根据指纹算法先计算出整个证书的hash值,并使用证书发布机构的私钥对其进行签名构成一个指纹,并将指纹与该证书放在一起。

     

    看完文章,我简单地说以下理解,一般的https,就是在服务器上准备一个CA认证的证书,内部有自己的公匙,表明自己的身份。客户端利用此公匙加密接下来要使用的AES的密匙(用于加密真正的发送内容,速度快),这样确保AES的密匙能够安全到达服务器端,之后服务器会用自己的私匙得到AES秘匙。其实,AES的加密过程和证书是否经过CA认证无关,只要有个自己利用工具生成的证书就可以完成加密任务,CA认证真正的作用,就是为了保证网站的真实性。因为证书中包含一段由CA私匙加密过的数据(在证书里叫做签名,也就是signature),这段数据只有CA的公匙可以解密,而CA的公匙,名气超大,是提前安装在操作系统中的!CA公匙的安全和正确性,由操作系统维护,所以,如果系统能够正确解密,那么证书一定是CA发布的,也就确保了服务器的唯一身份!

    在ios中和android中,如果访问的地址是https的,而且证书不是ca颁布的,那么会出现问题,无法访问,需要加入忽视证书错误的设置!比如使用afnetworking时manager.securityPolicy.allowInvalidCertificates = YES;

  • 相关阅读:
    在线压缩与解压
    批处理删除文件del dos cmd
    git教程
    网页图标下载
    vs2010使用git
    配置 authorization deny allow
    mvc4下载
    nuget自动发布脚本
    OAuth2.0
    使用 HttpModel与现有基于共享登录信息( Cookie )的网站进行集成
  • 原文地址:https://www.cnblogs.com/breezemist/p/4024758.html
Copyright © 2011-2022 走看看