Zzzxb's Blog

你要静心学习那份等待时机的成熟的情绪,也要你一定保有这份等待之外的努力和坚持。

Cerbot Feb 27, 2026

Certbot 是一个免费的开源工具,用于自动使用 Let’s Encrypt 证书来启用 HTTPS

1. 安装

  1. Ubuntu/Debian
    sudo apt update
    sudo apt install certbot
    
  2. CentOS/RHEL
    sudo yum install epel-release
    sudo yum install certbot
    
  3. 使用 Snap(推荐,保持最新)
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

2. 获取证书(常见方式)

方式一:Webroot 模式(推荐)

# 临时启动服务器验证,需确保 80/443 端口可用
sudo certbot certonly --standalone -d example.com -d www.example.com

方式二:Standalone 模式

# 临时启动服务器验证,需确保 80/443 端口可用
sudo certbot certonly --standalone -d example.com -d www.example.com

方式三:Nginx 插件模式

# 自动配置 Nginx
sudo certbot --nginx -d example.com -d www.example.com

方式四:Apache 插件模式

# 自动配置 Apache
sudo certbot --apache -d example.com -d www.example.com

3 . 证书位置

证书通常保存在:

/etc/letsencrypt/live/example.com/
├── cert.pem      # 证书链
├── chain.pem     # 中间证书
├── fullchain.pem # 完整证书链
└── privkey.pem   # 私钥

4. 自动续期

#测试续期
sudo certbot renew --dry-run

# 手动续期所有证书
sudo certbot renew

# 设置自动续期(crontab)
sudo crontab -e

# 添加以下行(每天检查续期)
0 0,12 * * * /usr/bin/certbot renew --quiet

5. 常用命令

查看证书信息

sudo certbot certificates

撤销证书

sudo certbot revoke --cert-path /etc/letsencrypt/live/example.com/cert.pem

删除证书

sudo certbot delete --cert-name example.com

6. Nginx 配置示例

server {
    listen 443 ssl http2;
    server_name example.com www.example.com;
    
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    
    # 其他配置...
}

7. 注意事项

  1. 域名验证:确保域名已解析到服务器 IP
  2. 端口开放:80 端口(HTTP验证)或 443 端口(TLS验证)必须可访问
  3. 防火墙:可能需要开放相应端口
  4. 权限:Webroot 目录需要可读权限
  5. 证书有效期:Let’s Encrypt 证书有效期为 90 天