Certbot: 为 Ubuntu letencrypt 包创建官方 PPA

创建于 2015-12-04  ·  144评论  ·  资料来源: certbot/certbot

如果有一个用于letsencrypt 软件包的官方Ubuntu PPA ,那就太棒了。

debian / ubuntu pkging soccer ball

最有用的评论

JFTR ppa:certbot/certbot现在包含可以谨慎使用的包。 请暂时在这里报告任何破损。

所有144条评论

:+1:

:+1:

:竖起大拇指:

:+1:

漂亮吗?

是的,请!

是的,请。

+1

+1

+1

letsencrypt-auto上花费了大量精力,而这里没有。 这是怎么回事? 我觉得这种情况非常尴尬,因为letsencrypt-auto本来是我们打包之前的临时解决方案。 @hlieberman@fmarier在 debs 上投入了大量时间,我们现在正在浪费时间在一些自制的“自动魔法”脚本上,这些脚本试图基本上取代所有的包装解决方案(尽管付出了巨大的努力,但在它)。 有很多抱怨客户是多么可笑地复杂,我认为很明显应该减少事情而不是无限扩展。

@pde - 请在上面澄清并在 PPA 上提供 ETA。

对于最新版本的 Ubuntu,Debian 不稳定中的包应该可以正常工作。 一旦我们将软件包向后移植到 Debian jessie,让它在 Ubuntu 14.04 中工作应该会更容易。

这当然也需要打包一些依赖库。

+1 为 PPA 提供更传统/标准化的安装未打包软件的方式。

上周我们从 Harlan 那里得到的更新是,各种 debian 维护者在向后移植我们所有的 python 依赖项方面做得很好,但是对于 doc 包,出色的拦截器是sphinx-doc ,这将是一个不平凡的事业。 不确定 PPA 是否有显着不同或更容易。

不能为 PPA 包暂时禁用 Sphinx 文档构建吗? 作为用户,我完全可以不必上网查看文档(实际上我更喜欢这样做而不是阅读 /usr/share/doc/ 中的本地 HTML 文件)。

如果它只是文档的sphinx-doc构建,那么问题出在哪里?

  • 提供 2 个包裹letsencryptletsencrypt-doc
  • letsencrypt_x.y.deb提供一个人letsencrypt.1 letsencrypt_x.y.deb
  • 将文档预构建为 HTML
    并打包成letsencrypt-doc_x.y.deb

原因:
自动构建文档很好,但它是可选的
删除sphinx-doc以构建文档不会阻止letsencrypt
构建、安装和运行这是每个人都想要的

@zwetan将应用程序和文档的

xenial已经有letsencrypt(16.04 即将推出): http ://packages.ubuntu.com/xenial/letsencrypt

那里的文档似乎是可选的。

我的观点完全正确,生产中的某些服务器仅使用 LTS -> 安全补丁 -> 下一个 LTS
必须等待 16.04 LTS,当 14.04 LTS 可能已经有 deb 包时
仅仅是因为文档构建有问题吗? 来吧:)

最近的更新是 sphinx backport 为 Debian 8 解封了打包,不久之后就会有 PPA。

@zwetan :+1:我不能使用letsencrypt,因为我使用的是 14.04 并且没有 14.04 的官方存储库

:+1:

:+1:

+1 我这辈子再也不会运行letsencrypt-auto了....

我为 Ubuntu Wily 创建了一个 PPA。 使用风险自负; 目前它在很大程度上未经测试。

https://launchpad.net/~letsencrypt/+archive/ubuntu/letsencrypt

@hlieberman可以在 14.0.4 别名 TrustyThar 上运行该软件包还是可以拒绝?

只是一个提示,PPA 不会为 /etc 和 /opt 中的配置创建目录

现在 letencrypt-auto 因依赖问题(urllib3,acme)而失败。 考虑到它解决的问题,这应该是一个简单的过程。 你不想花几个小时与依赖等争论,让它感觉脆弱。

(PS:PPA 不适用于 14.04)

来自我对 Ubuntu 14.04.5 LTS 的最新测试
忽略 PPA 更简单

只需进行“手动”安装

git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
/opt/letsencrypt/letsencrypt-auto --help

(第二行是强制安装依赖)
这在十几台服务器上对我来说效果很好

一个额外的建议:如果你对相对较多的依赖项感到不舒服,只需创建一个小的 lxc 实例(目前大小约为 350MB)并按照上述手动安装:
lxc-create -n letsencrypt -t ubuntu

为了使用主机上的证书并允许进行自动化测试,只需将两个绑定安装添加到您的配置中,如下所示(这个想法是外部 Web 服务器——无论是在主机上还是在另一个容器中——将需要照顾这个):
lxc.mount.entry = /var/www/letsencrypt var/www/letsencrypt none bind 0 0
lxc.mount.entry = /etc/letsencrypt etc/letsencrypt none bind 0 0

(当然,你需要从_letsencrypt_容器外部触发同步续费/web服务器服务重启,不过还是挺方便的……)

