大家好,大家好
如果你遵循Github,你会注意到围绕着基于PythonDNSLicion概念的域名服务提供商的一大堆新的增强器。
Image.png1006×335 13.4KB
如果您密切关注GitHub项目,您将看到该项目的状态和进展
GitHub
Certbot/certbot
Certbot是EFF的工具,用于从我们的服务器上加密和(可选)自动启用HTTPS来获取证书。它还可以充当使用ACME协议的任何其他CA的客户端。-证书...
本指南的目的是介绍这些内容,并解决其中的一些问题和可能的方法。
一如既往,这是一个指南,而不是福音,所以从它中学习,并自由地做出贡献。
A)在Ubuntu 16.10上获取Certbot-APACHE
B)打包--没有适用于Ubuntu的本地包?
C)使用PIP使用Python进行安装
D)创建.INI配置
E)测试插件第1部分--仅通过证书获得的简单证书
F)测试插件第2部分-复杂示例-安装了Apache Installer的SAN-设置
G)测试插件第3部分-复杂示例-安装了Apache Installer的SAN安装后测试
H)工作/改进领域
Andrei,第1部分:获取用于Ubuntu 16.10的Certbot-APACHE
我的VPS提供商给了我一个Ubuntu 16.10实例,我将其更新为最新版本的Apache2.4.18
按照certbot主页的说明进行操作:
Certbot.eff.org
Certbot-所有说明
自动启用HTTPS在您的网站上与EFF的Certbot,部署让我们的加密证书。
Image.png1357×344 16.8KB
运行certbot插件以确认哪些插件可供我们使用,显示了Apache插件、独立插件和Webroot插件(如预期的那样)
Andrei,第2部分:打包--Ubuntu没有本地包吗?
我重新运行了apt-get更新,以确保没有同步问题,并检查了存储库中可用的插件。
对其中一个问题的审查似乎表明,这与这些插件的当前状态一致
Githeb.com/certbot/certbot
Certbot-dns-CloudFlare打包
宝马
协调世界时5月17日下午08:04-11
3次提交
更改了3个文件
增加了59个
和9个缺失。
Andrei,第3部分:使用PIP使用Python进行安装
首先要弄清楚的是安装了哪些Python解释器,因为这将在稍后进行相关讨论
在Ubuntu上,下面的命令实现了所需的功能,但在其他Linux系统上可能会有所不同
运行哪个certbot使我能够计算出正在使用的是哪个python解释器
回顾一下可用的pythonpip安装程序,我还发现我应该使用pip3命令
Image.png1130×92 4.06 KB
运行PIP3 Install certbot-dns-CloudFlare会将包安装到python环境中
Image.png1291×548 14.7 KB
然后,我可以通过命令certbot plugins确认该插件可用
Image.png1298×425 14.3KB
为了验证功能,我们还需要使用相同的方法安装Google-Dns安装程序
PIP3安装certbot-dns-google
Image.png1317×613 17.3 KB
确认:
Image.png1306×498 16.5KB
Andrei,第4部分-创建.INI配置文件
查看文档后会发现,我们需要为验证器提供一个INI文件。用户指南-Certbot 2.7.0.dev0文档
我在/etc/letscrypt下创建了.INI文件,因为这在当时是最有意义的。
这里有一些关于如何处理这些文件和所需语法的说明
Github.com
Certbot/certbot/blob/master/certbot-dns-cloudflare/certbot_dns_cloudflare/__init__.py
“”“
`~certbot_dns_Cloudflare.dns_Cloudflare`插件自动执行以下操作
通过创建完成``DNS-01``质询(`~acme.challenges.DNS01`),以及
随后,使用Cloudflare API删除TXT记录。
。。注::
默认情况下不安装该插件。可以通过转到以下地址进行安装
`certbot.eff.org`_,选择您的系统和
选择通配符选项卡。
命名参数
=。
``--dns-CloudFlare-Credentials``Cloudflare Credentials_INI文件。
(所需)
``--dns-cloudflare传播秒数``等待dns的秒数
在询问ACME之前进行传播
用于验证DNS记录的服务器。
(默认:10)
此文件已被截断。显示原创
图像.png749×95 2.94 KB
图像.png836×114 3.47 KB
本质上,INI文件需要两个参数(CloudFlare电子邮件和需要从CloudFlare获取的API密钥)。示例内容(来自init.py文档)
Dns_CloudFlare_Email=CloudFlare@Example.com
Dns_CloudFlare_API_Key=0123456789abcDef0123456789abcDef01234567
Andrei,第5部分-测试插件-仅通过certonly获得的简单证书
在不安装证书的情况下获取证书是一个非常简单的过程。如果您的参数不正确,此插件可以很好地提供友好的反馈。
命令:
Certbot certonly--dns-CloudFlare--dns-CloudFlare-Credentials/etc/letsENCRYPT/cloudflare.ini-d implecoudflare.firecube.xyz
运行结果:
Image.png1366×360 13.5KB
错误消息说明:
来自插件中的init.py文件
如果Certbot检测到凭据文件可以
由您系统上的其他用户访问。警告内容为“不安全的权限”
在凭据配置文件上“,后跟凭据的路径
文件。Certbot每次使用凭据文件时都会发出此警告,
包括续签,除非解决这个问题,否则不能沉默
(例如,通过使用类似chmod 600的命令来限制对文件的访问)。
因为我在创建.INI文件时没有遵循这一点,所以消息仍然存在。
Andrei,第6部分-复杂示例-安装了Apache Installer的SAN-设置
为了执行这个复杂的示例:certbot-dns-CloudFlare作为身份验证器,而Apache作为安装程序,我们首先需要做一些准备工作。
确认先前创建的证书的路径
我们将使用此证书进行绑定,而不是使用自签名证书,因为它更快
图像.png754×579 17 KB
创建VHOST文件(一个用于HTTP,一个用于HTTPS):
Image.png1366×14.1KB
创建DNS记录:
Image.png1072×394 26.9 KB
在运行命令之前确认网站是否正常运行:
HTTP未重定向到HTTPS
图像.png1366×541 285 KB
正在使用的HTTPS证书不正确
Image.png1365×586 58.6 KB
Andrei,第7部分-复杂示例-安装了Apache Installer的SAN安装后测试
用于安装和获取新证书的命令
Certbot--验证器dns-CloudFlare--安装程序apache--dns-CloudFlare-credentials/etc/letsENCRYPT/cloudflare.ini-d Complex Cloudflare.firecube.xyz-d hardCloudflare.firecube.xyz
我选择在安装对话框中添加重定向
图像.png1343×693 24.4KB
安装后VHOST配置文件(概述了更改):
Image.png1092×355 8.14 KB
Image.png1366×541 14.6KB
网站确认:
Image.png831×169 13.2KB
图像.png813×285 92 KB
安德烈,工作/改进的领域
INI文件的存储位置-
@bmw@Schoen-为了安全起见,您对INI文件的存储位置有什么建议吗?在init.py文件中有一个建议。~/.secrets/certbot/cloudflare.ini这是通用的Linux还是特定的发行版。
Cmod命令用于删除错误消息(Chmod 600)
先使用暂存-
我通常建议您使用--分段标志,以确保在测试时不会违反任何速率限制
密切关注包装公告和供应情况-
虽然本文中的方法适用于安装官方操作系统包(如果可用),但仍应使用
创建用于测试的试运行和测试VHOST配置-
在测试过程中,最好使用非生产VHOST配置,但这确实需要额外的DNS记录
Andrei,真的没有标准的地方来放置这样的INI文件。这只是一个建议。
对于那些对此过程的安全性感兴趣的人,请查看介绍此文档的公关上的相关讨论。