术语
SSL(Secure Sockets Layer,安全套接层)
网络通信提供安全及数据完整性的一种安全协议
TSL(Transport Layer Security,传输层安全)
SSL标准化后的产物,是SSL的继承者
协议分层
SSL记录协议(SSL Record Protocol)
建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持
SSL握手协议(SSL Handshake Protocol)
建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等
服务器配置
# 证书
ssl_certificate 1.crt;
# 密钥
ssl_certificate_key 1.key;
认证过程
1. 客户端发起请求
2. 服务器配置证书文件,密钥.证书的获取有两种方式,一种是自生成证书,需要客户端手动验证才能继续访问,另一种是组织机构颁发的证书,不会弹出提示
3. 浏览器获取服务器证书,证书包括颁发机构,过期时间
4. 浏览器解析证书,验证证书是否有效,如果证书没有问题,则生成一个随机值,通过证书对随机值进行加密
5. 将随机值传输到服务器,目的是让服务器获取随机值,客户端和服务端的通信就可以通过这个随机值来进行加密解密
6. 服务器通过密钥解密获取随机值,并把响应的内容通过随机值进行对称加密
7. 传输加密后的内容
8. 客户端通过证书和随机值解密响应内容