Open zhaobinglong opened 3 years ago
本质上就是生成了一个只有client和server知道的密钥(一个随机字符串)
- 客户端发起请求,请求一个https的url,根据RFC2818的规定,Client知道需要连接Server的443(默认)端口,其中携带
// https的加密过程涉及到两种加密方式,对称加密和非对称加密
server {
···
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
...
}
为了保护数据的安全,HTTPS 主要用了下面的算法
1.对称加密:有流式、分组两种,加密和解密都是使用的同一个密钥。例如:DES、AES-GCM、ChaCha20-Poly1305 等。这一步浏览器端生成密钥。 2.非对称加密:加密使用的密钥和解密使用的密钥是不相同的,分别称为:公钥、私钥,公钥和算法都是公开的,私钥是保密的。非对称加密算法性能较低,但是安全性超强,由于其加密特性,非对称加密算法能加密的数据长度也是有限的。例如:RSA、DSA、ECDSA、 DH、ECDHE 等。这一步是服务器下发公钥。
服务器下发数字证书和公钥给浏览器。首先,会读取证书中的明文内容。CA 进行数字证书的签名时会保存一个 Hash 函数,来这个函数来计算明文内容得到信息A,然后用公钥解密明文内容得到信息B,两份信息做比对,一致则表示认证合法。
被吊销后的证书是无效的。验证吊销有CRL(证书吊销列表)和OCSP(在线证书检查)两种方法。
https的本质
还是http协议,http和tcp之间多了一层ssl
SSL(TLS)
SSL就是TLS的加强版,互联网最初的版本为1.0版本。从其名字就可以看出,其核心使命就是保证传输层的安全。各个通信部门成员的占位与SSL占位一致: http协议通过TSL加密,就是https,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
CA (数字证书)
使用对称和非对称混合的方式,实现了数据的加密传输。但是这种仍然存在一个问题,服务器可能是被黑客冒充的。这样,浏览器访问的就是黑客的服务器,黑客可以在自己的服务器上实现公钥和私钥,而对浏览器来说,它并不完全知道现在访问的是这个是黑客的站点。 服务器需要证明自己的身份,需要使用权威机构颁发的证书,这个权威机构就是 CA(Certificate Authority), 颁发的证书就称为数字证书 (Digital Certificate)。 对于浏览器来说,数字证书有两个作用:
通过数字证书向浏览器证明服务器的身份。数字证书里面包含了服务器公钥
参考
http://www.ruanyifeng.com/blog/2014/02/ssl_tls.html https://mp.weixin.qq.com/s/t4zVupywiX1k0CZnRf-7zA