我个人不介意依赖关系

我真正需要的是自动化,以便我可以添加配置脚本
知道我是否想在服务器上添加 Let's Encrypt 支持
它会工作,经过测试,大约需要 1000 万才能设置

大量的依赖对我来说是一个问题,因为我的资源有限。

如果对容器感兴趣,我可以将一个 Docker 容器放在一起,它可以非常快速地完成这项工作。 在 Docker 集线器上似乎有一些针对此的工作,但它似乎已被废弃/陈旧。

这意味着生成证书就像docker run -v/etc/letsencrypt:/etc/letsencrypt -p80:80 -p443:443 letsencrypt <FQDN>一样简单。

编辑:大家都在这里。 https://hub.docker.com/r/samyaple/certbot/
包括基本映像在内,它会减少大约 250MB。 我现在正在努力减少这种足迹。 这只是几分钟内的粗略实施。 构建是自动化的,因此您可以准确地看到正在构建的内容,这没什么可笑的。

如果需要的话,我非常乐意在 letencrypt 旗帜下支持这一点。

:+1:

对于那些感兴趣的人,我有一个 Ansible 角色,可以为我的 Ubuntu 站点自动安装证书。 目前非常有限,只是为了我需要的功能,如果有人也想使用它,欢迎公关。

该角色使用来自 git 的官方客户端,并以certonly模式进行证书安装/更新。

https://galaxy.ansible.com/jaywink/letsencrypt/

在回购移动后重新分配 harlan 将他移除。 这仍然很重要,但现在比在我们已经打包的地方重命名 letencrypt -> certbot 的优先级要低。

👍

+1

+1

+1

+1

将 PPA 更新为最新版本会很好。 它落后了 - 似乎仍在 0.4.1 上: https :

@larssn这不是 PPA - 那是 Ubuntu 存储库中的包。 两个考虑因素:首先,需要通过 SRU 流程 [1] 来将软件包更新添加到 Ubuntu 版本中。 其次,该软件包位于“universe”中,因此不受 Ubuntu/Canonical 的正式支持。

[1] https://wiki.ubuntu.com/StableReleaseUpdates

(编辑:添加网址)

知道了。

任何状况之下; 仍然希望更新。 :)

伙计们,这不是“官方”存储库,但我确实在家作为 Debian 开发人员和 Ubuntu 成员(并且我的 PHP PPA 被数千人使用),所以我为 certbot 0.8.x 创建了 PPA。 它目前仅从 Xenial 构建,但如果我有时间,我可能会考虑将更多的堆栈向后移植到 Trusty。

PPA 在这里: https :

刚刚在 ubuntu 16.04 上测试过,效果很好,已经将你的东西用于 php、apache 和 mysql

@oerdnj你又一次拯救了我的一天。 非常感谢你的工作!

@oerdnj你认为你的 PPA 足够可靠,我们应该考虑在我们的指令生成器中指向它吗?

关于 Trusty:我相信 harlan 开始有点害怕需要为 Trusty 构建的依赖集来获得可靠的 PPA。 但@jonathonf似乎在这方面取得了一些进展,所以这可能是一个容易处理的问题。

@pde它很稳定。 我有时会很忙,有人可能会 ping 我或在我的 gh 跟踪器上填写问题: https :

但我倾向于在数小时内发布和修复关键的东西,而在几周内发布和修复不太重要的东西。

十月份我会参加一些会议,我通常会用包装来填补空闲时间,所以我可能能够完成 Trusty 包装。 当然,如果我已经有这方面的工作,我很乐意接受提示/补丁/帮助。

作为替代方案,我很乐意在启动板上创建一个“官方”打包组,并邀请更多人加入并添加来自 LE 的某个人作为管理员。

Debian 打包团队做得很好,所以对于 Xenial 来说,它主要只是向后移植/重新打包现有的包。 对于 Trusty,它可能需要更多修改,但我还没有看过。

作为记录,我在trusty上使用

@pdehttps://launchpad.net/~letsencrypt ,它似乎被放弃了。 也许 LE 可以要求 Canonical 授予 LE 管理员访问此启动板团队的权限,然后添加我和@jonathonf ,我们将在此命名空间下为 certbot 创建一个官方存储库? 似乎是结合努力的最佳方法。

@oerdnj Letencrypt 下的 certbot 存储库会很好。 就我个人而言,我总是去寻找letsencrypt包,如果我无法通过搜索 letencrypt 找到 ti,我会感到困惑。

我已授予@oerdnj对 ~letsencrypt 组织的所有权。

如果 Letsencrypt 的某人想加入组织并成为所有者,请 ping 我。

我现在已经将我的certbot包复制到ppa:letsencrypt/letsencrypt吗? 我将查看@jonathonf trusty存储库,以检查需要为 Ubuntu Trusty

@floe这是https://launchpad.net/~jonathonf/+archive/ubuntu/letsencrypt您正在使用的正确 Trusty 存储库吗?

是的,这是正确的。 从我的sources.list

