HTTPS免费证书配置指南

HTTPS 已经成了网站的"标配",但商业SSL证书一年要大几百块。其实有一个完全免费、被全球数千万网站使用的方案------Let's Encrypt 。今天用一篇文章讲清楚:HTTPS是什么、免费证书怎么申请、自动续签如何配置。

1、HTTPS到底是什么?解决了什么问题?

数据加密------防止"被偷看"

HTTP协议传输的数据是明文的,你在网站上输入的密码、银行卡号、聊天记录,在路由器、网吧电脑、咖啡厅WiFi这些环节里,任何人都能截获并直接读取。

HTTPS在TCP和应用层之间加了一层TLS(Transport Layer Security),所有数据都会先加密再传输。哪怕被第三方抓包,看到的也是一堆乱码。

实际场景:

  • 你在HTTP网站上登录,收到的POST请求明文包含用户名和密码
  • 在HTTPS网站上,即使被截获,攻击者拿到的是加密后的密文,无法直接利用

身份认证------防止"被假冒"

你访问的https://www.icbc.com.cn真的是工商银行吗?HTTPS证书里有一项关键信息:证书上绑定的域名,由可信CA机构验证过。浏览器会检查:证书是谁签发的、证书是不是伪造的、证书是否过期。

如果有人用DNS劫持把你引到假冒网站,浏览器会因为"证书不匹配"而报警。

数据完整性------防止"被篡改"

HTTP传输过程中,代理服务器可以随意修改网页内容(注入广告、替换下载链接是常见操作)。TLS加密会为每个数据包生成"消息验证码"(HMAC),接收方校验发现数据被动过手脚会直接丢弃。

HTTP时代三大风险

|--------|-----------------|
| 窃听 | 密码、聊天内容、个人信息被截获 |
| 篡改 | 网页被注入广告、下载链接被替换 |
| 欺诈 | DNS劫持,用户访问到钓鱼网站 |

2、Let's Encrypt免费证书原理

为什么Let's Encrypt能免费?

Let's Encrypt是一个由Mozilla、谷歌、思科、EFF等联合成立的非营利CA机构,目标是推动全网HTTPS化。基础设施成本由赞助商承担,对用户完全免费。

核心支撑技术:ACME协议(Automated Certificate Management Environment)

这是Let's Encrypt实现全自动化的关键。它本质上是一个自动化的"申请-验证-颁发"流程,不需要人工干预。

证书申请三步流程

第一步:发起申请

复制代码
你的服务器 → "我要为 iaiaiai.cc 申请证书"
Let's Encrypt ← 收到申请请求

第二步:域名验证(二选一)

  • HTTP验证 :在域名下的.well-known/acme-challenge/目录里放一个随机Token文件,Let's Encrypt的服务器尝试访问这个URL,能访问到就通过
  • DNS验证:在DNS TXT记录里添加一条随机字符串,Let's Encrypt去查DNS记录来验证

第三步:颁发证书

验证通过后,Let's Encrypt颁发证书,包含:你的公钥、域名、有效期、CA数字签名。证书有效期90天

为什么证书有效期只有90天?

这是安全设计。有效期越短,密钥泄露后被滥用的窗口越小。90天强制你频繁更新,也间接推动了安全实践。

3、实战:3分钟搞定免费证书 + 自动续签

环境:Ubuntu 20.04 + Nginx

第一步:安装certbot

复制代码
sudo apt update
sudo apt install certbot python3-certbot-nginx

第二步:申请证书(一行命令)

复制代码
sudo certbot --nginx -d iaiaiai.cc -d www.iaiaiai.cc

第三步:验证HTTPS生效

复制代码
curl -sI https://iaiaiai.cc/
# 返回 HTTP/2 200 说明SSL已启用

自动续签:完全不用管

certbot安装时会自动创建systemd定时任务,每12小时运行一次。

续签逻辑:

  • 距离过期还有30天以上 → 什么都不做,跳过
  • 距离过期30天以内 → 自动重新申请、更新证书文件、重载nginx

证书文件位置:

复制代码
/etc/letsencrypt/live/iaiaiai.cc/
  ├── fullchain.pem   # 证书链(包含公钥+CA签名)
  ├── privkey.pem     # 私钥(严格保密)
  ├── cert.pem        # 服务器证书
  └── chain.pem       # CA中间证书

手动测试续签:

复制代码
sudo certbot renew --dry-run

4、常见问题

Q:免费证书和付费证书有什么区别?

本质上没有区别,都是被浏览器信任的SSL/TLS证书。付费证书的额外价值在于:更贵的验证级别(如EV证书显示企业名)、更长的有效期、技术支持。

Q:一个证书可以绑定多个域名吗?

可以,用-d参数追加即可:

复制代码
certbot --nginx -d domain1.com -d domain2.com -d subdomain.domain3.com

Q:证书过期了网站会怎样?

浏览器会显示"连接不安全"警告,阻止用户继续访问。配合自动续签,实际上永远不会过期。


HTTPS已经是现代网站的标配,没有它浏览器会报警、SEO会降权。Let's Encrypt让这件事彻底免费了,certbot让这件事完全自动化了。一行命令申请,一天到晚自动续签,省心又安全。

相关推荐
IpdataCloud2 小时前
高并发场景下IP数据接口怎么选?从QPS到离线库的完整选型指南
网络·网络协议·tcp/ip
ALINX技术博客3 小时前
【黑金云课堂】FPGA技术教程FPGA基础:呼吸灯实验+RAM/ROM IP设计与验证
网络协议·fpga开发·fpga
皮卡蛋炒饭.3 小时前
传输层协议UDP
linux·网络协议·udp
treesforest3 小时前
IP精准定位服务:从城市轮廓到街道坐标,技术如何重塑空间感知
网络·数据库·网络协议·tcp/ip·ip
fiveym6 小时前
二层核心网络技术通俗解析(VLAN/Access/Trunk/LACP/ARP)
服务器·网络·网络协议
专注VB编程开发20年7 小时前
Vscode调试是真不方便
网络·网络协议
mobai78 小时前
frr使用Valgrind定位内存泄漏
网络协议
袁小皮皮不皮10 小时前
HCIP-BFD 学习笔记
运维·服务器·网络·笔记·网络协议·学习·智能路由器
xlq2232210 小时前
54.序列化和反序列化
服务器·网络·网络协议·tcp/ip
JiaWen技术圈10 小时前
后端无状态鉴权 JWT 或 OAuth2 及其区别与实现
服务器·网络·网络协议