(文章目录)
前言
上次更新了http协议,这次将https也补充一下,https协议是http的安全版本,保证了数据安全,一起来看看吧
HTTPS——http secure
是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了数据传输的真实性
并通过数字证书颁发认证中心CA(Certification Authority),来保证网址的安全性,规避钓鱼网站(假冒真正网站骗取信息或钱财)。
CA通过与浏览器合作,只要是浏览器支持的CA证书,就信任其安全性,不然会提示存在隐患
证书实际上是对域名进行担保,是捆绑在域名上的
数字证书个人申请指南
阿里云:先购买域名,根据域名去申请免费的证书(购买比较贵),如果之前申请过免费证书,再次申请时按照流程在域名管理中加入一条信息用于认证即可
数字签名认证流程
数字签名颁发和使用流程
https的四次握手
前两次为证书验证,第三次为非对称加秘密,第四次之后为对称加密
更易懂版本:
第一步客户端发送R1和自身支持的加密算法
第二步服务端发送R2、之后双方使用的加密算法、证书(客户端拿着公钥和其他信息去CA端验证)
第三步客户端发送R3,利用第二步的加密算法生成共享密钥
第四步服务端同样生成共享密钥,并用共享密钥加密数据开始通信
对称加密和非对称加密
对称加密:通信双方使用同一个密钥进行数据的加密和解密。
非对称加密:私钥自己保管,公钥对外公开
SSL加密
SSL,即安全套接层网络安全协议,是在(TCP/IP)上实现的一种安全协议,位于应用层与传输层之间,采用公开密钥技术 --Secure Socket Layer
nginx通过SSL软件实现公钥和私钥的认证,编译时需要指定安装--with-http_ssl_moudle模块
nignx开启https服务
# HTTPS server
server {
listen 443 ssl;
# 域名
server_name www.zhihe.love;
# 公钥和私钥文件
ssl_certificate cert.pem;
ssl_certificate_key cert.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
nginx开启http自动跳转https
server {
listen 8080;
server_name localhost;
return 301 https://www.zhihe.love;
}
总结
以上就是今天要讲的内容,本文主要介绍了数字签名、https的四次握手、一些加密方式以及nginx中如何使用https,欢迎大家观看留言