配置Let's Encrypt & certbot
来自个人维基
由于我们拥有服务器的命令行访问权限,故直接使用 Certbot ACME 客户端。 它可以在不下线您的服务器的前提下自动执行证书颁发和安装。 对于不需要自动配置的用户,Certbot 还提供专家模式。
目录[隐藏] |
安装依赖包
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.