一、为什么选择 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 并实现证书的自动续期,不仅提升网站的安全性,还降低了运维成本。对于个人站长、小型企业乃至大型平台来说,都是一个稳定可靠的解决方案。

点赞(0)

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部