前置条件
所使用的系统环境为:Ubuntu Server 18.04
所使用的域名解析商:DNSPOD
本文所有步骤及结论,均基于上述前置条件,如有不一致,请读者自行调整。
操作步骤
1、添加PPA并更新软件列表(逐行执行)
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
2、安装Certbot
sudo apt-get install certbot
3、安装对应DNS解析商插件
sudo apt-get install python3-certbot-dns-<PLUGIN>
我的DNS解析商是DNSPOD,但官方并没有提供支持,只能够用第三方的,从这一步开始,就与官方的教程有些差异了。
这一步我需要进行的安装步骤是:(逐行执行)
git clone https://github.com/tengattack/certbot-dns-dnspod
cd certbot-dns-dnspod
sudo python setup.py install
*注意:如果install的时候提示找不到各种文件,请先执行:
sudo apt-get install build-essential libssl-dev libffi-dev python-dev
这里注意的是,需要先创建API Token,点此去创建。
将创建好的API ID
和API TOKEN
保存在一个文件中,这里假设是/path/to/credentials.ini
。文件保存的格式如下:
certbot_dns_dnspod:dns_dnspod_api_id = 12345 certbot_dns_dnspod:dns_dnspod_api_token = 1234567890abcdef1234567890abcdef
保存后,修改文件的权限:
chmod 600 /path/to/credentials.ini
至此,整个配置过程就已经完成了。于是,我们可以使用以下命令来生成证书文件:
certbot certonly -a certbot-dns-dnspod:dns-dnspod --certbot-dns-dnspod:dns-dnspod-credentials /path/to/credentials.ini -d example.com -d "*.example.com"
*注意:上述命令中,/path/to/credentials.ini
是上一步生成的包含DNSPOD API Token的文件,example.com
与*.example.com
就是你的泛域名。
生成后的证书会保存在:
/etc/letsencrypt/live/example.com
*注意:example.com是上述步骤中对应的域名
此时,证书有效期为3个月,那3个月后怎么办呢?因此,我们需要在系统的Crontab中写一个定时任务来更新证书,更新命令为:
/usr/local/bin/certbot renew -a certbot-dns-dnspod:dns-dnspod --certbot-dns-dnspod:dns-dnspod-credentials /path/to/credentials.ini
至此,整个生成过程就完成了,Enjoy it~