如何使用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验证,为您的域获取通配符证书。然后,您将配置证书以在其到期时续订。
先决条件
要完成本教程,您需要以下内容:
- 一个CentOS 7服务器,没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。包括具有sudo权限的非root用户和防火墙。如果您使用的是腾讯云的CVM服务器,您可以直接在腾讯云控制台中的安全组进行设置。
- 完全注册的域名。如果你没有域名,建议您先去这里注册一个域名,您需要将域名解析到您的服务器,您可以使用腾讯云云解析进行快速设置。如果你有域名,保护你网站的最简单方法是使用腾讯云SSL证书服务,它提供免费的可信证书。腾讯云SSL证书安装操作指南进行设置。
- 一个的CloudFlare帐户。
- 在Cloudflare的DNS中为您的域设置的DNS记录,以及配置的几个子域。
第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.pem
和privkey.pem
。
例如,您可以配置多个基于Web的服务:
- WWWW。example.com
- API。example.com
- 邮件。example.com
为此,您需要一个Web服务器,例如Apache或Nginx。这些服务器的安装和配置超出了本教程的范围,但以下指南将指导您完成配置服务器和应用证书的所有必要步骤。
对于Nginx,请看一下这些教程:
对于Apache,请参阅以下教程:
- 如何在CentOS 7上安装Apache Tomcat8
- 如何在CentOS 7上通过Yum安装Apache Tomcat 7
- 如何在CentOS 7上通过Let’s Encrypt 来加密Apache
现在让我们看看自动续订证书。
第5步 – 续订证书
让我们加密发布有效期为90天的短期证书。我们需要设置一个cron任务来检查即将到期的证书并自动更新它们。
让我们创建一个cron任务 ,每天运行续订检查。
使用以下命令打开要编辑的crontab
文件:
将以下行添加到文件中以尝试每天续订证书:
30 2 * * *
意思是“每天凌晨2:30运行以下命令”。- 该
certbot renew
命令将检查系统上安装的所有证书,并在不到30天内更新任何设置为过期的证书。 --noninteractive
告诉Certbot不要等待用户输入。
更新证书后,您需要重新加载Web服务器。该renew
命令包括在续订证书之前或之后运行命令或脚本的挂钩。您还可以在域的续订配置文件中配置这些挂钩。
例如,要重新加载Nginx服务器,请打开续订配置文件:
然后在以下[renewalparams]
部分添加以下行:
现在,Certbot将在安装更新的证书后自动重启您的Web服务器。
结论
在本教程中,您已安装了Certbot客户端,使用DNS验证获取了通配符证书并启用了自动续订。这将允许您使用包含域的多个子域的单个证书并保护您的Web服务。
近期评论