首页 > 其他分享 >加解密与HTTPS(5)

加解密与HTTPS(5)

时间:2023-01-05 23:32:33浏览次数:35  
标签:公钥 证书 签发 某付 加解密 域名 HTTPS 数字证书

您好,我是湘王,这是我的51CTO博客,欢迎您来,欢迎您再来~




咱们大学读完之后有毕业证书,并且这个证书可以在学信网查询。专业上有注会、CCIE、律师证等,可以在国家职业认证机构或委托机构的网站上查到。公司注册之后,营业执照信息也可以在天眼查或企查查上找到。从上述场景中,不难发现证书的作用:

1、过往经历的证明;

2、第三方信用担保;

3、唯一合法性检验。


在互联网上也有证书,并且还是天文数字,随便举几个例子看看就知道:

加解密与HTTPS(5)_CA证书


加解密与HTTPS(5)_CA证书_02


加解密与HTTPS(5)_CA证书_03



这就是互联网站的「毕业证」。

而且还不是谁都能发这样的证书。现在世界著名证书颁发机构(也叫CA证书授权中心,Certificate Authority)包括:DigiCert(某付宝的毕业证就是它发的)、Comodo、GeoTrust(阿里云的毕业证是它发的)、Symantec、RapidSSL。

有了「毕业证」,就不得不提「学位证」:

1、DV:域名型证书,只需要验证域名的所有权,相当于学士学位;

2、OV:组织型证书,域名和组织身份都要验证,相当于硕士学位;

3、EV:安全性和可信任度最高,特点是浏览器有绿色地址栏,相当于博士学位。

加解密与HTTPS(5)_互联网证书_04


有了「学位证」,还要能够选修不同「专业」:通配符型、万能型、单域名型、多域名型。

真实世界的证书,一般都是学校存档一份,毕业生保存一份。有一些比价特殊的工艺,保证证书不可伪造及唯一性。那么网络证书CA怎么保证安全性、不可伪造及唯一呢?

可以随便找一个有证书的网站,看看TA的证书「长什么样」。

目前,所有证书都由四部分组成:

1、主题信息:常规信息,如国家、地区、组织等;

2、签发者信息:证书机构、签发者使用的签名算法;

3、公钥信息:包括密钥基本信息和扩展信息(策略、约束、扩展域名、时间戳列表等);

4、指纹信息:SHA-1、SHA-256。


那么证书是怎么签发的呢?

1、准备证书元数据:包括签发人、地址、签发时间、有效期等,还包括证书持有者基本信息,比如DN(DNS Name)、 所有者公钥等信息;

2、使用的Hash算法(如SHA-256)对证书元数据进行计算,生成数字摘要;

3、使用签发人的私钥对该数字摘要进行加密,生成一个加密的数字摘要,也就是签发人的数字签名;

4、将数字签名附加到数字证书上,变成一个签过名的数字证书;

5、将签过名的数字证书与签发人的公钥一同发给证书使用者。

就是这样的:

加解密与HTTPS(5)_互联网证书_05


怎么验证证书的真伪呢?

1、证书使用者获通过某种途径(如浏览器访问)获取到该数字证书,解压后分别获得证书元数据和数字签名;

2、使用同样的Hash算法计算证书元数据的数字摘要;

3、使用签发人的公钥对数字签名进行解密,得到解密后的摘要;

4、对比2和3两个步骤得到的数字摘要值,如果相同,则说明这个数字证书确实是被签发人验证过合法证书,证书中的信息(最主要的是所有者的公钥)是可信的。

它的流程是:

加解密与HTTPS(5)_CA证书_06


加解密与HTTPS(5)_数字证书_07




关于证书的最后一个问题:证书的关键在于签发人的公钥,但如果签发人本身有问题,信用差,那谁又来替TA担保呢?就好比清北复哈的证书(文凭),谁来保证他们和野鸡大学不一样呢?

真实世界中有国家这个强力后盾为名牌大学做担保,但是互联网里没有这样的威权或公器存在,有的是证书链。

