Certbot 自动化 SSL 证书安装颁发与配置

Certbot 是一个开源工具,用于自动化 Let’s Encrypt 证书的获取和续期。Let’s Encrypt 是一个提供免费 SSL/TLS 证书的认证机构(CA),其目标是使整个 Web 使用加密连接。Certbot 是 Electronic Frontier Foundation (EFF) 的项目,设计用于简化 SSL/TLS 证书的管理。

Certbot 的主要功能

  1. 自动获取证书:Certbot 可以自动与 Let’s Encrypt 服务器通信,验证你的域名所有权,并获取证书。

  2. 自动安装证书:Certbot 可以自动配置大多数 Web 服务器(如 Nginx 和 Apache)以使用获取到的证书。

  3. 自动续期:Let’s Encrypt 证书的有效期为 90 天,Certbot 可以自动续期,确保证书不会过期。

Certbot 的工作原理

  1. 域名验证:Certbot 通过挑战/响应机制验证你对域名的控制权。常见的验证方法包括 HTTP-01 和 DNS-01。

    • HTTP-01 验证:Certbot 会在你的 Web 服务器上创建一个特定的文件,Let’s Encrypt 服务器会尝试访问这个文件来验证域名所有权。

    • DNS-01 验证:Certbot 会在你的域名的 DNS 记录中添加一个特定的 TXT 记录,Let’s Encrypt 服务器会检查这个 DNS 记录来验证域名所有权。

  2. 证书获取:一旦域名验证成功,Let’s Encrypt 服务器会签发一个 SSL/TLS 证书,Certbot 会将其下载到本地。

  3. 证书安装:Certbot 可以配置你的 Web 服务器使用新获取的证书。

  4. 证书续期:Certbot 可以定期检查证书的有效期并自动续期,以确保服务的持续性和安全性。

使用 Certbot 的基本步骤

1. 安装 Certbot:

• 在不同的系统上有不同的安装方法,例如使用 snap、apt、yum 等。
我在用 yum 安装后使用 certbot 获取证书报错了,使用了 snap 安装,这里说一下 snap:

Snap 简介

Snap 是一种由 Canonical 开发的包管理工具,用于在 Linux 系统上安装、管理和更新应用程序。它提供了一种与系统依赖隔离的方式来打包应用程序,从而使软件的安装和升级变得更加简单和可靠。

安装 Snap

如果你的系统还没有安装 snapd(Snap 的后台服务),可以通过以下步骤进行安装:

1. 安装 Snapd

在 CentOS 7 上安装 Snapd 的步骤如下:

sudo yum install epel-release
sudo yum install snapd

安装完成后,启用并启动 snapd 服务:

sudo systemctl enable --now snapd.socket

然后,创建符号链接,使 snap 命令可以在系统路径中被识别:

sudo ln -s /var/lib/snapd/snap /snap
2. 安装 Certbot

使用 snap 安装 Certbot:

sudo snap install --classic certbot

–classic 选项用于允许 Certbot 使用传统的 Unix 文件系统访问权限,这对于 Certbot 的功能是必要的。
接下来就可以使用 certbot 获取证书了

2. 获取证书:

• 使用 certbot certonly 命令获取证书。

• 示例:

certbot certonly --standalone -d example.com  #-d参数后面跟的是域名

执行命令后会让填写&同意一些条款信息:

  1. 填写邮箱,用来通知证书情况
  2. 同意条款
  3. 同意是否给邮箱发送"广告"
  4. 这里会调用服务器 80 端口验证域名,尽量保持80 端口不被占用
3. 配置 Web 服务器:

• 配置你的 Web 服务器(如 Nginx 或 Apache)使用 Certbot 获取的证书。

• 示例的 Nginx 配置:

server {
    listen 80;
    server_name example.com;  #域名地址
    
    # 重定向所有 HTTP 请求到 HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name example.com;

    # SSL 证书和密钥文件的路径
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    # SSL 参数
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers HIGH:!aNULL:!MD5;

    # 其他配置
    location / {
        # 你的应用配置
        proxy_pass http://example.com;  #域名地址
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
4. 自动续期:

• Certbot 默认会安装一个 cron job 或 systemd timer 来自动续期证书。

• 可以手动测试续期:

certbot renew --dry-run

同样会调用本机 80 端口验证,如果 80 端口被占用会报错

常见 Certbot 命令

• 获取证书:

certbot certonly --standalone -d example.com

• 续期证书:

certbot renew

• 检查配置:

certbot certificates

• 删除证书:

certbot delete --cert-name example.com

总结

Certbot 是一个强大的工具,简化了获取和管理 SSL/TLS 证书的过程。它通过自动化验证和续期过程,确保你的网站始终使用最新的安全证书,提供安全的 HTTPS 连接。如果你运行一个网站或服务,使用 Certbot 和 Let’s Encrypt 来管理你的 SSL/TLS 证书是一个值得推荐的选择。

更多信息欢迎访问我的小破站:https://www.aism.love

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈哈泡腾片

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值