SSL证书生成及信任过程:
1、SSL Server 自己生成一个 私钥 / 公钥对。server.key/server.pub
2、然后确认申请信息(域名、申请者信息、公钥),最后封装为一个.csr文件(文件内不包含私钥,私钥只在服务端存在)。
3、服务端将申请信息发送到CA,CA通过线上、线下多种手段验证申请者提供信息的真实性,如组织是否存在、企业是否合法、该组织是否拥有本域名的所有权等。
4、如果信息审核通过,将用 ca.key(CA私钥) 和请求文件加密生成 server.crt(服务器证书) ,签发给申请者(服务端)。
证书包含以下信息:申请者公钥、申请者组织信息、签发机构CA信息、有效时间、证书序列号等信息的明文,同时还会包含一个签名和签名产生的算法:首先使用散列函数计算公开的明文信息的信息摘要,然后采用CA的私钥对信息摘要进行加密,密文即为签名。所以服务器证书就是个用CA私钥签名的数字签名
5、客户端需要信任该网站的话,需要保存该服务的CA证书ca.crt(注意CA证书不是服务器证书,ca.crt与步骤四的ca.key是一对,ca.crt保存了CA的公钥)
6、客户端向服务端发送请求时,服务端回返回服务器证书给客户端,客户端使用ca证书的公钥对数字签名进行解密,得到服务的信息摘要,再与从服务端返回的证书明文信息使用相同算法计算出来的信息摘要对比,如果一致则认证证书合法
7、客户端还会验证证书相关的其他信息,如域名信息、有效时间等。
认证成功后具体的交易流程:
单向认证: