http和https的基本概念
http是目前互联网应用最为广泛的一种网络协议,用于从3W服务器传输超文本到本地浏览器的传输协议
https是以安全为通道的http通道,安全基础是ssl / tls,因此加密的详细内容需要ssl(如下图所示)
http与https对比
https规定了新的协议名和端口号443,其他的应答模式,报文结构,请求方法,url,头字段,链接管理都沿用http
http与https的通信过程
HTTP请求过程中,客户端与服务器之间没有任何身份确认的过程,数据全部明文传输,“裸奔”在互联网上,所以很容易遭到黑客的攻击
HTTPS 协议增加了很多握手、加密解密等流程,虽然过程很复杂,但其可以保证数据传输的安全
http和https的区别
1,https协议需要到ca申请证书,免费证书较少,需要钱
2,http是超文本传输协议,信息是明文传输,https是相对安全的ssl加密传输协议
3,http和https对的链接方式不用,使用的端口也不一样,http是80,https是443
4,http的链接是无状态的,https是由ssl+http构建的可进行加密传输,身份认证的网络协议,比http安全,响应他的速度会比http慢2到100倍,更消耗服务器和客户端的硬件资源,负载增强
nginx实现http修改为https步骤
1,获取ssl证书
2,安装ssl证书(ssl证书可以去阿里云或腾讯云申请免费的证书,一般提供域名验证即可成果申请免费证书。申请成果后下载对应的证书文件)
3, 配置ssl模块(nginx支持https需要安装http_ssl_module模块,默认不会安装此模块,如需支持https需要单独安装)
4,配置nginx支持https
#之前讲到http下可以配置多个server
http {
#可在http下配置多个server同时配置http与https
server {
listen 80;
server_name ...;
location / {
.....
}
}
server {
listen 443;
server_name ...;
ssl_certificate #证书名字
ssl_certificate_key #证书名字.key
location / {
.....
}
}
}
5,重启nginx