以某付宝为例,TA的证书层级大概是这样:

DigiCert Global Root CA

Secure Site CA G2

*.alipay.com


从上到下,级别依次递减。

就像这样:

加解密与HTTPS(5)_互联网证书_08


这种证书层级结构就是证书链。以刚才的某付宝举例,它的的证书层级有三个级别:

1、终端用户:就是某付宝,该证书包含某付宝的公钥,某付宝的用户支付或者调用某付宝接口,就是使用这个公钥将数据加密后再传给某付宝的;

2、中间签发人:对公钥持有者身份的证书进行认证,负责确认确实是某付宝在使用终端用户证书,也就是负责确认「某付宝确实是某付宝」,这类签发人可以有很多层级;

3、根root:最高级别的签发人,负责认证所有中间签发人,类似于国家教育部,认证和管理下面所有的教育机构。


为了得到终端用户的公钥,就要得到终端用户证书。为了证明该证书可信,必须向上追溯该证书是否被中间签发人机构认证。继续线上追溯,直到找到最终的Root CA。

证书追溯的过程是这样的:

加解密与HTTPS(5)_数字证书_09




感谢您的大驾光临!咨询技术、产品、运营和管理相关问题,请关注后留言。欢迎骚扰,不胜荣幸~

标签:公钥,证书,签发,某付,加解密,域名,HTTPS,数字证书
From: https://blog.51cto.com/u_15817148/5992014

相关文章

  • bouncycastle(BC) 实现SM2国密加解密、签名、验签
    https://www.cnblogs.com/dashou/p/14656458.html SM2国密加解密一个类就够了<dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</......
  • 简单的C#&PHP对称加解密
    byte[]ctxbytes=System.Text.Encoding.UTF8.GetBytes(ctx);byte[]keybytes=System.Text.Encoding.UTF8.GetBytes(key);intctxLen=ctxbytes.Length......
  • 2.树莓派使用frp内网穿透http,https
    原材料准备(在服务端和客户端均执行一次)下载压缩包wgethttps://github.com/fatedier/frp/releases/download/v0.38.0/frp_0.38.0_linux_amd64.tar.gz执行以下命令,解压f......
  • HTTPS和HTTP的区别
    以前登录时候向服务器传递的是明文username:张三password:123456到了后台将123456密码用MD5加密后保存到数据库。现在就有了个问题,传输过程中是明文传输的,不安全。如何将......
  • tomcat添加TLSv1.2https证书访问
    打开conf下的 server.xml,从中找到如下注释信息。<!--DefineaSSL/TLSHTTP/1.1Connectoronport8443ThisconnectorusestheNIOimplementation.Thedefault......
  • https的网站是不是必须让用户装数字证书
    https的网站是不是必须让用户装数字证书?1.如果用户不装,是否就不能够访问,或者说无法完成,比如交易这种操作。 2.浏览器识别到https网站的时候,是浏览器负责建立加密通道......
  • org.nutz.http.Http忽略https SSL证书验证
    访问的是一个httpsget请求,报错需要SSL证书验证,以下方法直接跳过booleancheck=Http.disableJvmHttpsCheck(); //忽略https的证书检查......
  • 【拓展】745- Windows Server 升级 HTTPS 实战
    趁着国庆假期,开发了个小程序,但需要服务器使用HTTPS协议,因此借这次机会,学着自己完成HTTPS升级工作。如有什么错误,欢迎指正!......
  • 爬虫笔记【1】如何爬取无HTTPS证书的网站?
      在爬虫过程中遇到很多网页都多多少少会存在证书过期的情况,那么证书过期后,该网站会被认定为不安全网站,那么怎么进行正常的数据爬取呢?  主要从爬虫过程中常遇到的三个......
  • git clone with multiple account(https)
    ifusemultipleaccountwhenrungitclone(httpsprotocol),wecanusebelowwaytousediffaccount,Gotowebportal,andgetthegitclonelinkunderhttps......