HTTPS 数字签名 证书
证书包含哪些内容
- 服务器公钥 (可以直接从证书获取,不需要使用CA公钥解密)
- 证书有效时间、计算摘要所用的散列函数、...等等。(可以直接从证书获取,不需要使用CA公钥解密)
- CA机构使用散列函数,对公钥、有效时间等计算信息摘要,CA机构再使用CA的私钥对这个摘要进行加密(加密后的结果就是数字签名)。
证书=公钥(服务方生成密码对中的公钥)+申请者与颁发者信息+签名(用CA机构生成的密码对的私钥进行签名)
客户端验证证书
- 客户端使用同样的散列函数得到信息摘要
- 客户端使用内置的CA公钥对数字签名进行解密,得到CA机构计算出的摘要
- 比较两个摘要,如果一致,则证书合法。
验证通过后
- 客户端生成一个随机数,用服务器公钥加密,发给服务器。
- 服务器使用私钥解密得到这个随机数,此后服务器和客户端都使用这个随机数,使用对称加密算法加密数据。