deb http://ppa.launchpad.net/jonathonf/letsencrypt/ubuntu trusty main

如果我们要进行正式Certbot PPA,我认为我们应该将它设置在https://launchpad.net/~certbot不再代替〜letsencrypt由于Certbot是一个让我们加密项目(来源1源2 )。 〜certbot由@hlieberman谁是我们的Debian软件包维护者拥有。

ppa:letsencrypt/certbot会更好吗? 我可以接受或转移到@hlieberman ~certbot。 如果不需要,我什至可以不做任何工作。 让我们就一些事情达成一致并继续前进,所以有一个官方存储库。

我同意拥有官方的 Certbot PPA 对用户来说是一个巨大的好处。 我们究竟想要如何做到这一点是核心 certbot 开发人员应该讨论的问题。 我们每周三开会。 届时我会提出这个问题,并在会议结束后回复你们。

@bmw @oerdnj @ArchimedesPi我认为正确的做法可能是减少ppa:letsencrypt ,理想情况下是让启动板将其重定向到certbot ,但如果有必要可以通过其他方式?

@oerdnj很高兴再次在这里见到你 :) 实际上,我只是在向后移植到

@oerdnj @pde @bmw除了 PPA 命名问题之外,谁还从 Debian 干净地向后移植到可信赖的? 因为我们的 PHP5 应用程序也确实需要 LE,所以哪里是同步我们努力的最佳地点? ;)

Debian 将他们的 0.8.1 软件包向后移植到 jessie-backports,因此从那里到 xenial 有一个非常干净的向后移植。 降低pyopensslpython-cryptography Debian 软件包中的 deps 意味着python-acmepython-certbot将向后移植而无需任何其他东西。 但是,如果您正在这样做,您最好只向后移植 yakkety 包。

Trusty 仍然需要python-acme包的补丁 - 其他所有内容都可以针对(主要是)jessie-backport 版本构建。 仍然有大量更新的依赖库包可能会产生什么连锁反应。

@-all 使用ppa:jonathonf/letsencrypt :这将很快消失,以支持基于 jessie-backport Debian 软件包的ppa:jonathonf/certbot中的更清洁的 backport。 我也可能会稍微重新调整那个较新的 PPA 以清洁上述 xenial 后端口。

编辑:我的certbot PPA 从 Jessie 引入了一些额外的 Python 库 - 这使得直接从 Sid 向后移植更容易,但代价是偏离了 Trusty Python 堆栈。 如果库无论如何都在universe ,这不是一个大问题。

@jonathonftrusty 上提供有关“python-acme”补丁的更多提示? 对于连锁效应,我将在将其投入生产时有一个稳定阶段,当然我们总是需要破坏开发服务器 ;) 我如何帮助您处理可信赖的软件包或谁在处理它?

@jonathonf当从ppa:jonathonf/certbot测试您的可信赖包时,我得到:
pkg_resources.DistributionNotFound: The 'python2-pythondialog>=3.2.2rc1' distribution was not found and is required by certbot
但是对于客户端现在工作的依赖项,快速无源更改向后移植: https :

@all :对于干净的向后移植,python 依赖项是一个很大的麻烦,因为我们需要升级发行版附带的几个 Python 包。 这可能会破坏具有相同依赖项的其他 Python 工具,并使维护负担成为一个小小的安全噩梦,因为 PPA 需要为所有向后移植的依赖项提供每个安全更新。 对于运送可信赖的包裹来说,这是一个重要的问题! 即使您从 xenial 或 jessie 构建向后移植管道,我们也始终需要与安全团队保持同步……而我们在发行版中弄乱了 Python 堆栈 ;) 你怎么看?

嗯。 您能否在 certbot 包中本地访问所需版本的依赖项?

@bhat3 :如果您在 debian.tar.gz 中查找python-acme您会找到被子补丁。 我很确定我是从这个线程的前面得到的,但我刚刚快速扫描后没有看到它。

@jonathonf我今天试着看看包装,但不能保证有时间。 除了您的补丁之外,您认为 trusty 的最小依赖项是什么,因此我们不需要那么多与 trusty 的 Python 堆栈的混乱?
@oerdnj知道您与安全人员非常同步,您是否有兴趣通过 PPA 提供可信赖的软件包?

这取决于你想做多少包装。 我原来的letsencrypt PPA 中的 deps 是我所能得到的最小的,但使从 Debian 进一步向后移植变得更加困难。 我的certbot PPA 中的向后移植 deps 数量更多/范围更广,但使直接向后移植更容易。

如果 Python 库在universe我们就不必担心 - 核心 Ubuntu 堆栈中没有任何东西依赖于universe任何东西(并且universe中的包不是无论如何,更新都是理所当然的,即使是出于安全问题)。

@jonathonf很好地考虑了 Ubuntu 中的“宇宙”角落案例;) 实际上,我昨天无法继续努力,本周也没有机会了:( 但我希望在星期一或 11 月 7 日之后这样做。直到那时:)

