一、为什么选择 Let's Encrypt?
-
免费:为所有用户免费颁发证书,节省成本。
-
自动化:结合 Certbot 可实现申请、配置、续期全流程自动化。
-
可信任:被所有主流浏览器所信任,支持广泛。
-
快速部署:可快速部署在 Apache、Nginx 等主流 Web 服务器上。
二、Certbot 简介
Certbot 是由 EFF(电子前哨基金会)开发的一款命令行工具,用于从 Let's Encrypt 获取和管理 SSL/TLS 证书。主要功能包括:
-
自动化域名验证
-
自动申请并安装证书
-
自动更新即将过期的证书
-
集成常见 Web 服务器如 Nginx、Apache
三、安装 Certbot
以 Ubuntu 为例,可以通过以下命令安装 Certbot 及其插件:
Apache 用户:
sudo apt update
sudo apt install certbot python3-certbot-apache -y
Nginx 用户:
sudo apt update
sudo apt install certbot python3-certbot-nginx -y
其他系统(如 CentOS、Debian)安装方法可参考 Certbot 官网:https://certbot.eff.org
四、申请证书
安装完成后,可以使用以下命令来为你的网站配置 HTTPS 证书。
1. 执行命令
-
如果你使用的是 Apache,运行:
sudo certbot --apache
-
如果你使用的是 Nginx,运行:
sudo certbot --nginx
2. 自动检测与配置引导
Certbot 会自动检测服务器上的虚拟主机配置,并进入交互式引导流程,操作步骤如下:
-
选择要申请证书的域名:Certbot 会列出可用域名,你可以选择一个或多个。
-
是否启用 HTTP 重定向:
-
推荐选择“重定向所有流量到 HTTPS”。
-
-
自动申请与配置证书:
-
Certbot 会自动完成 ACME 协议验证、证书下载及服务器配置更新。
-
申请完成后,你将看到如下提示:
Congratulations! You have successfully enabled HTTPS on https://example.com
此时,你的网站已经启用了 HTTPS 访问,无需手动修改 Web 服务器配置。
五、设置证书自动续期
Let's Encrypt 颁发的证书有效期为 90 天。为避免手动续期的麻烦,Certbot 支持自动续期机制。
检查自动续期是否正常
可以使用以下命令进行模拟续期测试:
sudo certbot renew --dry-run
如果输出提示续期成功,就说明自动续期机制工作正常。
启用定时续期服务(一般系统默认已启用)
-
使用 systemd 的系统,可以启用 Certbot 的定时服务:
sudo systemctl enable certbot.timer sudo systemctl start certbot.timer
-
你也可以查看当前所有计划任务:
systemctl list-timers
Certbot 默认每天检查一次证书是否即将过期,如果在 30 天内即将到期,则会自动续期并重载 Web 服务配置。
六、常见问题及解决方案
问题 1:80/443 端口未开放
证书申请依赖 HTTP 验证,需确保服务器防火墙及云服务器安全组放行 80 和 443 端口。
问题 2:Nginx 或 Apache 配置错误
如果配置文件中存在语法错误或端口冲突,Certbot 会提示失败。可使用以下命令检查配置:
sudo nginx -t # Nginx 用户
sudo apachectl configtest # Apache 用户
问题 3:证书未自动续期
可查看 Certbot 日志排查问题:
sudo cat /var/log/letsencrypt/letsencrypt.log
七、总结
使用 Let's Encrypt 搭配 Certbot,可以轻松为网站配置 HTTPS 并实现证书的自动续期,不仅提升网站的安全性,还降低了运维成本。对于个人站长、小型企业乃至大型平台来说,都是一个稳定可靠的解决方案。
发表评论 取消回复