letsencrypt 使用教程:Let's Encrypt 是一个免费的、自动化的、开放的证书颁发机构(CA),旨在通过提供免费的 SSL/TLS 证书来推动互联网的安全加密,它由非营利组织 ISRG(互联网安全研究小组)管理,支持通过 ACME(自动化证书管理环境)协议实现证书的申请、签发和管理,本文将详细介绍 Let's Encrypt 的使用方法,包括安装配置、证书申请、自动续期及常见问题处理。

准备工作
在开始使用 Let's Encrypt 前,需确保以下条件满足:
- 域名所有权验证:需拥有一个已解析到服务器的域名,且 DNS 记录正确指向服务器 IP(支持 HTTP 和 DNS 验证方式)。
- 服务器环境:推荐使用 Linux 系统(如 Ubuntu、CentOS),并安装 Web 服务器(如 Nginx、Apache)或 Certbot 客户端。
- 端口开放:确保服务器 80(HTTP)或 443(HTTPS)端口可访问,ACME 协议默认通过 HTTP 验证。
安装 Certbot 客户端
Certbot 是 Let's Encrypt 官方推荐的 ACME 客户端,支持自动化的证书申请和部署,以下是不同系统的安装步骤:
Ubuntu/De 系统
sudo apt update sudo apt install certbot python3-certbot-nginx # 若使用 Nginx # 或 sudo apt install certbot python3-certbot-apache # 若使用 Apache
CentOS/RHEL 系统
sudo yum install epel-release sudo yum install certbot python3-certbot-nginx
手动安装(适用于其他系统)
从 Certbot 官网下载脚本并安装:
sudo wget https://dl.eff.org/certbot-auto sudo chmod a+x certbot-auto ./certbot-auto --nginx # 自动安装依赖并配置 Nginx
申请 SSL 证书
单域名证书申请
假设域名为 example.com,执行以下命令:

sudo certbot --nginx -d example.com
--nginx:表示使用 Nginx 插件自动配置(若使用 Apache 则替换为--apache)。-d:指定要申请证书的域名。
执行过程中,Certbot 会:
- 自动验证域名所有权(通过在网站根目录创建临时文件)。
- 提示选择 HTTPS 重定向选项(推荐选择“将 HTTP 重定向到 HTTPS”)。
- 证书签发后自动修改 Nginx/Apache 配置文件。
多域名证书(SAN 证书)
若需为多个域名申请同一张证书,使用 -d 参数多次指定:
sudo certbot --nginx -d example.com -d www.example.com -d sub.example.com
通配符证书申请
通配符证书(如 *.example.com)需通过 DNS 验证方式申请:
sudo certbot certonly --manual -d *.example.com --preferred-challenges dns
--manual:手动验证模式。--preferred-challenges dns:通过 DNS 解析验证。- 需按照提示在域名 DNS 管理平台添加 TXT 记录,验证完成后证书将保存至
/etc/letsencrypt/live/目录。
证书续期
Let's Encrypt 证书有效期为 90 天,需定期续期,Certbot 支持自动续期,可通过以下方式配置:

手动续期测试
sudo certbot renew --dry-run
若输出无错误,说明续期配置正常。
设置自动续期
创建定时任务(cron):
sudo crontab -e
添加以下行(每天凌晨 2 点检查续期):
0 2 * * * /usr/bin/certbot renew --quiet
--quiet:静默模式,避免输出日志。
Nginx/Apache 自动重载
若续期后需手动重载服务,可修改命令为:
0 2 * * * /usr/bin/certbot renew --post-hook "systemctl reload nginx"
证书管理
查看证书信息
sudo certbot certificates
输出包含证书路径、过期时间、域名列表等。
撤销证书
sudo certbot revoke --cert-path /etc/letsencrypt/live/example.com/fullchain.pem
删除证书
sudo certbot delete
按提示选择要删除的证书。
常见问题与解决方案
- 验证失败:检查域名 DNS 解析是否正确,确保服务器防火墙允许 80 端口访问。
- 证书未自动续期:检查定时任务是否正确设置,或手动执行
certbot renew查看错误日志。
相关问答 FAQs
问题 1:如何确认 Let's Encrypt 证书是否成功安装?
解答:可通过浏览器访问 https://example.com,查看地址栏是否有锁形标志;或使用命令行工具检查证书详情:
sudo openssl x509 -in /etc/letsencrypt/live/example.com/fullchain.pem -text -noout
问题 2:通配符证书申请时 DNS 验证失败怎么办?
解答:首先确认 TXT 记录的值与 Certbot 提示的完全一致(包括前后空格),并等待 DNS 生效(通常需几分钟到几小时),若仍未解决,可尝试更换 DNS 解析商(如 Cloudflare、DNSPod)或使用 --manual-public-ip-logging-ok 参数跳过 IP 日志记录。
