如何获得让我们使用Certbot CloudFlare DNS验证来加密SSL证书

2024年 3月 20日 87.7k 0

导航到"API令牌"部分[1]并点击"创建令牌"[2]。

点击“编辑区域DNS”部分中的“使用模板”。

从“权限”部分,通过从下拉菜单中选择标记的选项,允许“编辑”权限到“dns区域”。

如果您正在使用CloudFlare管理多个域,则可以允许从“区域资源”部分修改“特定区域”。允许API令牌仅修改单个区域比允许API令牌修改所有区域更安全。这是因为如果API令牌被破坏,攻击面将更小,造成的损害也更小。

如果您想要使用一个API密钥来修改您的所有CloudFlare管理域,请从“区域资源”部分选择“所有区域”。

完成API令牌的配置后,点击“继续进行摘要”。

将显示您可以使用API令牌在CloudFlare管理的域上执行的操作的摘要。点击“创建令牌”。

应创建API令牌。将API令牌复制到安全的地方,这样就不会丢失它。一旦您离开此页面,您将无法再次找到此API令牌。您需要生成一个新的API令牌,以防丢失:

LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5

在计算机/服务器上安全存储CloudFlare API令牌

Certbot需要使用CloudFlare API令牌在CloudFlare DNS服务器中为您的域添加新的txt记录。因此,您必须将CloudFlare API令牌存储在您的计算机/服务器上。存储API令牌而不确保适当的文件访问权限可能允许其他程序/用户访问API令牌。出于安全考虑,这不是你想要的。在本节中,我们将向您展示如何在文件系统上安全地存储CloudFlare API令牌。

首先,创建一个目录(即~/. secrets/certbot),您希望在其中存储CloudFlare API密钥,如下所示:

$mkdir—pv~/. secrets/certbot

在新创建的目录(即~/.secrets/certbot)中创建一个Cloudflare.ini文件,并使用您喜欢的文本编辑器(即Nano)打开它,如下所示:

$nano/. secrets/certbot/cloudflare.ini

在“cloudflare.ini”文件中键入以下行,然后按+X,后跟“Y”并保存它(如果您使用的是Nano文本编辑器)。

Dns_CloudFlare_API_TOKEN=

为确保"cloudflare.ini"文件具有正确的访问权限,请运行以下命令,以确保只有root用户具有对文件的读写权限:

$sudo chown root:root certbot/.secrets/certbot/cloudflare.ini

$sudo chmod 0600邮箱/. secrets/certbot/cloudflare.ini

正如您所看到的,只有root用户拥有对"cloudflare.ini"文件的读写权限。

$ls—lh/.secrets/certbot/cloudflare.ini

试图读取"cloudflare.ini"文件的其他用户将收到"Permission denied"错误消息。

$cat/. secrets/certbot/cloudflare.ini

使用Certbot CloudFlare DNS验证生成SSL证书

若要使用CloudFlare DNS验证为邮箱域名"*. nodekite.com"生成Let's Encrypt SSL证书,请按如下方式运行cerbot命令:

$sudo certbot certonly——dns—cloudflare——dns—cloudflare—credendence/certbot/cloudflare.ini—d *. www.example.com

要使用CloudFlare DNS验证为域名"nodekite.com"和"www.nodekite.com"生成Let's Encrypt SSL证书,请为每个域名使用certbot命令的"—d"选项,如下所示:

$sudo certbot certonly——dns—cloudflare——dns—cloudflare—credendence/. secrets/certbot/cloudflare.ini—d www.example.com—d nodekite.com

如果DNS更改需要很长时间才能传播到全球流行的域名服务器,您可以使用Certbot的“-dns-CloudFlare-Proportation-Second”选项来设置您希望Certbot在执行DNS验证之前等待的秒数。

$sudo certbot certonly——dns—cloudflare——dns—cloudflare—credendence/. secrets/certbot/cloudflare. ini—dns—cloudflare—propagation—seconds 60—d *. www.example.com

运行Certbot命令后,系统会要求您输入电子邮件地址。输入您的电子邮件地址,然后按继续。

按“Y”,然后按接受“我们加密”的“服务条款”。

按“Y”,然后按。

A我们来加密正在颁发的SSL证书。这需要一段时间才能完成。

在这一点上,发布了Let's Encrypt SSL证书。应显示保存SSL证书文件的完整路径。还应显示SSL证书的过期日期。

使用Certbot加密SSL证书

您可以使用以下命令列出使用Certbot生成的所有Let's Crypt SSL证书:

$sudo certbot证书

如您所见,列出了为"nodekite.com"域名生成的Let's Encrypt SSL证书[1]。为"nodekite.com"[2]域名颁发了一个SSL证书。证书的有效期为2024—03—20(有效期为89天)[3]。证书和私钥路径也在这里列出[4]。

Certbot将您为您的域生成的所有SSL证书存储在它们各自文件夹中的“/etc/letsENCRYPT/live”目录中。

$sudo ls—Rlh/etc/letsencrypt/live/

使用Certbot续订We‘s Encrypt SSL证书

Certbot会自动更新您使用CloudFlare DNS验证生成的所有Let's Encrypt SSL证书。

若要测试Let's Encrypt SSL证书的自动续订功能是否有效,请运行以下命令:

$sudo certbot renewed——试运行

将为您生成的每个Let's Encrypt SSL证书模拟自动续订操作。

如果测试成功了,我们将祝贺你。成功的测试意味着SSL证书将在过期前自动更新。你不用做别的了。

为了使Certbot自动续订功能正常工作,必须在您的计算机/服务器上启用并激活"cerbot. timer"systemd计时器。

您可以使用以下命令检查"cerbot. timer"systemd计时器是否已启用并且处于活动状态:

$sudo systemctl状态certbot. timer

正如你所看到的,"certbot. timer"systemd计时器是启用的(在引导时自动启动)[1]和活动的[2]。Certbot会在11分钟后检查是否需要更新任何SSL证书(根据下面的截图),并更新即将过期的SSL证书[3]。

若要手动检查是否有任何SSL证书即将过期并续订即将过期的SSL证书,请运行以下命令:

$sudo certbot release

在我们的例子中,没有SSL证书即将到期。因此,Certbot没有尝试更新任何SSL证书。

若要强制Certbot续订特定域的SSL证书(假设为*. www.example.com),请运行以下命令:

$sudo certbot certonly——force—renewed—d *. www.example.com

按"1"并按选择第一个选项(用于使用CloudFlare DNS验证)。

SSL证书应该更新。

结论

若要使用Certbot使用CloudFlare DNS验证获取Let's Encrypt SSL证书,您需要访问CloudFlare API令牌。在本文中,我们向您展示了如何为您的域创建CloudFlare API令牌,并将其安全地存储在您的计算机/服务器上,以便您可以在需要时使用Certbot访问它。我们还向您展示了如何在最流行的Linux发行版上安装Certbot和Certbot CloudFlare DNS插件。我们向您展示了如何使用Certbot和CloudFlare DNS验证为单个域生成Let's Encrypt SSL证书以及SSL证书。最后,我们向您展示了如何使用Certbot自动和手动更新Let's Encrypt SSL证书。

参考资料:

  • 挑战类型—让我们加密
  • 欢迎使用certbot—dns—cloudflare的文档!- certbot—dns—cloudflare 0文档

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论