如何使用CentOS 7上的CloudFlare验证来检索让我们加密SSL通配符证书

 

介绍

Let’s Encrypt是一个证书颁发机构(CA),它为传输层安全性(TLS)加密供免费证书。它提供了一个名为Certbot的软件客户端,它简化了证书创建,验证,签名,安装和续订的过程。

我们的加密现在支持通配符证书,允许您使用单个证书保护域的所有子域。如果要使用单个服务器托管多个服务(例如Web界面,API和其他站点),这将非常有用。

要从Let’s Encrypt获取通配符证书,您必须使用Certbot的DNS插件之一,其中包括:

  • certbot-DNS-的CloudFlare
  • certbot-DNS-route53
  • certbot-DNS-谷歌
  • certbot-DNS-digitalocean

您选择的插件取决于您的DNS记录所在的服务。在本教程中,您将使用CentOS 7上的Certbot 进行CloudFlare验证,为您的域获取通配符证书。然后,您将配置证书以在其到期时续订。

先决条件

要完成本教程,您需要以下内容:

第1步 – 安装Certbot

默认情况下,该certbot软件包不能通过CentOS的软件包管理器获得。您需要启用EPEL存储库以安装Certbot及其插件。

要添加CentOS 7 EPEL存储库,请运行以下命令:

安装完成后,您可以安装certbot

然后为Certbot安装CloudFlare插件:

如果您正在使用其他DNS服务,则可以使用以下yum search命令找到相应的插件:

您已准备好服务器以获取证书。现在您需要从CloudFlare获取API密钥。

第2步 – 获取CloudFlare API

为了使Certbot能够自动续订通配符证书,您需要为其提供CloudFlare登录和API密钥。

登录您的Cloudflare帐户并导航到“ 个人资料”页面

单击Global API Key行中的View按钮。

出于安全考虑,系统会要求您重新输入Cloudflare帐户密码。输入它并验证CAPTCHA。然后再次单击“ 查看”按钮。你会看到你的API密钥:

复制此密钥。您将在下一步中使用它。

现在返回到您的服务器以继续获取证书的过程。

第3步 – 配置Certbot

您拥有告诉Certbot如何使用Cloudflare的所有必要信息,但是让我们将其写入配置文件,以便Сertbot可以自动使用它。

首先运行不带任何参数的certbot命令来创建初始配置文件:

接下来在/etc/letsencrypt目录中创建一个包含CloudFlare电子邮件和API密钥的配置文件:

将以下内容添加到其中,使用Cloudflare登录和API密钥替换占位符:

保存文件并退出编辑器。 使用Cloudflare的API密钥,您可以从命令行执行与Cloudflare UI相同的操作,因此为了保护您的帐户,请使配置文件仅由其所有者读取,以便其他人无法获取您的密钥:

配置文件到位后,我们获取证书。

第4步 – 获取证书

要获取证书,我们将使用该certbot命令并指定我们想要的插件,我们要使用的凭证文件以及我们应该用来处理请求的服务器。默认情况下,Certbot使用Let’s Encrypt的生产服务器,它使用ACME API版本1,但Certbot使用其他协议获取通配符证书,因此您需要提供ACME v2端点。

运行以下命令以获取域的通配符证书:

系统将要求您指定应收到紧急续订和安全通知的电子邮件地址:

然后,您将被要求同意服务条款:

然后,您将被要求与电子前沿 基金会分享您的电子邮件地址:

然后Certbot将获得您的证书。您将看到以下消息:

现在你有了通配符证书。我们来看看Certbot为您下载的内容。使用该ls命令查看包含密钥和证书的目录的内容:

README文件包含有关这些文件的信息:

你会看到这样的输出:

从这里,您可以使用通配符证书配置服务器。您通常只需要其中两个文件:fullchain.pemprivkey.pem

例如,您可以配置多个基于Web的服务:

  • WWWW。example.com
  • API。example.com
  • 邮件。example.com

为此,您需要一个Web服务器,例如Apache或Nginx。这些服务器的安装和配置超出了本教程的范围,但以下指南将指导您完成配置服务器和应用证书的所有必要步骤。

对于Nginx,请看一下这些教程:

对于Apache,请参阅以下教程:

现在让我们看看自动续订证书。

第5步 – 续订证书

让我们加密发布有效期为90天的短期证书。我们需要设置一个cron任务来检查即将到期的证书并自动更新它们。

让我们创建一个cron任务 ,每天运行续订检查。

使用以下命令打开要编辑的crontab文件:

将以下行添加到文件中以尝试每天续订证书:

  • 30 2 * * * 意思是“每天凌晨2:30运行以下命令”。
  • certbot renew命令将检查系统上安装的所有证书,并在不到30天内更新任何设置为过期的证书。
  • --noninteractive 告诉Certbot不要等待用户输入。

更新证书后,您需要重新加载Web服务器。该renew命令包括在续订证书之前或之后运行命令或脚本的挂钩。您还可以在域的续订配置文件中配置这些挂钩。

例如,要重新加载Nginx服务器,请打开续订配置文件:

然后在以下[renewalparams]部分添加以下行:

现在,Certbot将在安装更新的证书后自动重启您的Web服务器。

结论

在本教程中,您已安装了Certbot客户端,使用DNS验证获取了通配符证书并启用了自动续订。这将允许您使用包含域的多个子域的单个证书并保护您的Web服务。

 

 

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注