我们从第一次创建这个问题已经快一年了,仍然没有就任何事情达成一致?

我们可以在这里获得一些动力吗? 一种或另一种方式。

https://launchpad.net/~jonathonf/+archive/ubuntu/certbot是否像我们将要获得的那样正式?

@jonathonf和所有-我@hlieberman在联手PPA:certbot / certbot ,我想我有大多数编译DEPS为值得信赖的,xenial和yakkety。 唯一缺少的是最近的狮身人面像,我希望会有一些解决方法。

@oerdnj可以使用了吗?
尝试添加时出现“错误:签名密钥指纹不存在”。

抱歉还没有,但它会在 ~ 周内完成。 我明天要去 IETF,我会在那里有一些空闲时间来完成它。

如果它只是作为 builddep,我有一个可以添加的 Sphinx backport PPA
作为 PPA 依赖项。 您可以使用它,将软件包复制到“支持”
PPA,或向后移植同一组软件包。

J

2016 年 11 月 9 日 12:39,“Ondřej Surý”通知@github.com 写道:

@jonathonf https://github.com/jonathonf和所有 - 我与
@hlieberman https://github.com/hliebermanppa:certbot/certbot和我
我认为我拥有大部分的构建 deps,用于 trusty、xenial 和 yakkety。 这
唯一缺少的是最近的狮身人面像,我希望会有一些
解决方法。


你收到这个是因为你被提到了。
直接回复本邮件,在GitHub上查看
https://github.com/certbot/certbot/issues/1706#issuecomment -259405442,
或静音线程
https://github.com/notifications/unsubscribe-auth/AAiJCY1dmSHhspzOgNcT8tQu4XigyNJdks5q8b7ygaJpZM4Guho5
.

@oerdnj @jonathonf @hlieberman
感谢您在这方面所做的工作。

我想我们都可以再等一周。

@oerdnj @jonathonf在我的工作时间内,有什么我可以帮助您处理可信赖的向后移植的吗?

@bhat3如果您可以对ppa:certbot/certbot的内容进行广泛的测试,那就太棒

JFTR ppa:certbot/certbot现在包含可以谨慎使用的包。 请暂时在这里报告任何破损。

@oerdnj Okay 会这样做,并用ppa:certbot/certbot替换我们开发服务器上我自己的包装。 但是除了标准的 Debian/Ubuntu 工具之外,我们不使用 Python 而是使用您的 PHP,所以我无法强调这些损坏;)

在 Ubuntu-16.04-xeinal 上,我被困在 0.4.1 上,它无法更新并出现以下错误:

警告:letsencrypt.cli :尝试从 /etc/letsencrypt/renewal/gableroux.com.conf 更新证书产生了意外错误:“服务器”。 跳过。

升级后,renews 现在又可以工作了,谢谢! :D

python -mplatform

Linux-3.11.0-12-generic-x86_64-with-Ubuntu-16.04-xenial

letsencrypt --version

让加密 0.4.1

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install --upgrade letsencrypt
letsencrypt --version

让加密 0.9.3

letsencrypt renew --agree-tos 

恭喜,所有更新成功。

:心:

@oerdnj到目前为止,它在我使用的开发服务器上看起来不错@jonathonf的可信赖包加上一个自己的

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  certbot letsencrypt python-acme python-certbot python-cffi-backend
  python-configargparse python-cryptography python-dialog python-dnspython
  python-idna python-ipaddress python-ndg-httpsclient python-openssl
  python-parsedatetime python-pkg-resources python-pyasn1 python-requests
  python-rfc3339 python-setuptools python-six python-urllib3
21 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,410 kB of archives.
After this operation, 398 kB of additional disk space will be used.
Do you want to continue? [Y/n]

我成功地更新了一个包含 99 个子域的预先创建的 LE 证书,并且效果很好。 明天将进行更多测试......

如前所述,我对完全成熟的依赖项向后移植有点怀疑,因为 LE 已经在同一个系统上工作,而没有升级整个依赖链;) 否则我很高兴最终“主线”我们的系统:)

顺便说一句,如果您将 certbot/certbot PPA 重命名为默认名称(certbot/ppa),则用户可以使用该名称的缩写版本,即:

sudo add-apt-repository ppa:certbot

@oerdnj

/usr/bin/letsencrypt certonly --force-renewal --webroot -w /var/www/letsencrypt -d DOMAIN.TLD
An unexpected error occurred:
Bug in pythondialog: expected an empty output from u'infobox', but got: u'Error opening terminal: unknown.\n'Please see the logfile 'certbot.log' for more details.

当我记录该续订脚本的每个输出并在其中收到邮件通知时,我找不到 certbot.log 并且无法真正调试它。 你对此有什么提示吗?

@bhat3如果您从 cron 脚本调用 certbot,您应该使用--noninteractive--quiet (这意味着--noninteractive )。

(我会在 /var/log/ 中寻找certbot.log ,也许在 /var/log/letsencrypt/ 中?TBH 我只有letsencrypt.log 在那里;certbot.log 看起来像一些新的东西。)

