0、下载certbot-auto
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
1、下载脚本工具
git clone https://github.com/ywdblog/certbot-letencrypt-wildcardcertificates-alydns-au
cd certbot-letencrypt-wildcardcertificates-alydns-au
chmod 0777 au.sh autxy.sh augodaddy.sh python-version/au.sh
2、配置
根据要更新的域名的供应商,选择相应的脚本:
阿里云(根据环境二选一即可):
au.sh (PHP 环境)
python-version/au.py:(Python环境,兼容Python 2/3)
腾讯云:autxy.sh(PHP 环境)
GoDaddy:augodaddy.sh(PHP 环境)
备注:环境-代表要实行脚本的做事器支持的环境
修正DNS API 密钥:
alydns.php,修正 accessKeyId、accessSecrec 变量, API key 和 Secrec 官方申请文档。
txydns.php,修正 txyaccessKeyId、txyaccessSecrec 变量, API 密钥官方申请文档。
python-version/alydns.py,修正 ACCESS_KEY_ID、ACCESS_KEY_SECRET, API key 和 Secrec 官方申请文档。
godaddydns.php,修正 accessKeyId、accessSecrec 变量,GoDaddy API 密钥官方申请文档。
备注:须要通过 API 操作阿里云 DNS 或腾讯云 DNS 的记录,以是须要去域名做事商哪儿获取 API 密钥。
4:申请证书
特殊解释: --manual-auth-hook 指定的 hook 文件四个任选其一(au.sh、autxy.sh、augodaddy.sh、python-version/au.sh),其他操作完备相同。
# 测试是否有缺点
$ ./certbot-auto certonly -d .example.com --manual --preferred-challenges dns --dry-run --manual-auth-hook /脚本目录/au.sh(autxy.sh 或 python-version/au.sh,下面统一以 au.sh 先容)
# 实际申请
$ ./certbot-auto certonly -d .example.com --manual --preferred-challenges dns --manual-auth-hook /脚本目录/au.sh
参数阐明:
certonly:表示采取验证模式,只会获取证书,不会为web做事器配置证书
--manual:表示插件
--preferred-challenges dns:表示采取DNS验证申请者合法性(是不是域名的管理者)
--dry-run:在实际申请/更新证书提高行测试,强烈推举
-d:表示须要为那个域名申请证书,可以有多个。
--manual-auth-hook:在实行命令的时候调用一个 hook 文件
如果你想为多个域名申请通配符证书(合并在一张证书中,也叫做 SAN 通配符证书),直接输入多个 -d 参数即可,比如:
$ ./certbot-auto certonly -d .liwf1.net -d .liwf2.net -d liwf.net --manual --preferred-challenges dns --dry-run --manual-auth-hook /脚本目录/au.sh
5、续期证书
1:对机器上所有证书 renew
$ ./certbot-auto renew --manual --preferred-challenges dns --manual-auth-hook /脚本目录/au.sh
2:对某一张证书进行续期
先看看机器上有多少证书:
$ ./certbot-auto certificates
renew 指定域名证书:
$ ./certbot-auto renew --cert-name simplehttps.com --manual-auth-hook /脚本目录/au.sh
6、加入 crontab自动更新证书
编辑文件 /etc/crontab,由于证书有效期是3个月,我们设置一个月进行一次更新
crontab -e
0 19 1 /bin/sh /opt/script/autossl.sh
autossl.sh:
/root/certbot-auto renew --cert-name liwf.net -deploy-hook "nginx -s reload" --manual-auth-hook ./dev/certbot-letencrypt-wildcardcertificates-alydns-au/au.sh
个中:renew成功后nginx自动重新加载配置
把稳:只有单机建议这样运行,如果要将证书同步到多台web做事器,须要有别的方案