Let’s Encrypt 及 Certbot 简介
  • Let’s Encrypt
    一个免费的、自动化的证书颁发机构(CA),通过验证你对域名的控制权,颁发 SSL/TLS 证书。
  • Certbot
    Let’s Encrypt 提供的开源客户端工具,用于自动申请、续订和安装证书。
  • 关于SSl的一些知识参考这篇文章https://www.zhzxs.site/index.php/2024/11/23/1732371535/

1. Certbot 的工作原理

步骤一:验证域名控制权

当你运行 sudo certbot --apache,Certbot 会首先验证你对目标域名的控制权。这是通过以下两种方式之一实现的:

  1. HTTP-01 验证(默认方式)
    • Certbot 会在你的网站根目录生成一个临时文件(.well-known/acme-challenge/<token>)。
    • Let’s Encrypt 的服务器会尝试访问这个文件,例如:arduinoCopy codehttp://example.com/.well-known/acme-challenge/<token>
    • 如果访问成功,说明你确实控制了 example.com 的域名。
  2. DNS-01 验证(备用方式)
    • Certbot 要求你在域名的 DNS 记录中添加一个特定的 TXT 记录。
    • Let’s Encrypt 验证 DNS 记录后颁发证书(适用于需要为未开放 HTTP 服务的域名申请证书)。

步骤二:申请证书

验证通过后,Certbot 会向 Let’s Encrypt 请求颁发一个证书。Let’s Encrypt 会生成证书文件并将其发送回你的服务器。

步骤三:配置 Apache

Certbot 会自动修改 Apache 的配置文件以启用 HTTPS:

  • 添加或修改虚拟主机配置文件:
    • 设置 SSLEngine on
    • 指定证书文件路径(通常是 /etc/letsencrypt/live/<domain>/)。apacheCopy codeSSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
  • 配置 HTTP 到 HTTPS 的自动重定向规则(可选)。

步骤四:重启 Apache

完成配置后,Certbot 会自动重启或重新加载 Apache 以使新证书生效。


2. Certbot 的自动化优势

Certbot 的强大之处在于自动化:

  • 申请证书: 自动与 Let’s Encrypt 交互,不需要手动上传文件或填写表单。
  • 修改配置: 自动定位 Apache 配置文件并插入证书路径、重定向规则等。
  • 续订证书: Let’s Encrypt 的证书有效期为 90 天,Certbot 会通过 cronsystemd timer 自动定期续订。

你可以手动测试续订过程:

sudo certbot renew --dry-run

3. 如何验证证书写入成功?

  1. 检查配置文件: 确认 Apache 的虚拟主机配置中包含以下内容:SSLCertificateFile /etc/letsencrypt/live/<domain>/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/<domain>/privkey.pem
  2. 验证证书: 访问网站的 HTTPS URL,例如 https://example.com,检查浏览器地址栏是否显示锁标志。
  3. 查看证书文件: Certbot 生成的证书文件通常保存在 /etc/letsencrypt/live/<domain>/ 目录,可以手动查看:sudo ls -l /etc/letsencrypt/live/<domain>/
  4. 使用在线工具: 使用 SSL Labs 或类似工具验证证书的正确性。

总结

Certbot 能够“自动写入证书”得益于以下关键点:

  • 与 Let’s Encrypt 的交互: Certbot 自动申请和验证证书。
  • 文件系统权限: Certbot 具有访问和修改 Apache 配置文件的权限。
  • 自动化脚本: Certbot 自动完成配置和重启 Apache,使 HTTPS 配置生效。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