certbot 不会更新尝试更新所有内容吗? 我运行它,它做到了

@bhat3是包提供的默认 cronjob 吗?

@oerdnj不,那是自己的,并且在使用@jonathonf的包之前不需要--noninteractive开关。 这个自己cronjob的原因是,如果更新成功,我们需要重新启动Nginx,并且这种事情必须在固定的时间范围内发生。 最后一个要求可以在 /etc/cron.d/certbot 中完成,但不确定与nginx -t && systemctl restart nginx的交互。

@chrismccoy续订后如何重新启动网络服务器?

@mgedmin Thx,它与开关一起工作。 但我仍然很好奇 certbot.log 是否只是一个品牌问题,而 /var/log/letsencrypt/letsencrypt.log 就是这个意思,它似乎不是在没有开关的情况下创建的。

/usr/bin/letsencrypt certonly --noninteractive --force-renewal --webroot -w /var/www/letsencrypt -d DOMAIN.TLD
Saving debug log to /var/log/letsencrypt/letsencrypt.log

看看新的裁剪作业,它有钩子目录

@oerdnj你的意思是我可以在成功续订后做一个钩子,然后照顾 Nginx?

certbot renew调用现在包括: /usr/bin/certbot -q renew --pre-hook '/bin/run-parts /etc/letsencrypt/pre-hook.d/' --post-hook '/bin/run-parts /etc/letsencrypt/post-hook.d/' --renew-hook '/bin/run-parts /etc/letsencrypt/renew-hook.d/'

我刚刚向@hlieberman发送了 Debian 错误补丁#838548

# cat /etc/letsencrypt/post-renewal.d/nginx 
#!/bin/sh
set -e
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
nginx -t -q && nginx -s reload
exit 0

@oerdnj ,我们特别要求@hlieberman不要在 Debian 中添加这样的目录,以支持我们开发上游解决方案,所有发行版都可以从中受益。 您如何看待删除这些目录并等待我们的解决方案?

PPA中的certbot打包版本有apache配置插件吗? 我注意到它没有像 Universe 那样与 python-letsencrypt-apache 等效的包。

我已经让 Certbot/Letsencrypt 与 Universe 的版本一起工作,但是当我使用 PPA 升级时,我会收到有关 apache 插件的错误。 例如

$ sudo certbot renew --dry-run
Saving debug log to /var/log/letsencrypt/letsencrypt.log

-------------------------------------------------------------------------------
Processing /etc/letsencrypt/renewal/XXXXXX.conf
-------------------------------------------------------------------------------
Renewal configuration file /etc/letsencrypt/renewal/XXXXXX.conf produced an unexpected error: 'Namespace' object has no attribute 'apache_enmod'. Skipping.
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates below have not been saved.)

No renewals were attempted.

Additionally, the following renewal configuration files were invalid: 
  /etc/letsencrypt/renewal/XXXXXXXXX.conf (parsefail)
** DRY RUN: simulating 'certbot renew' close to cert expiry
**          (The test certificates above have not been saved.)
0 renew failure(s), 1 parse failure(s)

$ sudo certbot --apache
The requested apache plugin does not appear to be installed

我试过删除配置文件(重命名为 /etc/letscrypt),但没有任何改进。 幸运的是,降级到 0.4.1 很简单。

@bmw老实说,我实际上欢迎这里的 Debian 集成,并希望从我们自己的 cron'ed BASH 脚本中整合到它。 作为上游和发行版不可知的解决方案,您想做什么......交付需要多长时间?

关于更新和使用证书与服务所需的交互,公开的解决方案是如此可怕,我真的很喜欢@oerdnj等人提供了一个理智的解决方案,我们现在可以在 Debian 发行版上标准化:+1:

@bmw我完全不同意。 Debian 正在进入冻结期,如果您不希望每个人在接下来的 2 年以上都编写自己的脚本,那么 Debian 集成是您现在可以得到的最好的东西,因为它处于控制之中,并且何时(并且如果)你提供了一个官方的运行部件等价物,那么迁移将相当容易。

也许我在这个领域呆得太久了,但等待一个完美的解决方案通常只会导致灾难,因为人们会开始有创造力。

如果@hliebermanrun-parts解决方案集成到主要的 Debian 软件包中,我将非常感激,因为它现在为 Debian 伸展提供了一个有效的解决方案,并且以 Debian 内部工作的方式很好地集成。

