抽象示意:细线构成的挂锁与证书链浮在深色背景上,其中一个节点亮着青绿色光点

EFF 加密整个互联网计划的一部分

让每个站点都跑在
HTTPS 上

Certbot 从 Let's Encrypt 获取证书、部署到你的 Web 服务器、并自动续期。使用 Certbot 和 Let's Encrypt 完全免费。

从 http 到 https,只差一个字母

网址从 http 变成 https,连接从明文变成加密。

证书是一次三方接力,不是一串文件

Web 上的安全通信依赖 HTTPS,而 HTTPS 需要数字证书,好让浏览器验证 Web 服务器的身份:这真的是 google.com 吗?

ACME · RFC 8555

  1. 浏览器要一份身份证明

    你打开一个 https 网站,浏览器会先确认这个站点确实是它自称的域名。确认方式就是数字证书:证书由受信任的第三方签发,加密之后随每个响应发到浏览器手里。

  2. Web 服务器向 CA 索取证书

    证书由证书颁发机构(CA)签发。Let's Encrypt 是一个开放免费的 CA,由 EFF、Mozilla 及其他机构发起。Certbot 就是负责这件事的客户端,它用 ACME 协议和 CA 通信。

  3. 先证明你控制这个域名

    签发之前,CA 要确认你真的控制这个域名。Certbot 支持多种验证方式:往 webroot 目录写一个文件,或者临时跑一个简易 Web 服务器(standalone)。验证通过后,私钥在你的系统本地生成,证书随即部署到 Web 服务器。

选你的服务器,复制一条命令

入门的最佳方式是使用官方交互式指南,它会根据你的配置生成对应的操作说明。下面的速查器给出一个可直接运行的起点命令。

Web 服务器

webroot 会向站点目录写入文件来证明域名控制权;standalone 会临时运行一个简易 Web 服务器。两者都不改动服务器配置,适合共享主机。

用空格分隔多个域名,例如 example.com www.example.com。本速查器不处理通配符证书。

certbot

还没有生成命令。选一个 Web 服务器,填入域名,然后点“生成命令”。

命令由本地模板生成,只覆盖常见场景。权限、端口占用、已有虚拟主机等细节请以官方文档为准。

  • 在服务器上运行,不是在自己电脑上

    Certbot 应当直接在你的 Web 服务器上通过命令行运行,而不是在你的个人电脑上。

  • 大多数情况需要管理员权限

    在大多数情况下,运行 Certbot 需要你的 Web 服务器具备超级用户或管理员权限,命令里的 sudo 就是为此准备的。

  • 不会直接改坏配置

    配置变更会被记录,并且可以回滚。首次运行前 Certbot 会先和交互式指南确认要改什么。

抽象示意:一条贯穿服务器群的时间线上,等距分布着多个证书续期检查点

证书有效期很短,所以续期必须是自动的。

Certbot 的定时任务会在过期之前完成续期,并把新证书部署回 Web 服务器。你不需要记住日子,也不需要盯着日历。

当前特性

把证书这件麻烦事,交给自动化

支持多种 Web 服务器

Apache 2.4+

自动改写虚拟主机并重载服务。

nginx 0.8.48+

改写 server 块并重载 nginx。

webroot

往站点目录写文件来验证控制权,不动服务器配置。

standalone

临时跑一个简易 Web 服务器来完成验证。

其他服务器软件可以通过第三方插件接入。

LOCAL KEY

私钥留在本地

私钥在你的系统本地生成。Certbot 不上传、不托管、不代管你的密钥。

ECDSA / RSA

两种私钥可选

默认使用 ECDSA,也支持 RSA 证书私钥。

LIFECYCLE

验证与吊销

可获取域名验证(DV)证书,域名确认通过后签发;证书出问题也可以随时吊销。

AUTOMATION

完全自动化

可选择安装 http 到 https 重定向,让你的站点实际上仅以 https 运行。配置变更会被记录,并且可以回滚。

RFC 8555

兼容任何 ACME 服务

可与 Let's Encrypt 通信,也可选择性地与其他兼容 ACME 的服务通信。

托管环境里,你可能用不了 Certbot

如果你使用的是托管服务,且无法直接访问自己的 Web 服务器,那么你可能无法使用 Certbot。别硬来。

  1. 先问托管服务商:他们的控制面板是否提供上传证书的入口。

  2. 如果支持,可以自行申请一张 Let's Encrypt 签发的证书,再手动上传上去。

  3. 请向托管服务商咨询有关上传证书或使用 Let's Encrypt 所签发证书的文档,那里会写清楚具体步骤。

参与贡献

Certbot 由 EFF、Mozilla 及众多贡献者共同维护,加密整个互联网这件事还没有完成。想动手的话,从开发者指南开始。

本项目受 EFF 公共项目行为准则约束。