computer-network
  • 简介
  • 应用层
    • HTTP
      • Cookie
      • Session
    • HTTPS
      • 简介
      • 原理
      • RSA加密与解密
      • 证书签名与验证
      • TLS双向认证
  • 传输层
    • TCP
      • CloseWait
      • tcp_tw_recycle与tcp_timestamps
  • 网络层
    • IPv6
  • 链路层
    • VLAN
Powered by GitBook
On this page

Was this helpful?

  1. 应用层
  2. HTTPS

简介

PreviousHTTPSNext原理

Last updated 5 years ago

Was this helpful?

平时我们访问https网站时,好像并不需要操作什么证书,直接打开浏览器就可以访问。本文将介绍为什么我们平时可以直接访问HTTPS网站。

首先有一个概念叫 CA(Certificate Authority),维基百科的翻译叫证书认证机。它是受大众信任的一个第三方机构,负责发放证与管理证书。它有自已一对自已密钥:私钥(ca.key)与公钥(ca.crt)。公钥是公布出去的,所有人和组织都可以拿到,私钥是CA自已保留的,不外泄。

接下来,我们看一下当一个公司需要搭建一个自已的网站,并提供https服务的流程,流程图如下:

首先,公司A生成自已的私钥a.key和证书签名请求文件a.csr;然后公司A提交自已的csr给CA,CA利用自已的私钥与公钥给公司A的csr文件进行数字签名,生成签名后的证书文件a.crt,然后发给公司A。最后,公司A利用a.key与a.crt就可以提供https服务。外界只需要使用CA公布出来的公钥ca.crt就能访问https://a.com服务。

同样,如果公司B的签名证书也是由CA签名的,那么在浏览器同样可以使用ca.crt访问B公司的https://b.com服务。这就是为什么,我们在访问google,百度这样的网站的https页面时,并没有设置证书的过程;这是因为安装操作系统时,系统里已经自带了CA的公钥,在操作系统里,它叫根证书。

为什么浏览器有了CA的根证书后,就能够访问用CA签署的证书起的HTTPS服务呢?请看下一节《HTTPS原理》