HTTP升级HTTPS

HTTP升级HTTPS
耳朵Strive为什么要使用HTTPS
一、HTTP or HTTPS
在 Web 发展的早期,HTTP(HyperText Transfer Protocol) 几乎支撑了整个互联网世界。它简单、高效、实现成本低,但随着互联网从“信息展示”走向“数据交互”,HTTP 的安全问题逐渐暴露,已经无法满足现代网络环境的需求。
1.HTTP明文传输的风险
HTTP 最大的问题在于:所有数据都是明文传输。这直接带来了以下安全风险:
- 窃听风险(信息被偷窥)
在 HTTP 通信过程中,请求内容、响应数据、Cookie、Token 等都会以明文形式在网络中传输。
只要攻击者位于同一网络环境(如公共 WiFi),就可以通过抓包工具轻松获取敏感信息。
例如:用户名、密码、登录态、接口返回数据等。
- 篡改风险(数据被中途修改)
HTTP 不具备数据完整性校验能力,攻击者可以在数据传输过程中对内容进行修改。
比如:
注入恶意脚本(比如我记得我小时候打开一些网站,然后就会有一些运营商的广告,这就是运营商通过http来向网页注入脚本)
替换下载资源
篡改接口返回数据
用户和服务器都无法察觉数据已被篡改。
- 伪装风险(身份被冒充)
HTTP 无法验证服务器的真实身份,攻击者可以伪装成合法网站进行“中间人攻击”。
用户访问的“看起来是官网”,实际上可能是一个钓鱼站点。
2.HTTPS 的诞生背景与核心价值
为了解决 HTTP 的安全缺陷,HTTPS(HTTP Secure)应运而生。
HTTPS 的核心价值只有一个:建立网络信任。
它通过引入加密、身份认证和完整性校验机制,让客户端与服务器之间的通信变得:
- 安全
- 可信
- 不可篡改
在今天,如果想要上线一个网站,HTTPS 已不再是“加分项”,而是Web 的基本门槛:
- 浏览器默认对 HTTP 标记“不安全”
- 搜索引擎对 HTTPS 站点有更好的排名
- 现代 Web API(如地理定位、摄像头)强制要求 HTTPS
二、HTTPS 到底是什么?
1.HTTPS 定义与本质
从本质上讲:
HTTPS = HTTP + TLS/SSL 加密层
它并不是一种全新的协议,而是在 HTTP 与 TCP 之间,增加了一层安全传输协议。
1 | HTTP |
HTTP 负责:
- 请求/响应格式
- 状态码
- Header / Body 规范
TLS/SSL 负责:
- 数据加密
- 身份认证
- 数据完整性校验
2.HTTPS & SSL & TLS
这是很多初学者容易混淆的地方,我最开始也不知道这个有啥区别。
- SSL(Secure Sockets Layer)
- 最早的加密协议
- 已被证明存在安全漏洞
- 目前已被淘汰
- TLS(Transport Layer Security)
- SSL 的升级版本
- 当前主流标准(TLS 1.2 / TLS 1.3)
- 更安全、性能更好
我们口头常说的“SSL 证书”,本质上指的是 TLS 证书。
3.HTTPS 的三大核心特征
1.加密传输
通过对称加密 + 非对称加密的组合,HTTPS 可以确保数据即使被截获,也无法被解密。
2.身份认证
服务器必须向客户端提供由 CA(证书颁发机构) 签发的数字证书,用于证明“我是谁”。
浏览器会自动校验证书合法性,防止访问到假网站。
3.数据完整性校验
HTTPS 使用消息摘要算法(如 HMAC)对数据进行校验,确保数据在传输过程中未被修改。
三、阿里云服务器升级 HTTPS
我以我的博客网站为例,升级 HTTPS 的流程通常如下:
1.申请 SSL 证书
阿里云提供免费的 DV 证书,适合个人博客和中小项目:
进入阿里云控制台
直接在顶部栏搜索 SSL 证书,然后进入 SSL 证书管理
点击创建证书,申请免费证书
填写资料,绑定域名并完成 DNS 验证
2.下载并部署证书
点击下载按钮,然后选择对应的Web服务器类型,我这里使用的Nginx,如果使用其他服务器,可以点击帮助查看对应的指南。
下载证书后,一般会得到:
xxx.pem(证书文件)xxx.key(私钥文件)
将证书上传到服务器,例如:
1 | /etc/nginx/ssl/ |
3.配置 Nginx 启用 HTTPS
1 | server { |
重启 Nginx:
1 | nginx -s reload |
4.HTTP 强制跳转 HTTPS
1 | server { |
至此,我们的网站已经完成了从 HTTP 到 HTTPS 的升级。
四、总结
其实升级从 HTTP 到 HTTPS 并不是特别复杂,但是升级之后网站的安全度会大幅提升:
- HTTP 解决的是“能不能通信”
- HTTPS 解决的是“通信是否可信”
在当下的互联网环境中:
HTTPS 不是选择题,而是必选项。
无论你是个人博客、前端项目还是后端接口服务,只要涉及网络通信,在互联网上发布,HTTPS 都应该成为默认配置。















