← LeisureLinux 文章索引
LeisureLinux · 微信公众号文章

告别“不安全”警告!3分钟读懂 ACME 协议,让你的网站免费自动续期

安全/漏洞 阅读原文(微信)↗

[引言:你的网站还在"裸奔"吗?]{textstyle=""}

[很多小伙伴在搭建个人网站或内网服务时,总会遇到一个尴尬的红叉:浏览器跳出警告]{textstyle=""}["您的连接不是私密连接!"]{textstyle=""}[。]{textstyle=""}

[为了消掉这个叉,有人选择了安全性堪忧的"自签名证书",有人则每年花费几百上千元去购买商业证书。其实,作为互联网时代的"极客",你完全可以拥有和顶级大厂一样、受全球信任且]{textstyle=""}[永久免费]{textstyle=""}[的 HTTPS 证书。]{textstyle=""}

[今天,我们就来揭秘这场由互联网巨头们发起的"安全革命"——]{textstyle=""}[Let\'s Encrypt]{textstyle=""}[。]{textstyle=""}

一、 什么是 ACME?不只是个缩写

[提到 Let\'s Encrypt,就不得不提它的核心协议]{textstyle=""}[ACME]{textstyle=""}[。这个名字听起来很酷,其实它代表了四个核心关键词,涵盖了证书管理的整个生命周期:]{textstyle=""}

[A]{textstyle=""}[utomated(自动化):全程无需人工干预,告别繁琐申请。]{textstyle=""}

[C]{textstyle=""}[ertificate(证书):我们的最终目标——加密传输。]{textstyle=""}

[M]{textstyle=""}[anagement(管理):从申请、验证到续期、撤销,全流程覆盖。]{textstyle=""}

[E]{textstyle=""}[nvironment(环境):一套标准化的互联网基础设施。]{textstyle=""}

二、 降维打击:从"人工申请"到"工业标准"

[在 2014 年之前,申请一个 SSL 证书简直是运维人员的噩梦:你需要手动生成 CSR 文件、提交申请、等待人工审核、通过邮件确认身份......]{textstyle=""}

[为了打破这种垄断,]{textstyle=""}[互联网安全研究小组 (ISRG)]{textstyle=""}[(由 Mozilla、思科、EFF 等巨头发起)启动了 Let\'s Encrypt 项目。他们不仅想提供免费证书,更想制定一套]{textstyle=""}[自动化标准]{textstyle=""}[。]{textstyle=""}

[硬核知识点:]{textstyle=""}

[2019 年,ACME 协议正式被 IETF 认可并发布为 RFC 8555 国际标准。这意味着它成为了全球通用的底层协议,任何厂商都可以基于此提供自动化服务。]{textstyle=""}

三、 协议的具体要求:申请证书需要准备什么?

[要想通过 ACME 协议成功拿到证书,必须满足以下几个核心技术要求:]{textstyle=""}

[域名所有权验证 (Domain Validation):]{textstyle=""}

[这是核心要求。你必须证明你是域名的主人。ACME 规定了三种主流"挑战":]{textstyle=""}

[HTTPS 请求支持:]{textstyle=""}

[ACME 协议要求所有的通信必须通过 HTTPS 加密传输。]{textstyle=""}

[密钥对认证:]{textstyle=""}

[你需要在本地生成一对 RSA 或 ECDSA 密钥。公钥发给 CA 注册账号,后续所有申请操作都必须经过私钥签名,确保安全。]{textstyle=""}

四、 实战:阿里云 DNS-01 自动化配置

[如果你希望为]{textstyle=""}[example.com]{textstyle=""}[申请证书,并利用阿里云的 API 实现]{textstyle=""}[全自动申请与续期]{textstyle=""}[(支持通配符),请参考以下步骤:]{textstyle=""}

[1. 安装 Certbot 及其阿里云插件]{textstyle=""}

# 安装 Certbot 主程序sudo apt update && sudo apt install certbot# 推荐使用 pip 安装阿里云 DNS 插件pip install certbot-dns-aliyun

[2. 准备阿里云 API 凭证]{textstyle=""}

[去阿里云后台创建一个]{textstyle=""}[AccessKey]{textstyle=""}[,并创建配置文件]{textstyle=""}[aliyun.ini]{textstyle=""}[:]{textstyle=""}

dns_aliyun_access_key  = 你的AccessKeyIDdns_aliyun_access_key_secret = 你的AccessKeySecret
```bash

[注意:保护好此文件,建议设置权限 \$ ]{textstyle=""}[chmod 600 aliyun.ini]{textstyle=""}[。]{textstyle=""}

[3. 一键申请(含 Nginx 部署)]{textstyle=""}

[运行以下命令,Certbot 会自动通过 API 完成 DNS 验证,并直接帮你配置好 Nginx:]{textstyle=""}

sudo certbot certonly \ -a dns-aliyun \ --dns-aliyun-credentials /path/to/aliyun.ini \ -i nginx \ -d "example.com" \ -d "*.example.com"

[-a dns-aliyun]{textstyle=""}[:指定使用阿里云 DNS 方式验证。]{textstyle=""}

[-i nginx]{textstyle=""}[:告诉 Certbot]{textstyle=""}[自动修改 Nginx 配置文件]{textstyle=""}[,帮你写好]{textstyle=""}[ssl_certificate]{textstyle=""}[等参数。]{textstyle=""}

[-d]{textstyle=""}[:指定域名,支持通配符。]{textstyle=""}

[4. 自动续期]{textstyle=""}

[ACME 的精髓在于自动化。只需在]{textstyle=""}[crontab]{textstyle=""}[中加一行,从此彻底忘掉证书过期的烦恼:]{textstyle=""}

```bash
0 0 1 * * certbot renew --quiet --post-hook "systemctl reload nginx"

五、 结语

[从 RFC 8555 协议的诞生,到 Let\'s Encrypt 的全面普及,互联网正在加速进入全加密时代。这不仅是为了那一抹"绿锁"带来的仪式感,更是为了每一个用户的隐私安全。]{textstyle=""}

[如果你还在为证书续期烦恼,是时候拥抱 ACME 了!]{textstyle=""}

你的网站配置 HTTPS 了吗?在自动续期的路上踩过哪些坑?欢迎在评论区留言分享,我会为你在线排雷!别忘了点个"在看"支持一下哦\~

本文整理自微信公众号 LeisureLinux 的原创内容(Linux / AI / 安全 硬核技术)。

· 阅读原文(微信公众号)

· 关注公众号 LeisureLinux,第一时间获取技术深度内容。

LeisureLinux 公众号二维码(微信扫一扫关注)