https 与 http 区别在于 https 比 http多了一个SSL加密层。就是 client端 发送给 server端 的请求报告是经过加密,混淆的。以此来保护我们的数据在网络传输中的安全。
ok, 我们来看一下 client端 发送给 server端 是如何交互的,为什么能保证数据在网络中的安全。
流程解释:
server { listen 443;# https 监听的是 443端口 server_name www.z.com; ssl on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_certificate /etc/nginx/ssl_key/z.crt.crt; # 公钥 ssl_certificate_key /etc/nginx/ssl_key/z.crt.key; # 私钥 }
nginx 会根据上面配置的ssl_certificate 的路径 /etc/nginx/ssl_key/z.crt.crt 找到www.z.com 域名证书的公钥,将公钥返回给客户端
通过上面的分析可以知道,https对在网络传输中的数据进行加密,防止别人抓包可以明文的看到你的内容。有些朋友说https 不安全,更多的是说那些不怀好意的人在client客户端上动了手脚,并不是说抓包,然后解密报文。
我们知道后面正常的交互都是通过randomKey来进行加解密的。而randomKey 在网络中的传输只有一次,并且这一次还是使用了z.crt.crt中的公钥进行加密,想要解密只能使用z.crt.key中的私钥,而私钥又是在server端服务器上。
要是能直接进入别人服务器 或 控制别人客户端,那也不用费那么大劲儿抓包破解了。
以上内容仅代表个人观点,如有错误请指出,立马改正
原文:https://www.cnblogs.com/zhangXingSheng/p/13206796.html