配置Let's Encrypt & certbot

来自个人维基
跳转至: 导航搜索

由于我们拥有服务器的命令行访问权限,故直接使用 Certbot ACME 客户端。 它可以在不下线您的服务器的前提下自动执行证书颁发和安装。 对于不需要自动配置的用户,Certbot 还提供专家模式。

官网:https://certbot.eff.org


目录

 [隐藏

安装依赖包

sudo apt update
sudo apt install python3 python3-venv libaugeas0
  • Debian7只支持python3.2,而python3-venv要3.3或以上版本才支持,故无法安装。

设置安装环境:

sudo python3 -m venv /opt/certbot/
sudo /opt/certbot/bin/pip install --upgrade pip

安装

sudo /opt/certbot/bin/pip install certbot certbot-apache

配置软链接,便于执行命令:

sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot

获取证书并使用

运行此命令获取证书并让Certbot自动编辑您的Apache配置以使用它(如果担心风险,可以在执行此步骤前备份 sites-enabled/000-default 和 sites-enabled/default-ssl):

sudo certbot --apache
  • 如果这里报错“ValueError: Invalid version. The only valid version for X509Req is 0.”,则是 pyOpenSSL版本不匹配(如 pyOpenSSL 23.2.0),需要指定版本:
/opt/certbot/bin/pip install pyOpenSSL==23.1.1

至此,应该新的ssl证书就生效了(一般有效期是3个月)。

设置自动更新证书任务

echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null

定期(官方建议Monthly)更新 certbot

sudo /opt/certbot/bin/pip install --upgrade certbot certbot-apache

如果出错:
If this step leads to errors, run sudo rm -rf /opt/certbot and repeat all installation instructions.