@oerdnj ,两点:

  1. 由于我们控制上游并且有一个很好的管道从我们的发布到unstabletesting ,我们觉得有时间在上游 Certbot 中打一个补丁,它适用于 Debian 和大多数/所有其他发行版, 并将其导入 Debian。 如果您愿意,这很容易在二月冻结之前发生; 只需向我们发送 PR 或鼓励@hlieberman这样做:)
  2. 我们就如何应对拉伸冻结进行了很多讨论。 我们认为 Certbot 还不够成熟,可以在人们似乎试图为 Debian 稳定版本强制执行的 5 年多时间里固定在给定版本上。 我们仍在努力解决这个问题。 在 Ubuntu 上,我们正在通过 SRU 流程将更新的 Certbot 版本引入 Xenial LTS,但我们并不乐观,Debian 会将它们用于扩展。 我们目前的计划是让 debian-devel 列表在 (1) 承诺每约 6 个月接受一个经过良好测试的 Certbot 版本到 Stretch 更新中进行选择; (2) 要求 Debian 不要在稳定版本中发布 Certbot,而是依靠向我们的用户提供反向移植说明,这就是我们现在对 Jessie 所做的,我们觉得它相当理智。
  3. 如果您愿意,欢迎您加入我们每周的 Certbot 开发者电话会议,与我们讨论这些问题! 我认为 Brad 向您发送了邀请,但如果没有,请使用 lmk,我们会解决这个问题。

@pde好的,有道理。 我会尽量留出一些空闲时间来编写类似于run-parts ,但使用原生 python 代码。

是的,我收到了邀请(我会在 Freenode 上与您联系以了解确切时间)。 我不能承诺超出这个特定问题的任何事情,因为在日/周/月/年中只有有限的时间:)

编辑:也许这是我内部的 IETF 经验,但实际上我更喜欢运行代码而不是说话:)。 如果我只有更多的时间来生成更多的运行代码。

如果也可以添加 apache 插件就好了:)

您好,只是想看看我们什么时候可以看到 PPA? 我即将在短期内安装 certbot-auto,以帮助我们完成自首次使用 Lets Encrypt 以来即将进行的首次更新。 欢呼并感谢你们为把这件事聚在一起所做的工作。

@jesseiqmi你已经可以

sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install --upgrade letsencrypt
letsencrypt --version

我也在生产中使用它,但仍然没有适当的更新集成,但我的生产测试了自制脚本。 但我至少建议您在接触生产之前始终在开发和登台系统上测试新版本。 您可以通过仅使用apt-mark hold PKGNAME来保持 KISS 的精益,在生产中禁用 PPA,直到下一次测试在登台时通过,或者使用自己的 PPA 在 QA 链中的系统之间转发包。

PPA 似乎不包含任何插件,例如 certbot-apache。 安装这些的正确步骤是什么?

@oerdnj 有任何更新,或者您需要帮助的事情吗?

@pde如果您知道如何使用 sphinx-build 1.2.2 修复文档,它可能会有所帮助: https : //launchpadlibrarian.net/301768953/buildlog_ubuntu-trusty-i386.python-certbot-nginx_0.9.3-1+certbot ~trusty+2_BUILDING.txt.gz

这似乎是certbot_nginx/nginxparser.py一个代码错误,与 Sphinx 无关(除了 Sphinx 尝试导入模块用于自动文档目的,但由于该错误而失败)。

AFAICS pyparsing 希望您使用... + restOfLine而不是... + restOfLine()

@mgedmin谢谢,我会尝试在包中修补它并提交为https://github.com/certbot/certbot/pull/3989

好的,所以 PPA 现在包含 apache 和 nginx 插件。 谢谢你的戳。

感谢您在@oerdnj 所做的所有工作! 您认为 PPA 是否可以开始向普通 Certbot 用户推荐它?

@bmw我相信是这样。 好吧,除了我在存储库中仍然有rundirs hack 的问题之外,我不想放手 - 但是一旦该功能到达上游 certbot,我很乐意准备一个稳定的迁移路径。

@oerdnj是的! 希望最终巩固rundirs “hack”,而无需稍后分叉 PPA:+1:
@bmw我可以理解您对上游 Python 方法的需求,但这里是关于 Debian 软件包的,对吗?! ;)

很抱歉在这里发布我的问题,因为有很多订阅这个问题,但我在其他地方找不到好的答案,所以这里是:

Ubuntu 16.04.2
使用apt install letsencrypt安装软件包
letsencrypt --version给了我0.4.1但是当从git安装时我得到0.12.0 - 那么 Ubuntu 什么时候更新包,或者0.4.1只是0.12.0的 Ubuntu 版本?

Ubuntu 从不更新已发布版本中的软件包(除非他们需要修复严重的错误——请参阅他们的稳定发布更新政策)。

Ubuntu 将在通过 SRU 过程时更新 16.04 的软件包。 Ubuntu 包未链接到 git 存储库。

您最好使用 PPA,然后apt-get install letsencrypt将安装最新的打包版本。

除非你想要最新的 git 版本,在这种情况下做你所做的。

@jonathonf我在这个问题中安装了 PPA,但没有区别。 :/

我想你没有。 ;)

试试这个: https :

@jonathonf 太棒了! 错过了。

那么,这会保持吗? 我注意到它是“半官方的”。 另外,这会安装所有需要的依赖项吗? 在我看来,Git 版本安装了更多的包...

大家好,我可以使用引用的 PPA https://launchpad.net/~certbot/+archive/ubuntu/certbot
?

它是安全、可靠和更新的吗?

