在 Debian Jessie 上升级 certbot

在 Debian Jessie 上升级 certbot

您好,我有一台基于 Debian Jessie 的机器,运行 apache Web 服务器以及certbot 0.10.2.

由于此消息,我收到了:

自 2021 年 6 月 1 日起,您将无法再使用 ACMEv1 续订证书。您应该升级到 ACMEv2 兼容的客户端,否则证书颁发将失败。

我想升级到 certbot 的 ACMEv2 兼容版本。

到目前为止我所做的是:

echo 'deb http://archive.debian.org/debian jessie-backports main' > /etc/apt/sources.list.d/backport.list

echo 'Acquire::Check-Valid-Until no;' > /etc/apt/apt.conf.d/no-check

apt update

现在,据我所知,我应该能够运行:

apt-get install python-certbot-apache -t jessie-backports

并安装最新的反向移植版本,但由于我已经安装了 certbot,并且已经颁发了证书,因此我想升级而不是安装。

可以使用 来-only-upgrade对单个包执行某种操作backports,或者至少卸载旧版本的 certbot 而不删除已颁发的证书?

附:我见过类似sudo apt -t jessie-backports upgrade更新整个系统的东西,但我不知道是否可以在单个包上使用

预先非常感谢您。

答案1

感谢大家的支持。

我终于解决了这个问题,使用了不同的ACME客户端按照建议这里

即使安装证书的过程是很容易,我想分享一下我的步骤:

首先安装客户端:

wget -O -  https://get.acme.sh | sh -s [email protected]

安装完成后,必须关闭当前终端并重新打开才能使别名生效。

注意:安装还创建每日 cron 作业如果需要检查并更新证书,因此,如果您在 crontab 中安排了其他 certbot 任务,请将其删除。如果您没有任何 cronjobs,则意味着更新任务是自动执行的,因此,您有两个选择:

  • certbot delete交互式删除旧证书的问题
  • /etc/letsencrypt/renewal/example.com.conf如果您不想删除它,只需重命名该文件即可。

无论如何,仅在流程结束时、一切正常时才执行此操作。

因为我在阿帕奇服务器我需要2 个域(裸域和完整域)我已经使用了这样的 apache 模块:

acme.sh --issue --apache -d example.com -d www.example.com

如果一切顺利,这应该已经创建了证书(检查控制台中的当前路径)。

现在是时候安装证书了,所以我创建了一个文件夹来存储它:

mkdir -p /etc/apache2/certificates/example.com

然后我在以下行中添加了example.com-le-ssl.conf (先备份;-))以反映即将发生的变化,并删除了由 LetsEncrypt 创建的旧行:

SSLEngine on

SSLCertificateFile /etc/apache2/certificates/example.com/cert.pem
SSLCertificateChainFile  /etc/apache2/certificates/example.com/fullchain.pem
SSLCertificateKeyFile /etc/apache2/certificates/example.com/privkey.pem

SSLProtocol             all -SSLv2 -SSLv3
SSLCipherSuite          ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
SSLHonorCipherOrder     on
SSLCompression          off

SSLOptions +StrictRequire

最后我发出了安装证书并重新加载 apache 服务器的命令

acme.sh --install-cert -d example.com \
--cert-file /etc/apache2/certificates/example.com/cert.pem \
--key-file /etc/apache2/certificates/example.com/privkey.pem \
--fullchain-file /etc/apache2/certificates/example.com/fullchain.pem \
--reloadcmd "service apache2 force-reload"

答案2

该软件包python-certbot-apache不适用于 jessie-backports,您需要将 Debian 版本升级到 Stretch 或 Buster。

包搜索。

答案3

您尝试让 certbot-auto 工作:https://github.com/certbot/certbot/blob/master/certbot-auto

它也不再受支持,并且还需要对 Jessie 上的 python 依赖项进行一些修改,并注释掉脚本本身中的一些检查,但我在 Jessie 系统上成功使用了它,遗憾的是还无法升级:

wget https://raw.githubusercontent.com/certbot/certbot/1.11.x/certbot-auto
chmod +x certbot-auto

in 894 add:
DEPRECATED_OS=0

in 1753 change:
Bootstrap To BootstrapDebCommon

Run: NO_SELF_UPGRADE=1 ./certbot-auto

通过其完整路径而不是 certbot 和 envvar 调用 certbot-auto,也在您的更新 cron 中。

请注意,这是非常 hacky 的,如果依赖项、包或 API 发生变化,显然可能会再次中断。这也不会接收(安全)更新(Jessie 本身也不会)。

答案4

apt-get install python-certbot-apache -t jessie-backports

python-certbot-apache如果已安装旧版本,则会升级;使用动词install并不意味着将从头开始安装该包。

sudo apt install 命令是否也会更新已安装的应用程序?

相关内容