首页 > 其他分享 >Certbot 自动化证书

Certbot 自动化证书

时间:2024-08-01 12:17:04浏览次数:13  
标签:证书 域名 Let Certbot 自动化 续期 certbot

概述

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:

• 在不同的系统上有不同的安装方法,例如使用 snapaptyum 等。

我在用 yum 安装后使用 certbot 获取证书报错了,使用了 snap 安装,这里说一下 snap

Snap 简介

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

安装 Snap

如果你的系统还没有安装 snapd(Snap 的后台服务),可以通过以下步骤进行安装:
在 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

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

2. 获取证书:

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

• 示例:

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

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

  1. 填写邮箱,用来通知证书情况

  2. 同意条款

  3. 同意是否给邮箱发送"广告"

这里会调用服务器 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 jobsystemd 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 证书是一个值得推荐的选择。

标签:证书,域名,Let,Certbot,自动化,续期,certbot
From: https://www.cnblogs.com/siyongbo/p/18336403

相关文章

  • 职场<火焰杯>测试开发大赛证书已开放下载!
    亲爱的测试开发小伙伴们,好消息!职场<火焰杯>测试开发大赛的证书现已开放下载。感谢大家的积极参与和出色表现,每一位选手都在比赛中展示了卓越的技能和无限的潜力。01证书评级规则所有参加初赛和决赛的选手都有机会获得由职场火焰杯组委会颁发的测试开发技能证书,由于参加比赛......
  • Charles证书一年过去后怎么处理?
    1、删除证书windows--》设置--》搜索(管理证书)--》右键删除2、重置证书3、重新安装证书  安装完后重启charles......
  • 【远程驰骋:Python SSH 自动化运维实战笔记】
    使用GqylpySSH库简化SSH命令执行在自动化运维或脚本编写中,经常需要通过SSH连接到远程服务器执行命令。虽然Python的paramiko库提供了强大的SSH功能,但直接使用它进行命令执行和结果处理可能会显得有些繁琐。GqylpySSH库封装了paramiko,提供了一个更加简洁易用的接口......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-61 - 隐藏元素定位与操作
    1.简介 对于前端隐藏元素,一直是自动化定位元素的隐形杀手,让人防不胜防。脚本跑到隐藏元素时位置时报各种各样的错误,可是这种隐藏的下拉菜单又没有办法避免,所以非常头痛,这一篇只为交流隐藏元素自动化定位处理方法以及宏哥自己的一点浅薄见解。2.什么是隐藏元素隐藏元素,熟悉前端......
  • 解决python自动化操作异常处理的问题
    在python自动化领域,往往要用到pyautogui,pywin32等模块实现自动化操作。然而,这种自动化操作,本身具有一定的局限性,其中最主要的一个问题就是,一旦执行结果不按照脚本预设的来执行,往往会抛出异常,导致程序中断。解决这个问题,主要有这么几种思路:第一,每一次操作后分情况讨论。这种方......
  • cisp证书含金量怎么样?值不值得考?
    随着中国经济的发展,网络已经渗透到了社会各个领域,企业信息化水平也得到了很大的提高,对网络安全人才的需求也在不断增加。但目前我国网络安全专业人才非常紧缺,主要原因是大多数企业没有重视这一方面的人才培养,企业对信息系统安全管理还没有一个统一的标准和规范。所以,掌握信......
  • Python写UI自动化--playwright(点击操作)
    本篇介绍playwright点击操作,click()方法的常用参数目录0.selector(必需)1.modifiers(可选)2.position(可选)3.button(可选)4.click_count(可选)5.delay6.timeout(可选)7.force=True(可选)8.trial=True(可选)9.no_wait_after(可选)注意事项0.selecto......
  • 借助 NGINX 对本地的 Kubernetes 服务进行自动化的 TCP 负载均衡
    原文作者:ChrisAkker-F5技术解决方案架构师,SteveWagner-F5NGINX解决方案架构师原文链接:借助NGINX对本地的Kubernetes服务进行自动化的TCP负载均衡转载来源:NGINX中文官网NGINX唯一中文官方社区,尽在 nginx.org.cn作为一名现代应用开发人员,您不仅使用一......
  • 使用这个Blender工具非破坏性地自动化切割面板线
    "PanelCutter"插件自动化了在Blender中沿选定边缘创建程序化面板线的过程,使其成为硬表面建模的必备工具。这是一个设计用来非破坏性地自动化切割程序化面板线的小工具。这个工具对于硬表面模型,如汽车、船只和飞机来说,是救星。现在你可以动态地分配面板切割,而无需将其建模到拓扑......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-60 - 判断元素是否显示 - 下篇
    1.简介有些页面元素的生命周期如同流星一闪,昙花一现。我们也不知道这个元素在没在页面中出现过,为了捕获这一美好瞬间,让其成为永恒。我们就来判断元素是否显示出现过。在操作元素之前,可以先判断元素的状态。判断元素操作状态也可以用于断言。2.常用的元素判断方法2.1page对象调......