对于所有 PPA,这是您的决定。

然而, @oerdnj是一个 Debian 打包程序,并且已经在其他用于 Ubuntu 的 PPA 中做了大量工作(例如他非常有用的 PHP PPA)。

如果你信任他,你就可以信任他的 PPA。

在我看来,Git 版本安装了更多的包...

git 版本设置了一个 Python virtualenv 来构建软件并在本地安装所有相关的依赖项。 PPA 在幕后执行此操作,因此最终结果包较少。

此 PPA已准备就绪! 我们将更新 certbot.eff.org 以告诉人们通过certbot-auto或当前的 Ubuntu 软件包使用它(请参阅 certbot/website#198)。 我们终于可以关闭这个问题了。

@hlieberman , @oerdnj :你能从 PPA 的标题中删除“(半官方)”吗?

是否有机会将 PPA 重命名为ppa以便人们可以运行sudo add-apt-repository ppa:certbot而不是sudo add-apt-repository ppa:certbot/certbot ? 此评论中提到了这一点: https :

PPA 何时更新? 版本 12 已发布 13 天。

我很确定你需要一个 ppa 的前缀,这样它也知道它属于哪个用户和存储库,否则它不知道要选择该用户名中的哪个存储库,我可能错了,其他人可以加入所有 ppa 我使用 none 只有一个前缀。

从我的iPhone发送

2017 年 3 月 15 日下午 5:18,Geoffrey Fairchild [email protected]写道:

我喜欢@elyscape的建议。


你收到这个是因为你被提到了。
直接回复此邮件,在 GitHub 上查看,或将线程静音。

@elyscape这将迫使所有已经在使用 ppa 的人为了美观而改变他们的配置,很抱歉,不,这不是现阶段的选择。

@chrismccoy ,如果您仅为 PPA 指定用户,则ppa是假定的存储库。

user@ubuntu-device:~$ sudo add-apt-repository ppa:certbot
Cannot add PPA: 'ppa:~certbot/ubuntu/ppa'.
The team named '~certbot' has no PPA named 'ubuntu/ppa'
Please choose from the following available PPAs:
 * 'certbot':  Certbot PPA (semi-official)
 * 'certbot-build':  Certbot Build PPA (don't use this, use ppa:certbot/certbot)

在我写这篇文章的时候, @oerdnj回复了,所以无论如何现在这一点没有实际意义:)

正如@elyscape所说,可以使用缩短的apt-add-repository命令添加一个名为“ppa”的 PPA,但这实际上只是自行车脱落。 它是 certbot 项目的 certbot PPA,额外的 9 个字符并不繁重。

在更新方面,0.12 还没有登陆 Debian(甚至没有 sid 或实验性)。 一旦它已经并经过适当的争论,它应该进入 PPA:

这是由 Debian Let's Encrypt Team 准备并为 Ubuntu 反向移植的软件包的 PPA。

我假设您想要部署一个经过测试的工作包? :)

- 编辑
打字时还有两个更新……嗯,我还是要发帖。 :P

@enoch85你有什么

我通常遵循@hlieberman工作流程,他显然还没有时间更新 Debian 软件包,我不想踩到他的脚趾。

如果这会给使用此 PPA 的更多人带来问题,我可以在 0.11.1 之上从 #4243 中提取补丁,但我并没有真正遵循这个“新版本只是为了新版本”的世界观。

@bmw “(半官方)”已删除。 如果您对标题或描述有任何其他建议,我很乐意更改。

@oerdnj不,还没有,但可能很快,因为我从 12 的 git 版本转换为这个 PPA 并且我收到关于 12 生成的证书的警告。更新会很棒。 和往常一样,你摇滚!

从启动板维护者那里获得更新通常需要多长时间,我看到启动板上的 certbot/certbot 是 0.11.1,而 0.12 在 github.com 上

@chrismccoy阅读 PPA 维护者的评论,从您的三个评论中回复,即https://github.com/certbot/certbot/issues/1706#issuecomment -286890691。

@oerdnj我最终来到这里是因为 #4233。 我只是一个人,这是一个简单的个人项目,但我期待 0.12 版本。

在本期的 PPA 中尝试使用 Certbot 12 安装新证书时获得此信息。 不知道这是 Let's Encrypt 的错误还是 PPA 的问题。 也在此处报告: https :

tls-sni-01 challenge for cloud.domin.com
/usr/lib/python2.7/dist-packages/OpenSSL/rand.py:58: UserWarning: implicit cast from 'char *' to a different pointer type: will be forbidden in the future (check that the types are as you expect; use an explicit ffi.cast() if they are correct)
  result_code = _lib.RAND_bytes(result_buffer, num_bytes)
Waiting for verification...

我的证书生成正确,但我认为有人应该查看 python 警告消息。

@oerdnj很抱歉打扰您,但有什么办法可以让我了解新版本的包装吗? 即当一个新的包裹将/可能准备好时。

我正在等待新软件包 (v0.14.x),因此我可以使用 Cloudflare 和 DNS 身份验证自动更新证书。

