您好,我有一台基于 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
并不意味着将从头开始安装该包。