互联网并发与安全系列教程(17) - 生产环境配置HTTPS证书

简介: 互联网并发与安全系列教程(17) - 生产环境配置HTTPS证书

引言

传统Http协议弊端是明文的,如果别人采用抓包分析可以获取到明文数据。

所以出现了HTTPS,那什么是HTTPS?下面来讲解:

1. HTTPS

HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer),简单来讲就是加了安全的HTTP,即HTTP+SSL;我们知道HTTP通讯时,如果客户端C请求服务器S,那么可以通过网络抓包的形式来获取信息,甚至可以模拟服务器S端,来骗取与C端的通讯信息;这对互联网应用在安全领域的推广非常不利;HTTPS解决了这个问题。

1.1 什么是SSL协议?

SSL指的是安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别保密

SSL是Netscape于1994年开发的,后来成为了世界上最著名的web安全机制,所有主要的浏览器都支持SSL协议。目前有三个版本:2、3、3.1,最常用的是第3版,是1995年发布的。

SSL协议的三个特性:

  • 保密:在握手协议中定义了会话密钥后,所有的消息都被加密。
  • 鉴别:可选的客户端认证,和强制的服务器端认证。
  • 完整性:传送的消息包括消息完整性检查(使用MAC)。
1.2 HTTPS与HTTP区别
  1. HTTPS的服务器需要到CA申请证书,以证明自己服务器的用途;
  2. HTTP信息是明文传输,HTTPS信息是密文传输;
  3. HTTP与HTTPS的端口不同,一个是80端口,一个是443端口;

可以说HTTP与HTTPS是完全不同的连接方式,HTTPS集合了加密传输,身份认证,更加的安全。

例如:在微信小程序里面都限制只能有https协议、搜索引擎排名都对https优先收录

1.3 HTTPS的几个加密算法
  1. 握手的时候使用的非对称加密算法 ,用来加密握手之后的请求和应答
  2. 传输信息的时候使用的对称加密,
  3. 保证数据的完整性用的是hash算法(数字签名)

2. HTTPS加密过程

1)客户端请求服务器,发送握手消息

2)服务器返回客户端自己的加密算法、数字证书和公钥;

3)客户端验证服务器端发送来的数字证书是否与本地受信任的证书相关信息一致;如果不一致则客户端浏览器提示证书不安全如下图所示:

如果验证通过,则浏览器会采用自身的随机数算法产生一个随机数,并用服务器发送来的公钥加密;发送给服务器;这里如果有人通过攻击获取了这个消息,那也没用,因为他没有解密此段消息所需要私钥;验证通过的网站在浏览器地址栏的右边会有一安全锁的标识;

3)服务器解密得到此随机数,并用此随机数作为密钥采用对称加密算法加密一段握手消息发送给浏览器;

4)浏览器收到消息后解密成功,则握手结束,后续的信息都通过此随机密钥加密传输。

以上是服务端认证的情况,如果服务端对访问的客户端也有认证需求,则客户端也需要将自己的证书发送给服务器,服务器认证不通过,通讯结束;原理同上;另外,一般在传输过程中为了防止消息窜改,还会采用消息摘要后再加密的方式,以此保证消息传递的正确性。

  1. 客户端发送自己支持的加密规则给服务器,代表告诉服务器要进行连接了。
  2. 服务器从中选出一套加密算法和hash算法以及自己的身份信息(地址等)以证书的形式发送给浏览器,证书中包含服务器信息,加密公钥,证书的颁发机构。
  3. 客户端收到网站的证书之后要做下面的事情
    ---- 3.1. 验证证书的合法性
    -----3.2. 如果验证通过证书,浏览器会生成一串随机数,并用证书中的公钥进行加密
    -----3.3. 用约定好的hash算法计算握手消息,然后用生成的密钥进行加密,然后一起发送给服务器。
  4. 服务器接收到客户端传送来的信息,要求下面的事情
    -----4.1. 用私钥解析出密码,,用密码解析握手消息,验证hash值是否和浏览器发来的一致
    -----4.2. 使用密钥加密消息,回送如果计算法hash值一致,握手成功。
2.1 证书

证书中包含什么信息?

  • 证书信息:过期时间和序列号
  • 所有者信息:姓名等
  • 所有者公钥

