CA 通过线上、线下等多种手段验证申请者提供信息的真实性,如组织是否存在、企业是否合法,是否拥有域名的所有权等;
如信息审核通过,CA 会向申请者签发认证文件-证书。
证书包含以下信息:申请者公钥、申请者的组织信息和个人信息、签发机构 CA 的信息、有效时间、证书序列号等信息的明文,同时包含一个签名;
签名的产生算法:首先,使用散列函数计算公开的明文信息的信息摘要,然后,采用 CA 的私钥对信息摘要进行加密,密文即签名;
此时客户端向服务器发送的第一步请求服务端不再是直接返回公钥,而是返回证书:
客户端 C 向服务器 S 发出请求时,S 返回证书文件;
客户端 C 读取证书中的相关的明文信息,采用相同的散列函数计算得到信息摘要,然后,利用对应 CA 的公钥(浏览器已经内置了CA的公钥,即信任。如果CA不被信任,则找不到对应 CA 的证书,证书也会被判定非法)解密签名数据,对比证书的信息摘要,如果一致,则可以确认证书的合法性,即公钥合法;