@shaneog没有计划,因为它是在“现在有空闲时间”的基础上(除非存在严重错误)。 然而,更新到 0.14.1 似乎是一个简单的更新,所以我现在正在上传构建。

谢谢!

由于从 PPA 安装创建的 crontab 不再包含 /bin/run-parts 位,那么推荐的指定更新钩子的方法是什么?

现在,我只是将我的 /etc/cron.d/certbot 脚本改回几个月前@oerdnj 的版本(我使用的是 Ubuntu 16.04):

0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --pre-hook '/bin/run-parts /etc/letsencrypt/pre-hook.d/' --post-hook '/bin/run-parts /etc/letsencrypt/post-hook.d/' --renew-hook '/bin/run-parts /etc/letsencrypt/renew-hook.d/'

...并将我的钩子脚本放在这些目录中。 有没有更好的方法来解决这个问题?

这取决于你想完成什么。 有两个主要选项,但请务必阅读我放置在本文底部的警告

全局配置文件

通过在Certbot 的配置文件中包含钩子,您可以获得类似于run-parts解决方案的行为。 您在/etc/letsencrypt/cli.ini可能如下所示:

pre-hook = /bin/run-parts /etc/letsencrypt/pre-hook.d/
post-hook = /bin/run-parts /etc/letsencrypt/post-hook.d/
renew-hook = /bin/run-parts /etc/letsencrypt/renew-hook.d/

这与之前的 crontab 之间唯一的行为区别是这些钩子有时也会在使用其他 Certbot 子命令(例如certbot certonlycertbot runcertbot (没有子命令)获取证书时运行) 等。如果获得证书,pre 和 post 钩子将始终运行,而renew 钩子仅在现有路径上更新证书时才运行。

证书配置文件

另一种选择是为每个证书定义挂钩。 这允许您根据证书运行不同的挂钩。 获取证书时,用于获取该证书的挂钩存储在/etc/letsencrypt/renewal/domain.conf 。 当您运行certbot renew ,这些挂钩将在证书更新时自动再次运行。 您还可以使用与我上面包含的相同的语法,通过在[renewalparams]部分标题下放置钩子来手动编辑这些文件。

警告

  1. 这两个选项不兼容。 放置在全局配置文件中的钩子被视为与包含在命令行中的钩子相同,命令行会覆盖在证书的配置文件中找到的值。
  2. 无论您使用什么方法,请确保在编辑文件后运行certbot renew --dry-run以确保一切仍然正常工作。

完美,全局配置文件正是我需要的,谢谢!

那么续订钩子的实际状况如何呢? 奇怪,这怎么变得这么乱。 首先它是一个 cronjob 调用不同目录中的部分,然后是一个 cli 文件,现在我在全新安装时看到的只是目录,因为 cli 不再包含任何信息。
certbot dev 的任何人都可以请在其配置文件中放置明确的说明和说明吗? 这有多难? 例如,请检查他们如何为 CSF/LFD 做到这一点: https :

我同意这非常令人困惑,并且有大量相互矛盾或过时的信息。 我的理解是,当前的最佳做法是使用 certbot 命令行使用--deploy-hook (比--renew-hook更好),这会导致它将挂钩信息保存到 /etc 中的域/letsencrypt/renewal,所以钩子每次都会自动运行。 我认为这被认为是一种首选的解决方案,而不是直接编辑 /etc/letsencrypt/cli.ini,而且它还有一个优点,它可以让您对不同的证书有不同的挂钩。

这是我在上面找到的最好的信息: https :

我同意这非常令人困惑,并且有大量相互矛盾或过时的信息。

是的,令人困惑(!)......但您的链接也令人困惑,其内容不可靠......

大家好,可以请一些专家进行清理和总结吗? 表达“2020 年可靠总结”

嗯,关于这个问题的标题,“ PPA for UBUNTU”,总结在那里,看起来很完美!
https://certbot.eff.org/lets-encrypt/ubuntubionic-nginx

@oerdnj我很好奇现在在 repo 中获取更新的 certbot + dns 插件需要什么? 特别是因为 certbot 1.2 增加了对有限范围 Cloudflare DNS-01 令牌的支持,这与需要全局 API 密钥的旧方式相比是一个巨大的安全提升

https://github.com/certbot/certbot/milestone/81?closed=1

那么续订钩子的实际状况如何呢?

我不认为这是讨论这个问题的正确问题。 这个 _closed_ 问题是关于用于安装certbot工具的 apt 存储库 - 它似乎与您的查询完全无关。

那么续订钩子的实际状况如何呢?

我不认为这是讨论这个问题的正确问题。 这个 _closed_ 问题是关于用于安装certbot工具的 apt 存储库 - 它似乎与您的查询完全无关。

好吧,我只是继续 Drawcking 所问的问题,因为这个问题的答案在我的情况下实际上不起作用。 这与 ubuntu LE 软件包(不是最新的)有关。

此页面是否有帮助?
0 / 5 - 0 等级