Ubuntu主机生成兼容Android5证书并自动续期
文言文,雅文也。余心向往之,故尝试以文言述此篇,若令君不悦,尚请原谅。
叙言
现代之网站开发,使用HTTPS协定,甚关键。Let's Encrypt所赐之SSL证书虽免费,然其证书链,不尽兼容旧安卓版本,如Android5。本文叙及生成兼容Android5证书之法,及自动续期之道。
第一步:安装Certbot及Nginx
先须确保汝主机上安装有Certbot及Nginx。
sudo apt-get update
sudo apt-get install certbot nginx
第二步:下载ISRG Root X1证书
自Let's Encrypt网站下载最新之ISRG Root X1证书,贮于指定之目录。
sudo wget -O /etc/letsencrypt/isrgrootx1.pem https://letsencrypt.org/certs/isrgrootx1.pem
第三步:编写自动化符
创一脚本名"update-certificates.sh",每当Certbot续证书后,自动生成兼容Android5证书链,并重新加载Nginx之配置。
#!/bin/bash
DOMAIN="yourdomain.com"
CERT_DIR="/etc/letsencrypt/live/$DOMAIN"
FULLCHAIN="$CERT_DIR/fullchain.pem"
PRIVKEY="$CERT_DIR/privkey.pem"
ANDROID_FULLCHAIN="$CERT_DIR/fullchain-android.pem"
ISRG_ROOT="/etc/letsencrypt/isrgrootx1.pem"
# 生成兼容Android5证书链
sudo cat $FULLCHAIN $ISRG_ROOT | sudo tee $ANDROID_FULLCHAIN > /dev/null
# 重新加载Nginx之配置
sudo systemctl reload nginx
切记将DOMAIN替换为汝之实际域名,确保路径正确。
第四步:赐予脚本执行权
sudo chmod +x /path/to/update-certificates.sh
第五步:配置Certbot续订钩子
Certbot支持于续订证书后运行自定义钩子脚本。将上脚本配置为Certbot之"--deploy-hook"钩子。
编辑Certbot之续订配置文件(通常在/etc/letsencrypt/renewal/yourdomain.com.conf):
renew_hook = /path/to/update-certificates.sh
或使用Certbot之命令行选项配置:
sudo certbot renew --deploy-hook /path/to/update-certificates.sh
第六步:设置自动续订
Certbot默将配置一cron作业或systemd timer以自动续订证书。可通过以下命令确认:
sudo systemctl list-timers | grep certbot
若无自动续订任务,可手动添加一cron作业:
sudo crontab -e
于crontab文件中添加以下行,每日运行续订检查:
0 2 * * * /usr/bin/certbot renew --deploy-hook /path/to/update-certificates.sh
总结
经上述步骤,可确保使用Let's Encrypt所生之HTTPS证书兼容Android5,并实现证书之自动续订。如是,则无需每三月手动更新一次证书,大大简化了网站之维护工作。