Certbot弃用操作系统软件包,对快照进行“标准化”

2021-01-18 09:00:15

Certbot通常由系统管理员直接在Web服务器上运行。在大多数情况下,在个人计算机上运行Certbot并不是有用的选择。以下说明与在服务器上安装和运行Certbot有关。

系统管理员可以直接使用Certbot来请求证书;它们不应允许非特权用户以root用户身份运行任意Certbot命令,因为Certbot允许其用户指定任意文件位置并运行任意脚本。

Certbot已打包为许多常见的操作系统和Web服务器。通过访问certbot.eff.org,检查是否为您的Web服务器的操作系统打包了certbot(或letsencrypt),在这里您还将找到适合您系统的正确安装说明。

除非您有非常特殊的要求,否则我们建议您使用certbot.eff.org上系统的安装说明。

Certbot当前需要在类似UNIX的操作系统上运行Python 2.7或3.6+。默认情况下,它需要root访问权限才能写入/ etc / letsencrypt,/ var / log / letsencrypt,/ var / lib / letsencrypt;绑定到端口80(如果使用独立插件),并读取和修改Web服务器配置(如果使用apache或nginxplugins)。如果这些都不适合您,则理论上可以在没有root特权的情况下运行,但是对于大多数想要避免以root用户身份运行ACMEclient的用户,letencrypt-nosudo或simp_le是更合适的选择。

Apache插件当前需要具有augeas 1.0版的操作系统;当前,它支持基于Debian,Ubuntu,Fedora,SUSE,Gentoo和Darwin的现代OS。

如果您离线或操作系统未提供软件包,则可以使用另一种方法来安装certbot。

大多数现代Linux发行版(基本上是任何使用systemd的发行版)都可以作为快照安装installCertbot。快照适用于x86_64,ARMv7和ARMv8体系结构。 Certbot快照提供了一种简便的方法,以确保您具有最新版本的Certbot,并具有预先配置的自动证书续订等功能。

通过选择服务器软件,然后在“系统”下拉菜单中选择“快照”,可以在https://certbot.eff.org/instructions上找到有关安装Certbot快照的说明。 (无论您使用哪种操作系统,都应选择“快照”,因为我们的说明在所有系统上都是相同的。)

Docker是一种非常简单快捷的获取证书的方法。但是,此操作模式无法安装证书或配置您的Web服务器,因为我们的installerplugins无法从Docker容器内部访问您的Web服务器。

大多数用户应使用certbot.eff.org上的说明。仅当您确定知道自己在做什么并且有充分的理由这样做时,才应使用Docker。

您绝对应该阅读我的证书在哪里?部分,以了解如何手动管理证书。我们的密码套件页面提供了有关推荐密码套件的一些信息。如果这些都不对您有意义,那么您绝对应该使用certbot.eff.org上为系统推荐的安装方法,使您能够使用涵盖这两个硬主题的安装程序插件。

如果您仍然不确定并决定使用此方法,请从服务器上向您的域请求证书以进行解析,请安装Docker,然后发出类似以下命令的命令。如果您将Certbot与Standalone插件一起使用,则需要通过从命令行外部在certbot / certbot之前在命令行中包含-p 80:80或-p 443:443之类的名称,使其可从容器外部访问。

sudo docker run -it --rm --name certbot \ -v" / etc / letsencrypt:/ etc / letsencrypt" \ -v" / var / lib / letsencrypt:/ var / lib / letsencrypt" \ certbot / certbot certonly

使用certonly命令运行Certbot将获得证书并将其放在系统上的目录/ etc / letsencrypt / live中。由于Certonly无法从Docker内部安装证书,因此您必须按照Web服务器提供商建议的过程手动安装证书。

https://hub.docker.com/u/certbot上还提供了每个Certbot的DNS插件的Docker映像,这些映像可自动为受欢迎的提供商进行DNS域名验证。要使用一个,只需将上面命令中的certbot / certbot替换为您要使用的映像名称即可。例如,要使用Certbot的Amazon Route 53插件,您可以使用certbot / dns-route53。您可能还需要向Certbot添加标志和/或装入其他目录,以提供对DNS插件文档中指定的DNS API凭据的访问。

尽管Certbot团队试图使各种操作系统提供的Certbot软件包在最基本的意义上运行,但由于发行策略和/或发行维护者的资源有限,Certbot OS软件包通常存在其他发行机制无法解决的问题。与Certbot的新版本相比,该软件包通常较旧,导致缺少错误修正和功能,并且TLS配置更差。他们也可能没有为您配置证书续订,或者没有提供所有Certbot的插件。由于这些原因,建议大多数用户遵循https://certbot.eff.org/instructions上的说明,此处仅记录了OS软件包作为替代。

如果您运行Debian Buster或Debian testing / Sid,则可以通过以下命令轻松安装certbotpackage:

如果您运行Debian Stretch,我们建议您使用Debianbackports仓库中的软件包。首先,您必须按照https://backports.debian.org/Instructions/上的说明进行操作,以启用Stretch backports存储库(如果尚未启用)。然后运行:

在所有这些情况下,还可以使用软件包来帮助Certbot与Apache,nginx或各种DNS服务集成。如果您使用的是Apache或nginx,我们强烈建议您安装python-certbot-apache或python-certbot-nginx软件包,以便Certbot可以完全自动化服务器的HTTPS配置。这些软件包的完整列表可以通过以下命令找到:

可以通过运行上面相同的安装命令,但将certbot替换为所需软件包的名称来安装它们。

Gentoo Portage中提供了Certbot的官方客户端。从官方的Certbot插件中,Portage也提供了其中的三个插件。如果需要它们的功能,则需要单独安装它们。

app-crypt / certbot-dns-nsone软件包的维护程序与其他软件包不同,并且版本可能会滞后。

操作系统打包是一项持续的工作。如果您希望packageCertbot供您选择发行,请参阅《包装指南》。

我们曾经有一个名为certbot-auto的Shell脚本来帮助人们在UNIX操作系统上安装Certbot,但是,该脚本不再受支持。如果要卸载certbot-auto,可以按照此处的说明进行操作。

当在内存不足的系统(例如VPS)上使用certbot-auto时,其内存少于512MB,可能无法建立所需的Certbot依赖项。如果pip输出包含类似内部编译器错误的内容,则可以确定:Killed(程序cc1)。您可以通过创建临时交换文件来解决此限制:

user @ webserver:〜$ sudo fallocate -l 1G / tmp / swapfileuser @ webserver:〜$ sudo chmod 600 / tmp / swapfileuser @ webserver:〜$ sudo mkswap / tmp / swapfileuser @ webserver:〜$ sudo swapon / tmp / swapfile

仅开发人员支持从源代码安装,并且《开发人员指南》中描述了整个过程。

请不要使用python certbot / setup.py install,python pip install certbot或easy_install certbot。 请不要以超级用户/ root和/或没有虚拟环境的方式尝试安装命令,例如 sudo python certbot / setup.py安装,sudo pip安装,sudo ./venv/bin /...。这些操作模式可能会破坏您的操作系统,因此Certbot团队不支持!