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让这件事完全自动化了。一行命令申请,一天到晚自动续签,省心又安全。

相关推荐
上海云盾-小余3 小时前
源站隐藏实战:规避裸 IP 被直接攻击的完整方案
数据库·网络协议·tcp/ip
johnny2333 小时前
WebDAV概述、原理、拓展:SMB、ZeroByte
网络协议
代码中介商3 小时前
HTTP进化史:从1.0到3.0的核心变革
网络·网络协议·http
sweet丶7 小时前
MQTT在iOS中的应用实践
网络协议
ALINX技术博客7 小时前
【黑金云课堂】FPGA技术教程Vitis开发:TCP以太网通信
网络协议·tcp/ip·fpga开发
matrixmind88 小时前
HTTPX:Python 下一代 HTTP 客户端
python·其他·http·httpx
W.W.H.9 小时前
Ping 与 TCP:网络连通性探测的两种维度
网络·网络协议·tcp/ip
IpdataCloud9 小时前
担心IP查询泄露隐私?用离线查询工具安全查IP,数据不出内网
网络协议·tcp/ip·安全
码农飞哥10 小时前
RocketMQ消费接口设计实战:为什么HTTP回调接口必须吞掉所有异常,始终返回成功?
网络协议·http·中间件·消息队列·rocketmq
行走__Wz10 小时前
【网工入门-04】局域网、城域网、广域网
网络协议