HTTPS 数字签名 证书

证书包含哪些内容

  1. 服务器公钥 (可以直接从证书获取,不需要使用CA公钥解密)
  2. 证书有效时间、计算摘要所用的散列函数、...等等。(可以直接从证书获取,不需要使用CA公钥解密)
  3. CA机构使用散列函数,对公钥、有效时间等计算信息摘要,CA机构再使用CA的私钥对这个摘要进行加密(加密后的结果就是数字签名)。

证书=公钥(服务方生成密码对中的公钥)+申请者与颁发者信息+签名(用CA机构生成的密码对的私钥进行签名)

客户端验证证书

  1. 客户端使用同样的散列函数得到信息摘要
  2. 客户端使用内置的CA公钥对数字签名进行解密,得到CA机构计算出的摘要
  3. 比较两个摘要,如果一致,则证书合法。

验证通过后

  1. 客户端生成一个随机数,用服务器公钥加密,发给服务器。
  2. 服务器使用私钥解密得到这个随机数,此后服务器和客户端都使用这个随机数,使用对称加密算法加密数据。

HTTPS通信过程