为什么要有HTTPS?我们来假设几个场景:

  • A(浏览器)和B(服务器)发送隐私的信息 ( http是明文传输怎么搞?)就算加密了,攻击者C获得了双方加密的密钥,也能获得双方的信息呀 ( 密钥丢失了怎么办呀?)
  • 就算攻击者C没有办法获得密钥,那么C向B(服务器)发送一些数据,那么B也不知道是不是A发送的呀 (A是不是A?)

如果要免费领取HTTPS证书,可以使用腾讯云和阿里云。

目录
相关文章
|
19天前
|
人工智能 Ubuntu 前端开发
Dify部署全栈指南:AI从Ubuntu配置到HTTPS自动化的10倍秘籍
本文档介绍如何部署Dify后端服务及前端界面,涵盖系统环境要求、依赖安装、代码拉取、环境变量配置、服务启动、数据库管理及常见问题解决方案,适用于开发与生产环境部署。
271 1
|
5月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
624 87
|
8月前
|
安全 算法 网络协议
解析:HTTPS通过SSL/TLS证书加密的原理与逻辑
HTTPS通过SSL/TLS证书加密,结合对称与非对称加密及数字证书验证实现安全通信。首先,服务器发送含公钥的数字证书,客户端验证其合法性后生成随机数并用公钥加密发送给服务器,双方据此生成相同的对称密钥。后续通信使用对称加密确保高效性和安全性。同时,数字证书验证服务器身份,防止中间人攻击;哈希算法和数字签名确保数据完整性,防止篡改。整个流程保障了身份认证、数据加密和完整性保护。
求助!怎么上传第三方HTTPS证书?为什么我上传lets encrypt的证书显示私钥格式异常?
用户上传证书时遇到问题,提示格式异常,已尝试转换RSA格式仍未解决。
|
3月前
|
人工智能 安全 算法
HTTPS 的「秘钥交换 + 证书校验」全流程
HTTPS 通过“证书如身份证、密钥交换如临时暗号”的握手流程,实现身份认证与数据加密双重保障,确保通信安全可靠。
302 0
|
5月前
|
运维 安全 网络安全
443端口:HTTPS通信的安全基石
作为互联网安全的基石,443端口通过加密与认证机制,保护了数十亿用户的隐私与数据完整性。无论是开发者、运维人员还是普通用户,理解其原理与作用都至关重要。在享受便利的同时,也需时刻关注安全实践,防范潜在风险。
910 12
|
6月前
|
安全 算法 数据建模
HTTPS证书类型和品牌一览
HTTPS证书(SSL证书)是保障网站数据传输安全与身份可信认证的重要工具,适用于电商、企业官网等各类平台。证书主要分为DV(域名验证)、OV(企业验证)、EV(扩展验证)三种安全级别,以及单域名、通配符、多域名等不同覆盖类型。品牌方面,既有高性价比的国产锐安信、CFCA,也有国际知名的Sectigo、Digicert。
|
9月前
|
监控 运维
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
本文介绍如何设置和查看域名或证书监控。步骤1:根据证书状态选择新增域名或证书监控,线上部署推荐域名监控,未部署选择证书监控。步骤2:查询监控记录详情。步骤3:在详情页查看每日定时检测结果或手动测试。
HTTPS 证书自动化运维:https证书管理系统- 自动化监控
|
9月前
|
Linux 持续交付 调度
HTTPS 证书自动化运维:https证书管理系统-自动化部署
本指南介绍如何部署Linux服务器节点。首先复制生成的Linux脚本命令,然后将其粘贴到目标服务器上运行。接着刷新页面查看节点记录,并点击“配置证书”选择证书以自动部署。最后,节点部署完成,后续将自动调度,无需人工干预。
HTTPS 证书自动化运维:https证书管理系统-自动化部署
|
9月前
|
运维
HTTPS 证书自动化运维:https证书管理系统之自动化签发
通过访问【https://www.lingyanspace.com】注册账户,进入证书服务菜单并新增证书。填写域名(单域名、多域名或泛域名),创建订单后添加云解析DNS记录进行质检。确认完成后可下载证书,并支持后续查看、更新和定时更新功能。证书过期前15天自动更新,需配置邮箱接收通知。
HTTPS 证书自动化运维:https证书管理系统之自动化签发