https认证流程
- 服务器生成一对密钥,私钥自己留着,公钥交给数字证书认证机构(CA)。
- CA进行审核,并用CA自己的私钥对服务器提供的公钥进行签名生成数字证书。
- 在https建立连接时,客户端从服务器获取数字证书,用CA的公钥(根证书)对数字证书进行验证,比对一致,说明该数字证书确实是CA颁发的(得此结论有一个前提就是:客户端的CA公钥确实是CA的公钥,即该CA的公钥与CA对服务器提供的公钥进行签名的私钥确实是一对。),而CA又作为权威机构保证该公钥的确是服务器端提供的,从而可以确认该证书中的公钥确实是合法服务器端提供的。
注:为保证第3步中提到的前提条件,CA的公钥必须要安全地转交给客户端(CA根证书必须先安装在客户端),因此,CA的公钥一般来说由浏览器开发商内置在浏览器的内部。于是,该前提条件在各种信任机制上,基本保证成立。
根证书
根证书未签名或自签名的证书
ca.key ca的私钥
ca.crt 根证书
server.key server的私钥
server.csr 提交申请crt的信息
server.crt ca颁发给server的证书
电子证书内容
ca的数字签名
ca名称 ==== 目的是 ==== 获取公钥
server公钥
server其他信息
验证过程
- 客户端使用ca公钥解密签名
- 客户端根据证书中提到的算法重新计算hash
- 如果1和2中的值相等那么验证通过