PKI: public key infrastructure ,CA: certificate authority,即发证机构,含多层结构,CA的证书可用于验证CA颁发的证书的有效性
自签名证书:非受信CA颁发的证书,比如咱们企业颁发的证书
证书:公钥, 持有者信息,有效期,签发者(上级CA)信息,原始数据,hash函数,签名(原始-hash-上级CA私钥加密)等
证书验证需上级CA证书的公钥解密后比如hash是否相等,证书内公钥用于发送信息给网站
ssl:协商出此次会话的对称密钥,用此密钥传输应用层报文,无论应用层协议是什么,如https就是ssl传输http报文
握手协议-协商,记录协议-加密传输解密
ssl单向认证和双向认证:单向-服务端有证书,双向-客户端服务端都有证书,如https多为单向,根据是否要验证对方的证书最多能涉及到四个证书
大致流程如下:
1 会话密钥的生成和传递:客户端获取网站证书(公钥)+随机值,生成会话密钥,传给网站(传递过程公加密-私解密)
2 双向认证:网-客:会话密钥, 客-网:自己的私钥加密内容+自己公钥
备注:
tls是ssl的后续版本,TLS 1.0 可以理解为SSL 3.1
nginx:ssl_verify_client ssl_client_certificate 配置是否需要验证客户端证书和客户端证书的跟证书
证书是包含一套公私钥,jks/pfx格式,但给别人只能给公钥,格式多为crt/perm
跟证书/root证书链等各种讲法都指的是证书的上级CA的证书